Quelqu'un peut-il expliquer Algorithme PBFT en détail sans donner de lien pour le même. Et comment cela fonctionne dans hyperledger . Ainsi, une fois la transaction envoyée au blockchain
:
(1). Qui valide la transaction?
(2). Comment le consensus est-il atteint sur la transaction?
(3). Comment la transaction est-elle engagée dans la blockchain?
"Hyperledger" est un consortium de blockchain sous The Linux Foundation. Actuellement, il existe au moins 4 implémentations différentes de frameworks blockchain sous Hyperledger:
Dans Fabric v0.6 :
Tous les pairs de validation gardent une connexion ouverte les uns avec les autres. Vous pouvez soumettre votre transaction à n'importe lequel d'entre eux, et cette transaction sera diffusée à d'autres pairs du réseau. L'un des pairs est élu "chef". Au moment où un nouveau bloc va être généré:
Dans Fabric v1.0 :
Cette version est encore en développement. Dans la v1, il n'y a pas de "leader", un service séparé " Orderer " est responsable de l'ordre des transactions dans un bloc. Ce service est enfichable et a annoncé qu'il y aura 3 options différentes:
À Corda :
PBFT n'est pas utilisé. Cette implémentation utilise une autre approche d'architecture.
A Corda, le consensus est assuré par les notaires. Il appartient à l'opérateur notarial quel algorithme de consensus ils utilisent. BFT est une option. Vous pouvez voir un exemple de notaire Corda BFT ici: https://github.com/corda/corda/tree/master/samples/notary-demo .
Pour répondre à vos questions:
(1). Qui valide la transaction?
La transaction est validée par un cluster d'un ou plusieurs notaires. Les notaires sont des nœuds dont le seul but est de déconflire les tentatives de double dépense.
(2). Comment le consensus est-il atteint sur la transaction?
Utilisation d'un algorithme BFT standard. Chaque nœud du cluster notaire décide s'il considère la transaction comme une tentative de double dépense. La décision finale est basée sur une règle de majorité et peut tolérer jusqu'à 1/3 des nœuds du cluster malveillants.
(3). Comment la transaction est engagée dans la blockchain?
À Corda, il n'y a pas de magasin central d'informations sur lequel la transaction est engagée. Le cluster de notaires ajoute simplement la référence de l'état épuisé à une table de base de données interne. Il vérifiera les futures tentatives de dépenser les états par rapport à ce tableau et rejettera la tentative de dépenses si la référence d'état y est déjà stockée.
Il manque les algorithmes Consensus d'Hyperledger Sawtooth, donc les voici:
Voici quelques autres algorithmes de consensus: