Rejoignez-Nous sur

Un bref aperçu des outils de test et d'analyse comparative de la blockchain

y44m1345f

News

Un bref aperçu des outils de test et d'analyse comparative de la blockchain

y44m1345f

Les solutions de test pour les systèmes distribués aujourd'hui sont généralement conçues pour un type spécifique de blockchain ou ses fourches. Certains d'entre eux sont des projets open source, d'autres sont des SaaS, mais la majorité sont des solutions internes. Cependant, ils résolvent tous des problèmes similaires.

La blockchain a beaucoup en commun avec les bases de données distribuées, vous pouvez donc utiliser des outils et des méthodes de test analogues. Pour mieux comprendre comment les bases de données distribuées sont testées, jetez un œil à une belle sélection d'articles d'ici. Par exemple, la latence est expliquée en détail ici; pour comprendre comment les bogues sont identifiés dans les algorithmes de réplication, je recommande la lecture Cet article.

Je passerai en revue certaines solutions populaires pour les tests et l'analyse comparative de la chaîne de blocs. Vous êtes les bienvenus pour mentionner d'autres produits logiciels utiles dans les commentaires ci-dessous.

ju805FJCAPOE7DWpBvKE3ZSHtVs2 1w234th
Un système distribué est considéré comme fiable s'il continue de fonctionner en cas de problèmes avec les serveurs et les problèmes de réseau. Ceux-ci peuvent être des retards réseau, un débordement de stockage, des services externes non disponibles (comme DNS), une panne matérielle et des centaines d'autres raisons. Pour tester si un système est stable, utilisez Diablotin. Il s'appuie sur une approche très efficace appelée Chaos Engineering.

Gremlin installe son agent réseau sur le nombre requis de machines et crée divers problèmes: retards réseau, surcharge de ressources (CPU, disque, mémoire, réseau), désactive différentes parties du protocole, etc. Ainsi, les développeurs et les administrateurs peuvent suivre ce qui se passe en cas de un crash système dans un environnement contrôlé.

Pour les chaînes de blocs, Gremlin peut être utilisé sur les nœuds testnet, mais le réseau doit être configuré et déployé à l'avance.

Gremlin est un outil pratique pour les architectes, les développeurs et les spécialistes de la sécurité et une solution universelle pour tester tous les systèmes distribués lancés, y compris les chaînes de blocs.

ju805FJCAPOE7DWpBvKE3ZSHtVs2 vqny34s9
Étrier Hyperledger est une solution plus spécialisée. À l'heure actuelle, Caliper prend en charge plusieurs chaînes de blocs à la fois – des représentants de la famille Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu) ainsi que Ethereum et le réseau FISCO BCOS.
Caliper permet de spécifier la topologie et les contrats de la blockchain pour les tests, ainsi que de décrire la configuration des nœuds. Les nœuds de la chaîne de blocs sont déployés dans des conteneurs Docker sur une seule machine. Ensuite, vous pouvez sélectionner le nécessaire configurations de test et obtenez un fichier avec les résultats des tests après le lancement. Les mesures peuvent également être consultées sur Grafana. Une liste complète des métriques Caliper et du processus d'analyse comparative peut être trouvée dans un très bon article ici , surtout si vous êtes intéressé par l'analyse comparative de la blockchain.

Hyperledger Caliper est un outil conçu pour les développeurs et les architectes de systèmes, car il offre une répétitivité élevée et des tests et des analyses comparatives automatisés. Il est souvent utilisé pour développer un cœur de chaîne de blocs, des algorithmes de consensus, une machine virtuelle pour le traitement de contrats intelligents, des couches d'égal à égal et d'autres mécanismes de système.

ju805FJCAPOE7DWpBvKE3ZSHtVs2 96wk347m
Réservoir MixBytes est un outil qui est apparu lors du développement d'algorithmes de consensus et de finalité pour les réseaux basés sur EOS et les tests de parachains basés sur le substrat de parité (Polkadot). Il ressemble à Hyperledger Caliper en termes de fonctionnalités, car il collecte de nombreuses métriques importantes à partir des nœuds de tout système distribué et des machines clientes qui exécutent des scripts d'analyse comparative.

MixBytes Tank prend en charge plusieurs services cloud (Digital Ocean, Google Cloud Engine, etc.) pour le lancement de nombreux nœuds, effectue des procédures de configuration préliminaires, distribue les nœuds géographiquement, émule les problèmes de perte de paquets, exécute simultanément plusieurs tests de référence sur différentes machines, collecte les mesures nécessaires et s'arrête automatiquement l'ensemble du réseau de test.

