Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Hoy en día, las soluciones para probar y comparar cadenas de bloques se adaptan a una cadena de bloques específica o sus bifurcaciones. Pero también hay varias soluciones más generales que difieren en funcionalidad: algunas de ellas son proyectos de código abierto, otras se proporcionan como SaaS, pero la mayoría son soluciones internas creadas por el equipo de desarrollo de blockchain. Sin embargo, todos resuelven problemas similares. En este artículo, intenté revisar brevemente varios productos diseñados específicamente para probar blockchains.

El funcionamiento de una red blockchain se asemeja al funcionamiento de una base de datos distribuida, por lo que se pueden utilizar herramientas y métodos similares para las pruebas. Para comprender mejor cómo se prueban las bases de datos distribuidas, consulte una buena selección de recursos y artículos. por lo tanto. Por ejemplo, la latencia se clasifica en partes en este статье, y para entender cómo buscan errores en los algoritmos de replicación, recomiendo leer esto artículo.

Describiré varias soluciones populares para probar y comparar cadenas de bloques. Me alegraría que en los comentarios describiera otros productos de software útiles para resolver los mismos problemas.

Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Comenzaré con una herramienta que, aunque no está creada específicamente para blockchains, te permite probar eficazmente su funcionamiento, siempre que ya exista una red en funcionamiento en la que puedas experimentar. El factor más importante en la confiabilidad de un sistema distribuido es la capacidad de continuar trabajando en caso de problemas con los servidores y la red. Esto podría deberse a retrasos en la red, disco lleno, falta de disponibilidad de servicios externos (DNS), fallas de hardware y cientos de otras razones. Para verificar la estabilidad de cualquier sistema que funcione en conjunto en una gran cantidad de máquinas de sistemas, puede usar duendecillo. Utiliza un enfoque extremadamente eficaz llamado Ingeniería del Caos.

Utilizando su propio agente de red, Gremlin crea muchos tipos diferentes de problemas en la cantidad requerida de máquinas: retrasos en la red, sobrecarga de cualquier recurso (CPU, disco, memoria, red), desactiva protocolos individuales, etc. Para blockchains, Gremlin se puede utilizar en servidores testnet, emulando problemas de la vida real y observando el comportamiento de la red. Con él, los desarrolladores y administradores pueden observar en un entorno controlado qué sucederá si el sistema falla o cuando se actualiza el código. En este caso, la red debe configurarse e implementarse con anticipación, así como también configurarse para recopilar las métricas necesarias.

Gremlin es una herramienta conveniente para arquitectos, desarrolladores y especialistas en seguridad y una solución universal para probar cualquier sistema distribuido listo para usar y en ejecución, incluidas las cadenas de bloques.

Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Hyperledger Caliper es una solución mucho más especializada Pinza Hyperledger. Por el momento, Caliper admite varias cadenas de bloques a la vez: representantes de la familia Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), así como Ethereum y la red FISCO BCOS.

Con Caliper, puede configurar la topología de la red blockchain y los contratos para realizar pruebas, así como describir la configuración del nodo. Los nodos de blockchain se levantan en contenedores acoplables en una máquina. A continuación, puede seleccionar lo necesario. configuraciones de prueba y reciba un archivo con un informe sobre los resultados de la prueba después del lanzamiento. Puede encontrar una lista completa de las métricas de Caliper y el enfoque de evaluación comparativa aquí. Métricas de rendimiento de Hyperledger Blockchain, este es un gran artículo si está interesado en el tema de la evaluación comparativa de blockchain. También puede configurar la recopilación de métricas en un Prometheus/Grafana independiente.

Hyperledger Caliper es una herramienta dirigida a desarrolladores y arquitectos de sistemas, ya que proporciona repetibilidad de pruebas y automatización de pruebas y evaluaciones comparativas. Se utiliza en el desarrollo del núcleo de blockchain: algoritmos de consenso, una máquina virtual para procesar contratos inteligentes, una capa peer-to-peer y otros mecanismos del sistema.

Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Tanque MixBytes es una herramienta que surgió en el proceso de desarrollo de algoritmos de consenso y finalidad para redes basadas en EOS y prueba de paracaídas basadas en Parity Substrate (Polkadot). En términos de funcionalidad, está cerca de Hyperledger Caliper, ya que le permite recopilar métricas importantes de los nodos de cualquier sistema distribuido y máquinas cliente en las que se ejecutan los scripts de prueba.

MixBytes Tank utiliza varios servicios en la nube (Digital Ocean, Google Cloud Engine, etc.), en los que puede lanzar muchos nodos, realizar procedimientos de configuración preliminares, ejecutar varios puntos de referencia en paralelo en diferentes máquinas, recopilar las métricas necesarias y apagar automáticamente el red.

