__wf_reserved_heredar
Blog__wf_reserved_heredar
Caso práctico de Nansen-Dysnix: Blockchain y seguridad
__wf_reserved_heredar

Nansen.ai con tecnología de Dysnix: infraestructura de cadena de bloques personalizada que resuelve el 120% de las tareas

__wf_reserved_heredar
__wf_reserved_heredar
Alex Vorona
January 10, 2023

Las tareas específicas exigen soluciones específicas. Eso es lo que suelen buscar los proyectos de cadenas de bloques cuando se ponen en contacto con nosotros. Este caso es un ejemplo brillante de la evolución de la solicitud de un cliente durante la fase de investigación y de la cooperación de los equipos para hacer frente a desafíos complejos.

En este artículo, descubrirás cómo gestiona Dysnix las tareas del cliente, desde el acuerdo hasta las etapas de soporte, y qué beneficios esperados y adicionales generamos para nuestros clientes.

Cliente

Acerca de Nansen.ai

Nansen.ai es una plataforma de análisis de cadenas de bloques que ayuda a los operadores y a los proyectos de cadenas de bloques al destacarles e informarles sobre los cambios y tendencias esenciales que se producen en la cadena de bloques (especialmente en el sector de las criptomonedas). Se encargan de procesar los petabytes de datos comerciales que circulan en sus sistemas a diario para proporcionar la información más valiosa a sus clientes las 24 horas del día, los 7 días de la semana.

La infraestructura interna de Nansen.ai (Fuente)

Los requisitos de Nansen a la hora de buscar proveedores de soluciones eran extremadamente altos debido al conocimiento tecnológico de la propia empresa. Eligieron a Dysnix por su experiencia, que puede complementar de manera significativa a su equipo interno, por su facilidad para compartir conocimientos y por su enfoque ingenioso para la resolución de problemas técnicos.

El estado de ánimo al inicio del proyecto

Como señal de un proyecto prometedor, Nansen se puso en contacto con nosotros con un objetivo principal que parecía más bien: «Creemos que necesitamos esto y aquello. ¿Qué opinas al respecto?» Tras una breve conversación sobre el tema, ambas partes comprendieron que Dysnix podía profundizar aún más en el problema y resolverlo de la manera más optimizada.

Así que todos se entusiasmaron con los futuros milagros técnicos y de comunicación que se manifestarían.

Predesarrollo

Etapa de negociación

Solo se necesitaron dos llamadas para establecer todas las conexiones entre las empresas y acordar los puntos clave de la cooperación. La pandemia de COVID nos mostró cómo cualquier tema y desafío puede discutirse y resolverse con éxito, sin importar qué tan lejos estén sus colegas. Así que no perdimos demasiado tiempo antes del desarrollo.

Por parte de Dysnix, seleccionamos cuidadosamente a dos ingenieros, un arquitecto de nube y un ingeniero sénior de DevOps, con experiencia en blockchain. Por parte de Nansen, prepararon todos los requisitos y solo asignaron a unos pocos especialistas para que se comunicaran con nuestro equipo. Nuestro cliente nos delegó el 100% del trabajo y confió completamente en nosotros.

Dysnix estaba listo para lanzarse.

El análisis de tareas empresariales y su metamorfosis

En la última declaración, Nansen.ai contrató a Dysnix para desarrollar, implementar y respaldar una infraestructura confiable, autónoma y segura para las necesidades específicas de la plataforma de análisis de blockchain. Un alto nivel de seguridad era un punto esencial de la solicitud.

Nansen necesitaba un despliegue a prueba de fallos y altamente seguro para el nodo validador de la cadena de bloques Ronin con almacenamiento seguro de claves privadas.

