Hoxe, as solucións para probar e comparar as cadeas de bloques están adaptadas a unha cadea de bloques específica ou aos seus forks. Pero tamén hai varias solucións máis xerais que difieren en funcións: algunhas delas son proxectos de código aberto, outras son proporcionadas como SaaS, pero a maioría son solucións internas creadas polo equipo de desenvolvemento da cadea de bloques. Non obstante, todos solucionan problemas similares. Neste artigo, tentei revisar brevemente varios produtos deseñados especificamente para probar blockchains.
O funcionamento dunha rede blockchain parécese ao funcionamento dunha base de datos distribuída, polo que se poden usar ferramentas e métodos similares para probar. Para comprender mellor como se proban as bases de datos distribuídas, bótalle un ollo a unha boa selección de recursos e artigos
Describirei varias solucións populares para probar e comparar as cadeas de bloques. Gustaríame que nos comentarios describas outros produtos de software útiles para resolver os mesmos problemas.
Comezarei cunha ferramenta que, aínda que non se creou especificamente para as cadeas de bloques, permite probar de forma eficaz o seu funcionamento, sempre que exista unha rede xa en funcionamento na que poida experimentar. O factor máis importante na fiabilidade dun sistema distribuído é a capacidade de seguir traballando en caso de problemas cos servidores e a rede. Isto pode ser atrasos de rede, cheo do disco, non dispoñibilidade de servizos externos (DNS), fallos de hardware e centos de razóns máis. Para comprobar a estabilidade de calquera sistema que funcione en conxunto nun gran número de máquinas de sistemas, podes usar
Usando o seu propio axente de rede, Gremlin crea moitos tipos diferentes de problemas no número necesario de máquinas: atrasos de rede, sobrecarga de calquera recurso (CPU, disco, memoria, rede), desactiva protocolos individuais, etc. Para as cadeas de bloques, Gremlin pódese usar en servidores testnet, emulando problemas da vida real e observando o comportamento da rede. Con el, os desenvolvedores e administradores poden observar nun ambiente controlado o que sucederá se o sistema falla ou cando se actualiza o código. Neste caso, a rede debe estar configurada e despregada previamente, así como configurada para recoller as métricas necesarias.
Gremlin é unha ferramenta conveniente para arquitectos, devops e especialistas en seguridade e unha solución universal para probar calquera sistema distribuído listo e en execución, incluíndo blockchains.
Hyperledger Caliper é unha solución moito máis especializada
Usando Caliper, pode establecer a topoloxía da rede blockchain e os contratos para probar, así como describir a configuración do nodo. Os nodos da cadea de bloques son creados en contedores docker nunha máquina. A continuación, pode seleccionar o necesario
Hyperledger Caliper é unha ferramenta dirixida a desenvolvedores e arquitectos de sistemas, xa que proporciona repetibilidade das probas e automatización das probas e do benchmarking. Utilízase no desenvolvemento do núcleo das cadeas de bloques: algoritmos de consenso, unha máquina virtual para procesar contratos intelixentes, unha capa peer-to-peer e outros mecanismos do sistema.
MixBytes Tank utiliza varios servizos na nube (Digital Ocean, Google Cloud Engine, etc.), nos que pode lanzar moitos nodos, realizar procedementos de configuración preliminares, executar varios benchmarks en paralelo en diferentes máquinas, recoller as métricas necesarias e apagar automaticamente o rede.
MixBytes Tank permítelle aforrar diñeiro nos servidores na nube minimizando automaticamente os recursos innecesarios despois dunha proba. Outra característica distintiva é o uso do paquete Molecule, que permite ao desenvolvedor probar localmente a implantación da cadea de bloques desexada.
MixBytes Tank permítelle detectar precozmente os pescozos de botella e os erros nos algoritmos que xorden en redes reais cunha gran cantidade de servidores e clientes distribuídos xeograficamente. O tanque axudarache a comprender o que ocorrerá nos nodos se os clientes envían transaccións cun tps determinado en condicións altamente repetibles e cun número real de nós repartidos por diferentes continentes, se é necesario.
Whiteblock Genesis é unha plataforma de proba para cadeas de bloques baseadas en Ethereum. Esta ferramenta ten unha funcionalidade bastante ampla: permítelle iniciar unha rede, crear o número necesario de contas nela, aumentar o número necesario de clientes, configurar a topoloxía da rede, especificar o ancho de banda e os parámetros de perda de paquetes e realizar unha proba.
Whiteblock Genesis ofrece as súas propias instalacións de proba. Os desenvolvedores só precisan especificar parámetros de proba, executalos mediante unha API preparada e obter resultados mediante un panel de control cómodo.
Whiteblock Genesis permítelle configurar unha proba bastante detallada que a plataforma realizará automaticamente para cada cambio significativo de código. Isto permitirache detectar erros nunha fase inicial e avaliar inmediatamente o impacto dos cambios en parámetros importantes da rede, como a velocidade de transacción e os recursos consumidos polos nodos.
Madt
Outro produto novo interesante para probar sistemas distribuídos é
Madt apareceu recentemente, pero dada a súa arquitectura moi flexible, pode converterse nun produto funcional.
Outras solucións
Case calquera proba da parte do sistema das cadeas de bloques require executar scripts preliminares, preparar contas e condicións para a proba (isto pode ser probar erros de consenso que poden xerar numerosos forks de cadeas, probar escenarios de hard fork, cambiar os parámetros do sistema, etc.). Todas estas manipulacións realízanse de forma diferente en diferentes cadeas de bloques, polo que é máis doado para os equipos adaptar gradualmente as probas e os benchmarking de produtos ao CI/CD interno e utilizar os seus propios desenvolvementos, que se van facendo máis complexos a medida que se desenvolve a funcionalidade da cadea de bloques.
Non obstante, o uso de solucións preparadas pode reducir moito o tempo de proba destes equipos, polo que creo que este software desenvolverase activamente nos próximos anos.
Conclusión
Para concluír esta breve revisión, enumerarei varias características importantes das ferramentas de proba de blockchain:
- A capacidade de implementar automaticamente unha rede blockchain en condicións repetibles. Este factor é importante cando se desenvolven partes do sistema das cadeas de bloques: algoritmos de consenso, finalidade, contratos intelixentes do sistema.
- O custo de posuír o sistema, os recursos consumidos e a comodidade de uso constante. Este factor proporciona ao proxecto probas de alta calidade por pouco diñeiro.
- Flexibilidade e sinxeleza da configuración da proba. Este factor aumenta as posibilidades de identificar problemas do sistema: hai menos posibilidades de perder algo importante.
- Personalización para tipos específicos de blockchains. Desenvolver unha solución baseada nunha existente pode mellorar moito a calidade e reducir os custos de tempo.
- Comodidade e accesibilidade dos resultados obtidos e da súa tipoloxía (informes, métricas, gráficos, rexistros, etc.). Isto é absolutamente necesario se queres seguir o historial do desenvolvemento dun produto ou se necesitas unha análise profunda do comportamento da rede blockchain.
Boa sorte coas túas probas e que as túas cadeas de bloques sexan rápidas e tolerantes a fallos.
Fonte: www.habr.com