MixBytes Tank permet d'économiser de l'argent sur les serveurs cloud, supprimant automatiquement les ressources inutiles après le test. Une autre caractéristique distinctive est l'utilisation du package Molecule permettant à un développeur de tester une configuration de chaîne de blocs complexe localement.

MixBytes Tank permet une détection précoce des goulots d'étranglement et des erreurs dans les algorithmes qui se produisent dans les réseaux réels avec un grand nombre de serveurs et de clients géographiquement distribués. Tank permet de suivre ce qui se passe sur les nœuds de la blockchain si les clients envoient des transactions à un rythme donné en répétition et d'intégrer ses résultats dans le processus CI / CD.

ju805FJCAPOE7DWpBvKE3ZSHtVs2 ss1vh34yy
Whiteblock Genesis est né en tant que plateforme de test de blockchain basée sur Ethereum. Cet outil est riche en fonctionnalités: il permet d'exécuter un réseau, de créer un nombre de comptes nécessaire, de lancer le nombre de clients souhaité, de configurer la topologie du réseau, de définir des paramètres de bande passante et de perte de paquets et d'exécuter un test.

Whiteblock Genesis fournit ses propres installations de test. Il suffit aux développeurs de spécifier des paramètres de test, de les exécuter à l'aide d'une API prête à l'emploi et d'obtenir des résultats sur le tableau de bord.

Avec Whiteblock Genesis, vous pouvez configurer un test assez détaillé, qui sera automatiquement effectué pour tout changement de code significatif. Vous serez en mesure de détecter rapidement les erreurs et d'évaluer immédiatement l'impact des modifications sur les paramètres réseau importants, tels que la vitesse de transaction et les ressources consommées par les nœuds.

ju805FJCAPOE7DWpBvKE3ZSHtVs2
Un autre jeune produit intéressant pour tester les systèmes distribués est Madt. Il est écrit en Python et permet de créer la topologie réseau et le nombre requis de serveurs et clients à l'aide d'un simple script de configuration (exemple). Après cela, le service déploie le réseau dans plusieurs conteneurs Docker et exécute une interface Web pour suivre les messages des serveurs et des clients réseau.

Madt peut être utilisé pour les tests de blockchain – il existe un test pour les réseaux p2p basé sur le protocole Kademlia. Le test est destiné à vérifier l'état des données en cas d'augmentation progressive des retards de transfert de données vers les nœuds.

Bien que récemment apparu, Madt peut devenir un produit très efficace, compte tenu de son architecture très flexible.

Solutions internes

Quels logiciels de test les projets blockchain utilisent-ils le plus? Leurs propres solutions.

Presque tous les tests de la partie système de la chaîne de blocs nécessitent le lancement de scripts préliminaires, la préparation des comptes et des conditions pour le test (test des erreurs de consensus qui peuvent générer de nombreuses fourchettes de chaîne; scénarios de script hard fork, modification des paramètres système, etc.). Ces manipulations sont effectuées différemment dans différentes chaînes de blocs, il est donc plus facile pour les équipes d '«adapter» progressivement les tests et l'analyse comparative de leur produit, augmentant progressivement la complexité et la profondeur des procédures de test.

Conclusion

Pour résumer cet aperçu, je vais énumérer les caractéristiques importantes des outils de test de la blockchain:

  • Possibilité de déployer automatiquement un réseau blockchain dans des conditions reproductibles. Ce facteur est crucial pour le développement de parties de système blockchain: algorithmes de consensus, finalité, contrats intelligents système.
  • Le prix de possession du système, les ressources consommables et la commodité pour une utilisation constante. Obtenez des tests de haute qualité pour un prix raisonnable.
  • Configuration de test flexible et simple. Ce facteur influence directement votre capacité à identifier les problèmes du système – vous risquez moins de manquer quelque chose d'important.
  • Personnalisation pour des blockchains spécifiques. Développer une solution basée sur la solution existante peut grandement améliorer la qualité et le calendrier.
  • Commodité et disponibilité des résultats et de leur type (rapports, métriques, graphiques, journaux, etc.). Ceci est essentiel si vous souhaitez conserver un historique du développement de produits ou si vous avez besoin d'une analyse approfondie du comportement du réseau blockchain.

Bonne chance dans les tests et laissez vos chaînes de blocs être rapides et tolérantes aux pannes!

(Avertissement: L'auteur est associé à l'équipe MixBytes)



Traduction de l’article de BoogerWooger : Article Original

BlockBlog

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog

Commenter cet Article

Commenter cet Article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans News

Les Plus Populaires

Acheter des Bitcoin

Acheter des Alt-Coins

Sécuriser vos Cryptos

Vêtements et Produits Dérivés

Top