Ronin Network presenta $RON (Fuente)
Ronin is an EVM blockchain crafted for developers that build games with player-owned economies and are suited well for cryptocurrencies. This blockchain claims to be an energy-efficient sidechain from Ethereum. It supports EVM-compatible smart contracts and protocols. 
Currently, Ronin is a Byzantine Fault Tolerant proof of authority (POA) network operated by validators. Also, Ronin released Testnet's new consensus engine (Consortium v2), which follows the Proof of Staked Authority strategy. Proof of Staked Authority combines Delegated Proof of Stake (DPoS) and Proof of Authority (PoA). At the bootstrap of the network, carefully selected, trusted validators were predefined to secure the network. Now, validators can be added or removed if the decision is approved by the majority of currently active validators (Official docs here). 

El nodo validador Ronin que Nansen planeaba obtener no podía satisfacer sus necesidades. Era un nodo validador típico que estaba estrechamente conectado a toda la red y no tenía todas las características necesarias. La tarea de Dysnix consistía en implementar un entorno de cadena de bloques de este tipo que añadiera nuevas funciones al validador Ronin sin ningún cambio en la funcionalidad del nodo en sí.

Why is it so important to stay functional as a validator node? Because it’s essential for both blockchain’s transaction verification and reliability in the eyes of other validators. If the validator is off, it doesn’t perform its direct functions—validating blockchain’s transactions—it’ll lose its part of a reward. Even if you think the task is too controversial and impossible, our engineers think another way. 

El equipo de Dysnix planificó una solución con el siguiente aspecto:

El esquema de una solución para Nansen. Fuente: documentación del proyecto Nansen

Antes de analizar más detenidamente la solución que ofrecieron los ingenieros de Dysnix, analicemos el nivel más alto de requisitos establecidos.

La solución cumple con las siguientes expectativas y requisitos del cliente:

  • Todo el entorno es a prueba de fallos.
  • No se puede acceder al nodo validador con un almacenamiento seguro de claves privadas desde Internet ni de ningún otro modo, excepto por parte de Nansen.
  • El nodo validador sigue funcionando como parte de una cadena de bloques.

Pero nos ofrecimos ir aún más lejos y añadir otras mejoras desde el principio:

  • Los nodos creados tendrán un tiempo de actividad del 99,99%.
  • La solución desarrollada debe ser rentable.
  • La solución se puede transformar, editar, remasterizar y explicar fácilmente a cualquier ingeniero nuevo del equipo del cliente.
  • Todas las partes del proceso de desarrollo están documentadas y detalladas.
  • La solución debe tener partes de monitoreo, alertas y análisis que demuestren la eficiencia y los resultados de la implementación.

Nuestra oferta se basa en los altos estándares de trabajo de los ingenieros de Dysnix y su dedicación a los proyectos. Como se puede imaginar, Nansen no podría estar en desacuerdo con la oferta que preparamos para ellos.

Establecer un ámbito de trabajo (SoW) y una hoja de ruta

Tras acordar la primera parte de la cooperación, Dysnix creó una SoW de alto nivel con una visión desde un helicóptero de los objetivos y los futuros logros de la cooperación. Durante la fase de I+D y tras dos o tres sesiones de aclaración, en las que Nansen reveló más datos sobre el equipo con el que trabajaría Dysnix y otros detalles, nuestros ingenieros tomaron la decisión final de acuerdo con la arquitectura y el detallado detalle del SoW.

Con esta versión de SoW, Dysnix describió las tareas de bajo nivel en su sistema de seguimiento y las priorizó en la hoja de ruta. Los ingenieros estimaron que todo el proceso de desarrollo duraba entre 100 y 120 horas de trabajo. Se ajusta perfectamente a las necesidades de Nansen.

Un adelanto de la hoja de ruta de los proyectos

Además, habíamos discutido que la SoW podía cambiarse durante el proceso de desarrollo y, como habíamos previsto, ocurrió de hecho durante las etapas de desarrollo. Sin embargo, no afectó demasiado al resultado final. Por el contrario, obtuvimos resultados aún mejores de los que estar orgullosos.

