Saltar al contenido
0%

Cómo identificar problemas en tu dapp rápidamente y desplegar soluciones antes de que afecten a los usuarios

Escrito por Guest Post

Publicado el 21 de agosto de 20237 min de lectura

En el mundo dinámico de las aplicaciones descentralizadas, la identificación y resolución rápida de problemas es fundamental para mantener una experiencia de usuario fluida y fomentar la confianza de los clientes.

La clave está en transformar la resolución de problemas reactiva tradicional en una gestión proactiva de la salud de tus apps mediante ingeniería basada en datos.

¿Qué tiene de particular la ingeniería basada en datos en Web3?

La ingeniería basada en datos consiste en tomar decisiones a partir de datos concretos en lugar de intuiciones o corazonadas. Permite a los equipos de ingeniería predecir, entender y resolver problemas antes de que afecten a los usuarios finales.

¿Cuáles son los desafíos de la ingeniería basada en datos en Web3?

A pesar del enorme potencial que ofrece la ingeniería basada en datos, actualmente muchos desarrolladores de web3 se encuentran atrapados en un modo reactivo debido a desafíos como la falta de herramientas adecuadas, la complejidad de web3 y la naturaleza continua (24/7) de la industria blockchain.

1. Falta de herramientas de observabilidad para Web3

La falta de herramientas de monitoreo efectivas y específicas para web3 hace que los problemas a menudo pasen desapercibidos hasta que empiezan a afectar a los usuarios finales, lo que provoca carreras contrarreloj para implementar soluciones. Los desarrolladores de web3 con frecuencia terminan sacrificando su tranquilidad y horas de sueño mientras resuelven problemas activos, lo que genera efectos posteriores:

  1. Los usuarios tienen una peor experiencia
  2. Los desarrolladores trabajan constantemente en escenarios de alto estrés y alto riesgo
  3. La fatiga por resolución de problemas amenaza el éxito general de la dapp

2. Las herramientas tradicionales no cubren la complejidad de Web3

Además, la situación se agrava con las herramientas de análisis tradicionales que, a pesar de sus fortalezas en otros ámbitos, muchas veces no logran cubrir las necesidades particulares de web3.

Estas herramientas no capturan la profundidad y amplitud de datos que los desarrolladores necesitan para anticipar y mitigar problemas en un entorno descentralizado.

Desde las interacciones de los usuarios hasta las ejecuciones de smart contracts y las transferencias de tokens, el mundo de web3 requiere monitoreo y análisis capaces de manejar esta complejidad multifacética.

¿Cuáles son las ventajas de las herramientas de ingeniería basada en datos?

Las tres principales ventajas de las herramientas de ingeniería basada en datos son: la gestión proactiva de problemas, la optimización del rendimiento y permitir que los ingenieros tomen decisiones más informadas.

1. Gestión proactiva de problemas

Los datos en tiempo real ayudan a detectar problemas potenciales de forma temprana y a mitigarlos antes de que afecten a los usuarios. Los posibles problemas que se pueden detectar a tiempo van desde cuellos de botella en el rendimiento hasta comportamientos anómalos de los usuarios.

Algunos ejemplos incluyen:

  • Límites de consumo de API alcanzados en horas pico
  • Nodos utilizados que están desincronizados
  • Proveedores externos que no están disponibles
  • Congestión en la blockchain
  • Errores en el frontend implementados en producción que provocan fallos en las transacciones
  • Detección de actores maliciosos que intentan interactuar con tus smart contracts

Un ejemplo del mundo real fue el de una dapp que implementó una actualización de una función en producción, lo que provocó un aumento significativo de transacciones fallidas, generando costos de gas para los usuarios sin que las transacciones se ejecutaran con éxito.

Tras recibir la alerta sobre este pico, el equipo de ingeniería pudo encontrar rápidamente la causa raíz, que era un error en el frontend de la dapp: intentaba llamar a una función del smart contract pasando un parámetro fijo (hardcoded) que violaba consistentemente una instrucción revert de dicha función.