MixBytes Tank le permite ahorrar dinero en servidores en la nube al minimizar automáticamente los recursos innecesarios después de una prueba. Otra característica distintiva es el uso del paquete Molecule, que permite al desarrollador probar localmente la implementación de la cadena de bloques deseada.

MixBytes Tank le permite detectar tempranamente cuellos de botella y errores en algoritmos que surgen en redes reales con una gran cantidad de servidores y clientes distribuidos geográficamente. El tanque le ayudará a comprender qué sucederá en los nodos si los clientes envían transacciones con un tps determinado en condiciones altamente repetibles y con una cantidad real de nodos repartidos en diferentes continentes, si es necesario.

Una breve descripción de las herramientas de prueba y evaluación comparativa de Blockchain

Whiteblock Genesis es una plataforma de prueba para blockchains basadas en Ethereum. Esta herramienta tiene una funcionalidad bastante amplia: le permite iniciar una red, crear la cantidad requerida de cuentas en ella, aumentar la cantidad requerida de clientes, configurar la topología de la red, especificar el ancho de banda y los parámetros de pérdida de paquetes y ejecutar una prueba.

Whiteblock Genesis proporciona sus propias instalaciones de prueba. Los desarrolladores solo necesitan especificar los parámetros de prueba, ejecutarlos usando una API lista para usar y obtener resultados usando un panel conveniente.

Whiteblock Genesis le permite configurar una prueba bastante detallada que la plataforma realizará automáticamente para cada cambio de código significativo. Esto le permitirá detectar errores en una etapa temprana y evaluar inmediatamente el impacto de los cambios en parámetros importantes de la red, como la velocidad de las transacciones y los recursos consumidos por los nodos.

loco

Otro producto joven e interesante para probar sistemas distribuidos es loco. Está escrito en Python y le permite crear la topología de red requerida y la cantidad requerida de servidores y clientes usando un script de configuración simple (ejemplo). Después de esto, el servicio implementa la red en varios contenedores Docker y abre una interfaz web en la que se pueden observar los mensajes de los servidores y clientes de la red. Madt se puede utilizar para probar cadenas de bloques: el repositorio del proyecto tiene una prueba de red p2p basada en el protocolo Kademlia, en la que los retrasos en la entrega de datos a los nodos aumentan gradualmente y se verifica el estado de estos datos.

Madt ha aparecido recientemente, pero dada su arquitectura muy flexible, puede convertirse en un producto funcional.

Otras soluciones

Casi cualquier prueba de la parte del sistema de blockchain requiere ejecutar scripts preliminares, preparar cuentas y condiciones para la prueba (esto puede ser probar errores de consenso que pueden generar numerosas bifurcaciones de cadenas, probar escenarios de bifurcaciones duras, cambiar parámetros del sistema, etc.). Todas estas manipulaciones se llevan a cabo de manera diferente en diferentes blockchains, por lo que es más fácil para los equipos adaptar gradualmente las pruebas y evaluaciones comparativas de productos al CI/CD interno y utilizar sus propios desarrollos, que gradualmente se vuelven más complejos a medida que se desarrolla la funcionalidad de la blockchain.

Sin embargo, el uso de soluciones listas para usar puede reducir en gran medida el tiempo de prueba de estos equipos, por lo que creo que este software se desarrollará activamente en los próximos años.

Conclusión

Para concluir esta breve reseña, enumeraré varias características importantes de las herramientas de prueba de blockchain:

  • La capacidad de implementar automáticamente una red blockchain en condiciones repetibles. Este factor es importante al desarrollar partes del sistema de blockchain: algoritmos de consenso, finalidad, contratos inteligentes del sistema.
  • El costo de propiedad del sistema, los recursos consumidos y la conveniencia de su uso constante. Este factor proporciona al proyecto pruebas de alta calidad por poco dinero.
  • Flexibilidad y simplicidad de configuración de pruebas. Este factor aumenta las posibilidades de identificar problemas en el sistema: hay menos posibilidades de perderse algo importante.
  • Personalización para tipos específicos de blockchains. Desarrollar una solución basada en una existente puede mejorar enormemente la calidad y reducir los costos de tiempo.
  • Comodidad y accesibilidad de los resultados obtenidos y su tipología (informes, métricas, gráficos, logs, etc.). Esto es absolutamente necesario si desea realizar un seguimiento del historial de desarrollo de un producto o si necesita un análisis profundo del comportamiento de la red blockchain.

¡Buena suerte con tus pruebas y que tus blockchains sean rápidas y tolerantes a fallos!

Fuente: habr.com

Añadir un comentario