Como no había puntos que discutir más, nos preparamos para la invasión en sí y trabajamos arduamente en el proyecto. El flujo de trabajo con el equipo interno de Nansen se resolvió de forma natural: si una de las partes necesitaba una respuesta, formulaba preguntas directas y recibía todas las explicaciones de inmediato.

Conexión interna con el equipo

Los ingenieros que participaron en el proyecto participaron estrechamente en el trabajo del equipo interno. Además, hicieron todo lo posible para que su actividad fuera transparente y comprensible para todas las partes interesadas involucradas. El equipo de Dysnix es famoso por facilitar el ambiente de trabajo gracias a tres puntos principales:

  • Expectabilidad y seguimiento de los planes
  • Demostraciones eficientes y regulares
  • Documentación aplicable y que vale la pena leer

Durante la fase de desarrollo activo, el ingeniero sénior de DevOps realizó demostraciones y el arquitecto de nube llevó a cabo una implementación interna de I+D y PoC para comprender mejor y ajustar el SoW.

Nuestros ingenieros comenzaron a desarrollar la documentación para el equipo interno de Nansen desde la fase de preparación hasta que todo quedó limpio durante la producción. Gracias al enfoque cooperativo de los compañeros de la empresa, pudimos preparar nuestro trabajo rápidamente, teniendo en cuenta los límites de las responsabilidades de cada parte.

Desarrollo

Implementación en el entorno de desarrollo y la etapa de producción de Dysnix

Configuramos nuestro entorno de desarrollo para mapear la solución que planeábamos implementar. Hemos creado Gráficos de timón para ello y preparó todo lo necesario para probar la conectividad con el validador.

Además, nuestros ingenieros controlaron todos los ajustes de configuración y los preparativos de la infraestructura gracias al IaC Enfoque (Infraestructura como código). Este es uno de los procesos (o metodologías, si lo prefiere) más importantes que aplicamos para que nuestra infraestructura sea fácil de editar y hacer que todos los cambios o nuevas funciones puedan implementarse en horas, no en semanas.

Nuestros ingenieros lo prepararon todo para creación de copias de seguridad e instantáneas para mantener toda la información guardada y protegida de forma segura. Es fundamental configurar estas cosas desde el principio y tenerlas a mano, ya que la cadena de bloques de Ronin no te proporcionará ninguna instantánea. Así que más vale prevenir que curar para nuestros clientes.

Nos concentramos en la tarea principal del proyecto: hacer que el nodo validador Ronin esté aislado pero funcionando. Para alcanzar ese objetivo, decidimos implementar la capa de los denominados nodos centinelas, que desempeñarían dos funciones diferentes en nuestra infraestructura:

  1. Deberían convertirse en un proxy inverso para que la cadena de bloques esté conectada a Internet y a nuestro nodo validador.
  2. Estos nodos centinelas deben tener la funcionalidad RPC para las solicitudes.

Por lo tanto, con esta capa de nodos centinelas, implementamos el esquema unidireccional en el que el nodo validador Ronin puede obtener información sobre lo que sucede en la cadena de bloques a través de una conexión p2p con los nodos centinelas. Sin embargo, nada puede conectar un nodo validador directamente desde Internet.

Esta solución es lo suficientemente rápida y rentable. Funciona bien con la infraestructura de cadena de bloques existente sin demoras ni respuestas más largas. Te proponemos pasar al siguiente nivel de implementación: preparar el entorno para el validador y conectarlo con los nodos centinelas.

Tras algunas consultas y durante las sesiones en directo con nuestros ingenieros, Nansen configuró el entorno de los nodos de validación por su parte. Nuestro equipo apoyó y controló el despliegue de dos nodos validadores (el segundo sirvió como nodo de respaldo) en Google Kubernetes Engine y aplicó las mejores prácticas de implementación segura. Recomendamos duplicar el nodo de los validadores para garantizar la funcionalidad de la A a la Z en cualquier circunstancia.

The first one, the active one, is responsible for holding up a private key, and the second node is typically on standby. If the main validator isn’t available, the stand-by node turns on, and Nansen’s engineers provide access to the private key thanks to the manual switch, and the validator continues its work.  