Como la instrucción revert no incluía un motivo explicativo, encontrar la causa raíz sin una herramienta de observabilidad habría afectado a un número mucho mayor de usuarios.

2. Optimización del rendimiento

Analizar datos puede ayudar a identificar cuellos de botella e ineficiencias, lo que se traduce en un rendimiento optimizado y una mejor experiencia de usuario. Estos problemas de rendimiento incluyen ejecución lenta de smart contracts, problemas de latencia en oráculos, uso ineficiente de recursos y problemas de interoperabilidad en el stack de web3.

En un caso concreto, un equipo de desarrollo que usaba Blocktorch identificó una ineficiencia recurrente en su dapp: un smart contract específico estaba generando tarifas de gas más altas de lo normal debido a su complejidad.

Con esta información, los desarrolladores de la dapp pudieron refactorizar el smart contract para optimizar su ejecución y reducir significativamente las tarifas de gas. Esta mejora en eficiencia no solo aumentó el rendimiento de su dapp, sino que también generó ahorros de costos y mejoras de UX para sus usuarios. Este escenario ilustra cómo los conocimientos basados en datos pueden generar beneficios tangibles y una ventaja competitiva en el panorama de Web3.

3. Toma de decisiones informada

Los equipos pueden tomar mejores decisiones sobre el desarrollo de funciones, la asignación de recursos y las mejoras del sistema al usar información derivada de datos.

La observabilidad brinda visibilidad sobre cómo los usuarios interactúan con las distintas funciones de la dapp y las tendencias de uso a lo largo del tiempo. Esta información puede incluir, por ejemplo, las cadenas específicas que tus usuarios utilizan más que otras (para una mejor experiencia de usuario, asegúrate de que la cadena más usada en tu dApp sea la cadena predeterminada), así como comparar esta información con la de aplicaciones de la competencia.

Otro ejemplo es optimizar el soporte para navegadores o wallets específicos que un número creciente de usuarios está utilizando.

Alchemy Dashboard Demo
Free video demo

Mira el dashboard de Alchemy en acción

Recorrido guiado de 30 minutos: cada herramienta del dashboard, demostrada en vivo.

Watch the demo

3 herramientas para monitorear problemas de ingeniería en Web3

Para que un equipo de ingeniería de web3 se vuelva más orientado a los datos, es fundamental incorporar herramientas que brinden observabilidad y análisis de datos en profundidad. Aquí presentamos algunas herramientas que pueden ayudar a los ingenieros de web3 a tener una excelente observabilidad y monitoreo de sus aplicaciones.

1. Alchemy Monitor

Alchemy Monitor ofrece un conjunto integral de dashboards de monitoreo y análisis para entender el comportamiento de los usuarios de la dapp, así como la salud y el rendimiento de la API de Alchemy.

Monitor permite a los desarrolladores de dapps evaluar sus análisis de uso de API por tipo de llamada para comprender mejor cómo optimizar y depurar sus programas. También ofrece una plataforma para crear alertas y resúmenes sobre la actividad de tu aplicación.

2. Blocktorch

Blocktorch es una empresa del portafolio de Alchemy Ventures que brinda a los desarrolladores de blockchain información integral sobre sus apps. Posicionada como una plataforma de monitoreo full stack para aplicaciones web3, Blocktorch ofrece una amplitud y profundidad de información sin igual, que incluye frontends, transacciones en la blockchain, rendimiento de smart contracts y cada capa del stack de web3.

Blocktorch permite a los equipos de ingeniería no solo reaccionar a los datos en tiempo real, sino también anticipar posibles problemas. Llevan la gestión proactiva un paso más allá al identificar patrones, detectar anomalías y visualizar esta información en un formato sencillo de interpretar.

