Fermer

mai 28, 2020

Comprendre les performances des systèmes Blockchain


La blockchain est un exemple de systèmes de registres distribués et partage en tant que telle les mêmes performances que tous les autres systèmes distribués. Afin de mesurer les performances d'un système distribué avec un degré de précision acceptable, il est préférable de simplifier autant de variables sous notre contrôle que possible. La taille des données déplacées sur le réseau est l'une des mesures de performance et d'évolutivité les plus fondamentales et généralement les plus difficiles à comprendre et à gérer. Le papier original de la blockchain implémentait une solution élégante à ce problème: l'arborescence Merkle.

Taille

Dans les systèmes de blockchain, un bloc doit contenir un historique complet de toutes les transactions valides. La taille d'un bloc varie en fonction de la longueur de l'historique et du contenu stocké. Un hachage est une technique informatique courante pour réduire une chaîne de longueur variable à une chaîne unique de longueur fixe. La blockchain utilise un arbre Merkle. Les feuilles d'un arbre Merkle sont construites de bas en haut, chaque feuille contenant les transactions hachées d'un seul bloc. Un parent est le résultat de la concaténation de deux feuilles consécutives et de la production d'un nouveau hachage de longueur fixe. Cela progresse vers le haut du dernier parent, appelé la racine Merkle. En Bitcoin, chaque bloc fait 80 octets, quel que soit le nombre de transactions. Une preuve Merkle permet de décoder le bloc de 80 octets dans sa taille d'origine. La taille de bloc dans Bitcoin est limitée à 1 Mo, il peut donc y avoir 1000 transactions dans un bloc. Ethereum utilise trois racines Merkle dans chaque bloc; une pour les transactions, une pour l'état et une pour les reçus de transaction.

Vitesse

La vitesse, ou débit, est la variable suivante qui doit être bien comprise pour bien concevoir un réseau distribué. La vitesse fait référence au temps nécessaire à un algorithme pour traiter une seule transaction. C'est pourquoi nous pouvons mesurer la performance relative en termes de transactions par seconde (tps). Le réseau Bitcoin est contraint par la limite de taille de bloc de 1 Mo et le temps moyen de création de bloc de 10 minutes. Le réseau bitcoin peut traiter ~ 5-7 tps tandis que Visa peut traiter ~ 1500 tps. Une combinaison de solutions, y compris un réseau plus rapide (comme le Lightning Network Project) et un protocole de transaction plus rapide (tel que SegWit) seront probablement nécessaires pour que le taux de transaction de Bitcoin soit réalisable en tant que protocole de traitement des paiements en réseau.

 Data Intelligence - L'avenir des mégadonnées
L'avenir des mégadonnées

Avec quelques conseils, vous pouvez créer une plateforme de données adaptée aux besoins de votre organisation et tirer le meilleur parti de votre capital de données.

Obtenir le guide [19659010] Le protocole d'Ethereum est plus rapide que le protocole de Bitcoin sur un réseau public, en particulier après la Istanbul fork . Les performances sur les réseaux autorisés avec Ethereum et Hyperledger approchent 3 500 tps, ce qui représente toujours environ 1/10 e les performances d'une base de données relationnelle exécutant des charges de travail similaires. La différence de performance entre le réseau autorisé et le réseau public est liée à l'établissement de la fiabilité des pairs du réseau. Dans les réseaux autorisés, comme certaines implémentations d'entreprise d'Hyperledger Fabric où tous les participants sont connus, le processus est relativement simple.

Résumé

Blockchain n'est pas le système distribué le plus performant mais ce n'est pas sa force. Vous pouvez obtenir des performances incroyables à partir d'un magasin de données de valeurs-clés en mémoire, mais vous n'obtenez pas de tolérance de panne byzantine, des enregistrements immuables connectés cryptographiquement. La performance est un terme relatif qui est encadré dans le contexte d'un cas d'utilisation particulier. Les caractéristiques de performance du réseau bitcoin par rapport au réseau Visa peuvent le rendre peu pratique pour certains types de traitement des paiements, mais cela n'a certainement pas été une contrainte pour Ripple .

La sélection d'un système distribué nécessite une analyse minutieuse car il y a beaucoup de potards à régler. Les performances, l'évolutivité, la résilience, la disponibilité, la cohérence, l'intégrité et le coût sont tous des facteurs. Comprendre les compromis et les impacts vous permettra de déplacer des déclarations antérieures comme «la blockchain est plus lente qu'une base de données relationnelle» et de penser de manière plus stratégique aux problèmes que vous devez résoudre.

À propos de l'auteur <! -: dcallaghan, Architecte de solutions ->

En tant qu'architecte de solutions chez Perficient, j'apporte vingt ans d'expérience en développement et je suis actuellement -on avec Hadoop / Spark, blockchain et cloud, codage en Java, Scala et Go. Je suis certifié et travaille beaucoup avec Hadoop, Cassandra, Spark, AWS, MongoDB et Pentaho. Plus récemment, j'ai apporté des solutions de blockchain intégrées (en particulier Hyperledger et Ethereum) et de Big Data au cloud en mettant l'accent sur l'intégration de produits de données modernes tels que HBase, Cassandra et Neo4J en tant que référentiel hors blockchain.

cet auteur




Source link