¡Parecía que la misión se había completado! Los nodos validadores se aislaron, los nodos centinelas funcionaron como un reloj y se comprobó el sistema. Faltaba solo un paso para la producción. Aun así, los ingenieros de Dysnix siguieron trabajando en el iAC y en Deployment como implementación del código para garantizar:

  • Facilidad de cambios en la infraestructura y la implementación.
  • La escalabilidad del proyecto, la simplicidad de la administración y los cambios totalmente configurables y controlables.
  • Simplicidad para escalar cualquier solución en los proyectos.

Gracias a estas bases de código, podíamos migrar al entorno de producción sin problemas y durante un tiempo mínimo. Y todo salió según lo planeado.

Pero mientras nos ocupábamos de implementar la solución principal en producción, Nansen nos preparó otra tarea emocionante que no podíamos negarnos a realizar...

Misión secundaria de Nansen

La dirección de Nansen quedó tan satisfecha con los resultados intermedios que decidió dar en el clavo mientras hacía calor. Recibimos otra solicitud de implementación que no estaba relacionada directamente con la tarea principal.

Los nodos de archivo Ronin entraron en nuestra lista. Como Nansen es una empresa de análisis de cadenas de bloques, necesita un acceso rápido y completo a todos los datos de la cadena de bloques que no puedan almacenarse en ningún otro lugar que no sea en los nodos de archivo de la cadena de bloques.

Sabemos que un nodo de archivo Ronin típico tiene algunas limitaciones desagradables, por ejemplo, normalmente se necesitan alrededor de seis horas para analizar los datos de análisis de la cadena de bloques durante un día. Eso es demasiado lento para Nansen. Es obvio que necesitamos algún tipo de «esteroides» para que funcionen más rápido y sin interrupciones, con un alto nivel de confiabilidad y seguridad, tal como lo desea el cliente. Así que el equipo de Dysnix tuvo que «repasar» un poco los nodos de archivo.

Así que para completar esta tarea y obtener una calificación A+, hemos decidido jugar con ella de forma un poco diferente, sin ningún tipo de magia:

  1. Hemos creado un sistema completo de nodos de archivo con características ajustadas manualmente.
  2. Para vigilarlos, hemos agregado funciones adicionales de supervisión y solución de problemas, ya que queremos recopilar la mayor cantidad de información posible sobre cómo actúan según los patrones de carga típicos y atípicos.
  3. Luego seleccionamos cuidadosamente los nodos más prometedores que mostraron el mejor rendimiento y los clonamos; todos los demás fueron eliminados.
  4. Pero incluso si se ha logrado alguna mejora, no nos detuvimos en esto. El siguiente paso incluyó trabajar con el flujo de solicitudes. Ordenamos que todas las solicitudes más pesadas se descompongan en unas cuantas partes más pequeñas que pudieran procesar fácilmente todas las matrices de nodos, en lugar de obstruirlas y bloquearlas nodo por nodo.
  5. Hemos realizado de 2 a 4 pasos durante un tiempo para ver si aparecía alguna otra forma de mejora.
  6. Cuando decidimos hacer una demostración al cliente de los nodos de archivado renovados, obtuvieron los siguientes resultados: el volumen de información de un día analizado en un máximo de 15 minutos.

Hemos conseguido reduzca el tiempo de actualización diaria del nodo de archivo Ronin de seis horas a 15 minutos. El equipo de Nansen quedó muy impresionado con estos resultados y les ayudaron a impulsar todo su servicio, no solo la infraestructura que hemos creado para ellos.

Se completó la etapa principal de desarrollo y procedimos a las acciones de cierre del proyecto.

Solución de problemas y mantenimiento

Se necesitaron alrededor de dos semanas para completar todas las actividades de repaso, aclarar todo lo relacionado con la producción y mejorar la documentación de solución de problemas para el equipo interno de Nansen. Recogimos los documentos de trabajo que preparamos al principio de nuestra cooperación y comprobamos si todo funcionaba según lo previsto.