Esto permite a los equipos no solo comprender el estado general de salud de su dapp, sino también tomar decisiones informadas e implementar soluciones rápidas.

3. Tenderly

Tenderly es una herramienta para desarrolladores de smart contracts que permite construir, probar, monitorear y operar smart contracts desde el desarrollo hasta la adopción. Este conjunto de herramientas ayuda a los ingenieros a probar sus smart contracts a fondo con un potente simulador de transacciones antes de implementarlos en mainnet, y a identificar problemas en producción encontrando la línea de código específica en los smart contracts que causa el problema.

5 factores a considerar antes de elegir una herramienta de monitoreo para Web3

Al elegir una herramienta de observabilidad y monitoreo para web3 para tu aplicación descentralizada, considera los siguientes factores: cobertura, alertas en tiempo real, interpretación de datos, escalabilidad e integraciones con otros proveedores.

1. Cobertura integral

La herramienta debe brindar información sobre cada capa de tu stack de web3, desde las interacciones de los usuarios hasta la ejecución de smart contracts. Blocktorch le da a los ingenieros visibilidad sobre el frontend de sus apps, los smart contracts desarrollados por el equipo de ingeniería y también otros protocolos con los que se integran, además de, bajo demanda, los oráculos utilizados y el almacenamiento de archivos descentralizado.

Además, Blocktorch es interoperable con el estándar de datos de web2 Open Telemetry, para poder usarse en conjunto con cualquier herramienta de observabilidad de web2 en caso de que la aplicación esté solo parcialmente descentralizada pero aún dependa de servicios en la nube.

2. Alertas en tiempo real

La herramienta debe ofrecer alertas en tiempo real para posibles problemas, permitiendo que el equipo los corrija antes de que se agraven. Algunas de las alertas más utilizadas por los ingenieros de web3 son:

  • Tiempo promedio de transacciones pendientes en el mempool
  • Porcentaje de transacciones descartadas y fallidas
  • Caídas repentinas en el uso, que indican una posible funcionalidad defectuosa
  • Picos en las tarifas de gas, especialmente en relación con el costo general de gas de la red

Todos los ejemplos mencionados impactan directamente a los usuarios, ya sea porque el costo de usar la dapp aumenta y buscan alternativas más económicas, o porque enfrentan problemas al usar la dapp, lo que provoca abandono.

3. Fácil interpretación de datos

Busca herramientas que ofrezcan visualizaciones de datos fáciles de entender e información procesable.

Los dashboards predefinidos brindan información en muy poco tiempo, mientras que los dashboards personalizados les dan a los ingenieros la flexibilidad de monitorear exactamente según las necesidades del equipo. La herramienta óptima debería admitir ambos casos. Los dashboards ofrecen una vista general de los sistemas para entender tendencias, picos y actividad, y luego profundizar en cada uno.

4. Escalabilidad

A medida que tu dapp crece, la herramienta de monitoreo debe poder escalar sin problemas. Por ejemplo, si tu dapp agrega soporte para una nueva red blockchain, tu herramienta de monitoreo debería poder extenderse de igual manera a la nueva cadena.

La herramienta y sus niveles de precios también deben ser escalables, para que las funcionalidades en tiempo real sigan funcionando incluso cuando tu dapp experimente un aumento en el uso.

5. Integración

La herramienta debe integrarse sin problemas con otras herramientas y servicios que tu equipo utiliza. Por ejemplo, las integraciones con IDEs para la implementación de smart contracts, así como con proveedores de API para nodos y otros servicios, pueden facilitar una experiencia de observabilidad fluida y datos más completos.

Conclusión

Adoptar un enfoque basado en datos es indispensable para que los equipos de ingeniería de web3 ofrezcan una experiencia de usuario fluida. Herramientas como Alchemy y Blocktorch, con sus funciones avanzadas de observabilidad, cumplen un papel fundamental al permitir que los equipos identifiquen y corrijan problemas rápidamente.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.