Aplicación para dar a conocer blockchain (I)

sábado 28 de agosto de 2021, Jaume Aloy

La tecnología blockchain es una tecnología reciente y que todavía no es muy conocida entre el público general. Con el objetivo de dar a conocer esta tecnología y facilitar el uso de las criptomonedas se desarrolló una aplicación que permitía obtener pequeñas fracciones de estos activos digitales.

Estas aplicaciones son conocidas como faucets en el mundo de las criptomonedas y la mayoría son aplicaciones web, pero no hay muchas aplicaciones que funcionen para dispositivos móviles. Por tanto, desarrollar una faucet móvil fue una oportunidad para llegar a un público no explotado, y funcionó bastante bien.

La aplicación

La aplicación se desarrolló durante las últimas semanas de agosto de 2017, cuando todavía no había empezado los estudios de Ingeniería Informática, y se publicó los últimos días de agosto.

Aplicación pública

Nunca había creado una aplicación nativa para Android, solo había desarrollado aplicaciones web. Por tanto, esta aplicación se desarrolló como una aplicación web y luego se utilizó un web view para poder publicarla en la Play Store. No es la solución más eficiente ni adecuada pero funcionaba bastante bien. Además, me permitió crear una aplicación rápidamente.

Imagen. Aplicación pública (extraída de YouTube).

El frontend de la aplicación estaba realizado utilizando tecnologías simples como jQuery, sin utilizar frameworks como React o Vue.js. La comunicación con el servidor se realizaba mediante peticiones a una API REST utilizando Ajax, cosa que permetía crear una interfaz de usuario más dinámica.

El backend estaba desarrollado utilizando PHP, que era uno de los lenguajes de servidor había utilizado hasta ese momento.

Panel de administración

Una aplicación de estas características require de un panel de administración para poder gestionar fácilmente los usuarios y realizar determinadas acciones. Por lo tanto, también de creó un panel bastante simple.

Las principales funciones de este panel eran:

  • Ver los usuarios registrados y sus movimientos (accesos, transacciones).
  • Procesar las transacciones.
  • Modificar la configuración de la aplicación, como mensajes dentro de la aplicación o las proporciones de las recompensas.
  • Detectar usuarios que incumplen los términos de uso de la aplicación.

La pantalla principal del panel mostraba algunos datos de interés, como los usuarios registrados en el día actual o los usuarios activos en las últimas 24 horas.

Imagen. Pantalla inicial del panel de administrador.

Otra de las funciones principales es observar las transacciones pendientes de la aplicación. Para ello, había un listado con todas las transacciones pendientes y se podían realizar distintas acciones sobre ellas (procesarlas o cancelarlas).

Imagen. Lista de transacciones pendientes.

También era importante poder cambiar la configuración de la aplicación sin necesidad de modificar el propio código de la aplicación. El panel de configuración, entre otras funciones, permetía modificar un mensaje visible en la aplicación, que se utilizaba para comunicar información de interés.

Imagen. Página de configuración.

En producción

Una vez la aplicación está terminada y lista para el público se subió a un servidor, se compró un dominio y se publicó en la Play Store.

La publicación en la Play Store es un proceso simple pero uno cuando es nuevo se pierde entre tantos menús y opciones del Google Play Console. Una vez realizado este proceso los usuarios ya pueden descargar la aplicación.

Para el servidor, se alquiló un servidor privado virtual (VPS) de la compañía Vultr, básicamente porqué ofrecía unos precios muy competitivos para las necesidades de la aplicación.

En el servidor se instalaron y configuraron distintos servicios como el servidor web Apache, el servidor MySQL y un servidor de correo (Postfix + Dovecot) para poder disponer de un correo institucional.

Resultados

Imagen. Gráfico de usuarios diarios (Firebase).
El primer mes y medio de la aplicación fue bastante tranquilo, con pocos usuarios activos, pero a partir del 15 de octubre de 2017 el número de usuarios empieza a crecer hasta llegar a un máximo de 6400 usuarios el 3 de enero.

Utilizando Firebase se podían enviar notificaciones a los dispositivos con la aplicación instalada. Esta herramienta también era una arma porqué provocaba que muchos usuarios accedieran a la aplicación al mismo tiempo, hasta 1200 usuarios concurrentes.

Evidentemente, el pequeño servidor no aguantaba tal intensidad de usuarios dando lugar a un deterioro de la calidad del servicio. La solución más fácil para evitar cambiar de servidor era segmentar los usuarios y enviar las notificaciones a cada uno de estos segmentos.

Conclusiones

La aplicación estuvo operativa unos cuantos meses pero por diversos motivos no se pudo mantener operativa aunque el proyecto permitió obtener conocimientos y experiencias diversas:

  • Gestionar una aplicación con un tráfico de usuarios considerable, teniendo en cuenta que era un proyecto individual.
  • Publicar aplicaciones en la Play Store.
  • Administrar y configurar servidores Linux (MariaDB, Apache2, Dovecot, Postfix).

Los resultados fueron muy satisfactorios porqué no esperaba tal éxito. Tanto por la aceptación de los usuarios como por la cantidad de tráfico de la aplicación.

Este ha sido el resumen del primer intento de crear una aplicación de este estilo. En los años posteriores, se intentó desarrollar unas nuevas aplicaciones con un enfoque distinto.