誰もPBFTアルゴリズムにリンクを与えずに詳細に説明できますか?そして、それがhyperledgerでどのように機能するか。したがって、トランザクションがblockchain
に送信されると:
(1)。誰がトランザクションを検証しますか?
(2)。トランザクションでコンセンサスがどのように達成されますか?
(3)。トランザクションはどのようにブロックチェーンにコミットされますか?
「Hyperledger」は、The Linux Foundationのブロックチェーンコンソーシアムです。現在、Hyperledgerには少なくとも4つの異なるブロックチェーンフレームワークの実装があります。
Fabric v0.6:
すべての検証ピアは、互いにオープンな接続を維持します。それらのいずれかにトランザクションを送信できます。このトランザクションはネットワーク内の他のピアにブロードキャストされます。ピアの1つが「リーダー」として選出されます。新しいブロックが生成されるとき:
Fabric v1.0:
このバージョンはまだ開発中です。 v1では「リーダー」ではなく、個別のサービス「 Orderer 」がブロック内のトランザクションの順序を担当します。このサービスはプラグイン可能であり、3つの異なるオプションがあることを発表しています。
Corda:
PBFTは使用されません。この実装では、別のアーキテクチャアプローチを使用します。
Cordaでは、コンセンサスは公証人によって提供されます。どのコンセンサスアルゴリズムを使用するかは公証人次第です。 BFTは1つのオプションです。 Corda BFT公証人のサンプルは、こちらでご覧いただけます: https://github.com/corda/corda/tree/master/samples/notary-demo 。
質問に答えるには:
(1)。誰がトランザクションを検証しますか?
トランザクションは、1つ以上の公証人のクラスターによって検証されます。公証人は、二重支出の競合を解消することを唯一の目的とするノードです。
(2)。トランザクションでコンセンサスはどのように達成されますか?
標準のBFTアルゴリズムを使用します。公証クラスタ内の各ノードは、トランザクションをダブルペンディングの試行と見なすかどうかについて投票します。最終的な決定は多数決ルールに基づいており、クラスター内のノードの最大3分の1が悪意があることを許容できます。
(3)。トランザクションはどのようにブロックチェーンにコミットされますか?
Cordaには、トランザクションがコミットされる情報の中央ストアはありません。公証クラスタは、使用済みの状態参照を内部データベーステーブルに追加するだけです。このテーブルに対して状態を使用する将来の試行をチェックし、状態参照が既にそこに保存されている場合、消費の試行を拒否します。
上記には、Hyperledger Sawtoothのコンセンサスアルゴリズムが欠落しているため、次のとおりです。
他のコンセンサスアルゴリズムは次のとおりです。