L'algorithme PBFT dans l'hyperlien

quelqu'un Peut-il expliquer algorithme PBFT en détail sans donner de lien pour le même. Et comment il fonctionne dans hyperledger. Ainsi, une fois que la transaction est envoyée à blockchain:

(1). Qui valide la transaction?

(2). Comment le consensus est obtenu sur la transaction?

(3). Comment la transaction est-elle engagée dans le blockchain?

24
demandé sur Joel 2017-01-18 06:10:57

3 réponses

"Hyperledger" est un consortium de blockchain sous la Linux Foundation. Il y a actuellement au moins 4 implémentations différentes de blockchain frameworks sous Hyperledger:

  • Fabric (IBM)
  • Corda (R3)
  • Iroha
  • En Dents De Scie Lac (Intel)

dans le tissu v0.6:

tous les pairs de validation gardent ouverte la connexion entre eux. Vous pouvez soumettre votre transaction à l'un d'eux, et ce la transaction sera diffusé à d'autres pairs du réseau. L'un des pairs est élu "chef de file". Au moment où un nouveau bloc va être généré:

  1. le leader commande les transactions que les candidats doivent inclure dans un bloc, et diffuse cette liste de transactions ordonnées à tous les autres pairs de validation dans le réseau.
  2. lorsque chacun des pairs de Validation reçoit la liste des transactions ordonnées, chaque Pair de validation fait suivant:
    1. il commence à exécuter les transactions ordonnées une par une.
    2. dès que toutes les transactions sont exécutées, il calcule le code de hachage pour le bloc nouvellement créé (le code de hachage inclut des hachages pour les transactions exécutées et l'état final du monde).
    3. puis il diffuse sa réponse (le code de hachage résultant) aux autres pairs du réseau, et commence à compter les réponses de ceux-ci.
    4. si elle voit que 2/3 de toute la validation les pairs ont le même code de hachage, il validera le nouveau bloc à sa copie locale du livre.

dans le tissu v1.0:

cette version est toujours en développement. Dans la v1 est pas un "leader","Client " est responsable de l'ordre des transactions dans un bloc. Ce service est plug-inable et a annoncé qu'il y aura 3 options différentes:

  1. Solo processus unique est chargé de la commande
  2. Kafka orderer-utilise le système Kafka pubsub pour effectuer la commande
  3. PBFT-n'est pas encore implémenté.

Dans La Corda:

PBFT n'est pas utilisé. Cette mise en œuvre utilise une autre approche d'architecture.

21
répondu Sergey Balashevich 2018-08-06 19:54:41

dans Corda, le consensus est fourni par les notaires. C'est le notaire de l'opérateur dont le consensus algorithme qu'ils utilisent. THON rouge de l'est est une option. Vous pouvez voir un échantillon de notaire Corda BFT ici:https://github.com/corda/corda/tree/master/samples/notary-demo.

Pour répondre à tes questions:

(1). Qui valide la transaction?

La transaction est validée par un groupe d'un ou plusieurs notaires. Les notaires sont des noeuds avec la semelle le but de deconflicting double-passer tentatives.

(2). Comment le consensus est obtenu sur la transaction?

utilisant un algorithme Bft standard. Chaque noeud de la grappe de notaire vote sur la question de savoir s'ils considèrent 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 noeuds dans le cluster étant malveillants.

(3). Comment la transaction est engagée blockchain?

dans Corda, il n'y a pas de stock central de renseignements auxquels le mouvement est engagé. Le cluster de notaire ajoute simplement la référence d'état usée à une table de base de données interne. Il vérifiera les tentatives futures de dépenser des États contre ce tableau, et rejettera la tentative de dépense si la référence d'état est déjà stockée là.

2
répondu Joel 2018-02-02 09:01:02

Le dessus est manquant, le Consensus des algorithmes de Hyperledger en dents de scie, donc les voici:

  • poète preuve du temps écoulé (algorithme de consensus de style Nakamoto optionnel utilisé pour Sawtooth). Poète avec SGX a BFT. PoET Simulator a la CFT. Il n'est pas exigeant en CPU comme avec les algorithmes de style PoW, bien qu'il puisse encore bifurquer et avoir des blocs périmés . Voir la spécification du poète à https://sawtooth.hyperledger.org/docs/core/release s/latest/architecture/poète.html
  • radeau algorithme de Consensus qui élit un chef pour un mandat de temps arbitraire. Leader remplacé si elle Temps-out. Raft est plus rapide que PoET, mais n'est pas BFT (Raft est CFT). Aussi radeau ne fourche pas. Hyperledger Sawtooth a l'avantage d'avoir un Consensus imprenable. Un algorithme peut être modifié sans réinitialiser le blockchain ou même redémarrer le logiciel.

voici un autre consensus algorithmes:

  • PoW preuve de travail. Achèvement du travail (algorithme de consensus de style Nakamoto intensif en CPU). Généralement utilisé dans les blockchains sans permissivité
  • PoS preuve de L'enjeu. Algorithme de consensus de style Nakamoto basé sur la plus grande richesse ou l'âge (enjeu)
  • PBFT La Tolérance Byzantine Pratique À La Faute. Un algorithme de consensus "classique" qui utilise une machine d'état. Utilise l'élection de chef et de bloc. PBFT est un algorithme triphasé, réseau intensif (messages n^2), donc pas extensible aux grands réseaux
0
répondu Dan Anderson 2018-08-17 21:53:35