Además, tuvimos una serie de sesiones de resolución de problemas en vivo en las que mostramos cómo tratar diferentes problemas relacionados con la configuración de carga o del entorno para alcanzar la máxima productividad. Paralelamente, editamos nuestra documentación para que fuera precisa de acuerdo con las actualizaciones más recientes.

Para resumir:

Una vez finalizada esta etapa, estrechamos la mano de Nansen y pasamos a la fase de cooperación «pasiva»: el apoyo.

Soporte

Tras casi un año de trabajo, el equipo de Dysnix sigue apoyando el proyecto.

Mantenemos el nivel de calidad establecido para Nansen, comprobando los indicadores más importantes de la salud del medio ambiente. Además, seguimos trabajando en pequeñas mejoras que estarán disponibles sobre la marcha.

Para apoyar a nuestros clientes de manera eficiente, creamos sistemas de monitoreo, verificación del estado, alertas y actualizaciones que no pierden nada de vista.

Monitorización

La plataforma más agradable y querida que utilizan los ingenieros de Dysnix para la supervisión es Grafana. En primer lugar, se seleccionan los principales indicadores para rastrear los objetivos y los KPI de la funcionalidad del entorno. Luego, combinamos toda la información rastreada en el conjunto de datos y colocamos los indicadores necesarios en la pantalla del controlador.

Revisamos los volúmenes de solicitudes, las conexiones establecidas, las recargas, el uso de la memoria y la CPU y otros indicadores.

El ejemplo de un panel de control utilizado por Dysnix

Este y los siguientes paneles también están disponibles para nuestro cliente, pero rara vez se comprueban. Un ingeniero de Dysnix puede controlar y mantener este sistema sin perder demasiado tiempo.

Análisis de rendimiento de gestión de solicitudes creado para Nansen

También incluimos estos datos en los informes mensuales de Nansen. Es fundamental tener almacenados los datos sobre el estado del sistema, ya que, si se produce un problema, nuestros ingenieros pueden rastrear la situación hasta su estado normal y restaurarlo todo como si no hubiera pasado nada.

Otra vista del análisis de rendimiento de la gestión de solicitudes creado para Nansen

Chequeos regulares

Como la seguridad sigue siendo la exigencia más importante de Nansen, prestamos especial atención a este asunto. Gracias a las comprobaciones periódicas que realizamos en el sistema, nos aseguramos de que es tan seguro como el primer día que lo completamos.

Actualizaciones

Realizar actualizaciones puntuales es un proceso semiautomático que llevamos a cabo para todos los clientes que reciben soporte. Debemos asegurarnos de que todo funcione con rapidez y mantener el sistema actualizado. Por lo tanto, el cliente aprecia que el sistema que creamos hace mucho tiempo siga siendo eficiente y mejore con el tiempo.

Este es el verdadero objetivo del soporte de Dysnix, ¿verdad?

Conclusión

Valores que Dysnix ha generado, tanto esperados como inesperados

Las soluciones implementadas por Dysnix han potenciado las principales ventajas competitivas de Nansen. Como el campo principal del negocio del cliente está relacionado con el análisis de la cadena de bloques, hemos conseguido influir en la velocidad y la seguridad de los procesos internos. La mejora de la infraestructura siempre genera beneficios visibles para la experiencia del cliente final e incluso reduce los costos.

Los principales beneficios que aportamos se pueden resumir en las siguientes categorías:

  • Valores esperados y planificados
  • Beneficios y efectos secundarios inesperados

Los valores esperados y planificados son los resultados directos de la SoW completada a gran escala. Tales como:

  • El tiempo de valorización más rápido: Los primeros resultados de nuestro trabajo los obtuvo Nansen en solo cuatro semanas.
  • Infraestructura segura a prueba de fallos: El acceso a los nodos es completamente controlable y no se puede cambiar desde Internet. Aún así, funcionan a la perfección al 100%.
  • Base fiable para futuras mejoras: Cambios, soporte y recuperación de proyectos sencillos con la infraestructura como código y la implementación como código creados por nuestro equipo. Lograr hacer estas cosas significa un cambio positivo e integral para toda la infraestructura.
  • Soporte continuo: Dysnix proporciona un mantenimiento de la infraestructura sin preocupaciones con un equipo accesible e informes transparentes.

En cuanto a los beneficios inesperados y los efectos secundarios, podemos decir que no se puede ignorar su valor. Estos puntos no formaban parte del objetivo principal de nuestro equipo, pero estamos acostumbrados a hacer todo lo posible para maximizar los beneficios para nuestros clientes.

  • Amplio intercambio de conocimientos: Brindamos tutoría y consultoría continuas al equipo interno de Nansen. Nos adaptamos rápidamente al ritmo y al estilo del trabajo en equipo del cliente para maximizar el intercambio de experiencias, profundizar los conocimientos y dominar las habilidades de los ingenieros responsables.
  • Optimización del rendimiento de los nodos de archivado: Redujimos el tiempo de procesamiento de la información de 1 día sobre la cadena de bloques Ronin de 6 horas a 15 minutos para los nodos de archivo creados. ¡Ahora, nada puede detener este tren!

Lo que hemos aprendido de este proyecto

Desde el punto de vista técnico, las tareas de Nansen no eran demasiado complicadas. La mayoría de nuestros procesos se ejecutaron en diferentes variaciones en otros proyectos. Pero de todos modos, teníamos que ser extremadamente cautelosos para mantener todo con un tiempo de actividad del 99,99% y seguro de forma fiable. Gracias a nuestro hábito de modelar situaciones, planificar y pensar en situaciones hipotéticas, podemos prevenir los problemas y las catástrofes antes de que aparezcan. Las cosas que están bien establecidas funcionan bien, como dicen.

El segundo tema que nos mantuvo con los ojos abiertos todo el tiempo fue el cambio de planes de nuestro cliente. Es una situación absolutamente normal cuando los planes cambian de dirección 180 grados al final del día, después de unas cuantas rondas de entrevistas, una docena de horas de trabajo con el equipo interno y de hacer uno o dos experimentos. La flexibilidad de nuestro equipo contribuye a la adaptabilidad y a la profunda personalización de las soluciones que ofrecemos. Es por eso que no nos asustan las nuevas ideas de nuestros clientes, que están listos para probarlas con nuestras herramientas y habilidades.

Cómo obtener el mismo nivel de servicio de Dysnix

La breve guía sobre cómo obtener nuestra ayuda se encuentra aquí:

  1. Ponte en contacto con nuestro equipo.
  2. Programe una breve llamada de presentación.
  3. Permítanos profundizar en los detalles de lo que debe hacer.
  4. Reciba una oferta sobre cómo planeamos resolver su tarea.
  5. Decide si te queda bien. Empieza o adiós por ahora.

Estamos abiertos a nuevas oportunidades, proyectos desafiantes e investigaciones extremas. Nuestros ingenieros estarán encantados de investigar las infraestructuras más problemáticas y hacerlas funcionar a la perfección. Sabemos cómo gestionar nuestro trabajo en las circunstancias más difíciles, por lo que nuestros clientes no tienen motivos para dudar de nuestros resultados. Y estamos orgullosos de ello.

Las cosas deberían funcionar de manera eficiente y generar ganancias.

Y si estás buscando un equipo como el nuestro, da el primer paso y conoce a nosotros. Recibirás una respuesta incluso más rápido de lo que esperas:
Póngase en contacto con nosotros
__wf_reserved_heredar
Alex Vorona
DevOps Lead
Sharing the in-house secrets of DevOps mastery originated from Dysnix.
Tabla de contenido
__wf_reserved_heredar
Copiado al portapapeles
Pégalo donde quieras