昨年の夏、寮だけでHyperledger Fabricについて学んだというのも偶然です。その後、さまざまな理由でこの方向をあきらめて、教師との履歴書を作成し始めました。今度は、ブロックをもう一度見始めました。チェーン関連のもの。
昨年ブロックチェーンを習い始めたとき、PKIや暗号化など、まだ習得できていないことが多く、当時はコンピューターネットワークも混乱していたため、かなりのエネルギーを浪費していました。PKI証明書については、ずっと頭を悩ませてきたことを覚えています。ただ理解する。当時、私は12件のブログの記録についても書いていましたが、今は長い間振り返っていませんし、エラーの数もわかりません。
3年生のときは、PKIや暗号などの講座をもう一度受講したのですが、当時はこの分野に入らなかったのではないかと思い、回り道をたくさんしました。考えてみるのも悪くないことですが、試行錯誤して色々と学びました。
数日前、講師はいくつかの論文を閲覧用に提供しました。そのうちの1つは「ブロックチェーンとデータベースシステムの間の線をぼかす:Hyperledger Fabricのケース」でした。これは昨日読んだ後、特にHyperledger Fabricのワークフローが紙にあったときに突然明るくなりました。セクション。もちろん中盤もとてもエキサイティングで読みやすく、アルゴリズム部は細かい例を挙げて説明してくれているので、すぐに仕上げるのに苦労しませんでした。これから、私は数日前に見たSBFTについて思います、それは本当に読みにくいです= _ = ||
アーキテクチャー
Fabric
これは1つですpermissioned blockchain system
。つまり、ブロックチェーンネットワーク全体で、時間の経過peer
とともに他者peer
の存在を知ることができます。その他のpeer
構成が可能organization
で、organization
内部peers
の信頼互いの間で、それぞれがpeer都
維持ledger
コピーがledger
有効と無効が含まtransaction
に加えて、peer
また、データベースの状態の形で現在の状態を維持します。これに加えpeer
て、ランク付けにordering service
使用される別の重要な役割がありtransaction
ます。
ワークフロー
Fabric
基本的なプロセス、すなわち4つの段階からなる模拟(simulate)
、排序(order)
、验证(validata)
、提交(commit)
以下に示すように、。
シミュレーション
その名前が示すように、このステージはトレーディングのシミュレーションにすぎず、実際にはlを更新しませんedger
。
client
トランザクション要求を開始し、要求が送信されますendorsers
(endorsement peer
、これらpeer
はに従ってendorsement policy
選択されます)。これらのトランザクションはendorsers
現在のローカルledger状态
並列シミュレーションに従って実行されますが、元帳の状態は変更されませんが、このトランザクションの影響に関するread set
1つと1つのwrite set
レコードがあります。シミュレーションが完了すると、合計に署名しendorser
、一緒に返します。read set
write set
client
場合はclient
受信read set
とwrite set
(悪意の裏書またはインテリジェント契約が矛盾につながる不確実なアルゴリズムが存在する可能性)と一致している、そしてclient
それは、実際のトランザクション要求を生成含まれていますread set
、write set
そして対応する署名、およびに要求を送信しますordering service
。
並べ替え
ordering service
からclient
トランザクションをソートします。トランザクションの内容はここではチェックされないことに注意してください。デフォルトでは、トランザクションが到着した順序でソートされます(この単純なソートは、多数のトランザクションの競合を引き起こし、特定の順序に従うとパフォーマンスが低下する可能性があります)並べ替えにより、トランザクションの競合が大幅に減少し、スループットが向上します。これは、このホワイトペーパーで提案されている最も重要な作業でもあり、ここでは詳しく説明しません)。
ordering service
トランザクションがソートおよびパッケージ化された後、block
ネットワークに送信されますpeers
。すべてのトランザクションがpeer
同時にこれを受信する保証はありませんblock
がblock
、受信の順序は一貫している(使用されているgossip协议
)ことが保証されています。
確認する
ときにpeer
受信block
、検証フェーズが始まりました。
検証フェーズには、主に2つのチェックが含まれます。
Endorsement Policy
チェック
トランザクションが満たされendorsement policy
ているかどうか、および有効な署名が含まれているかどうかをチェックします。そうでない場合、トランザクションが改ざんされclient
たり、悪意を持ってpeer
直接破棄されたりする可能性があります。- トランザクションの競合チェック
ダーティデータの読み出しかどうかの問題(トランザクションで読み込んでチェックトランザクション間の競合、があるかどうかledger
の前にledger
トランザクションを破棄することがある場合は、契約前に変更されています)。
両方のチェックに合格すると、commit
ステージに入ることができます。
提出する
peer
されblock
、ここで注目すべきは、(有効および無効)すべてのトランザクションは、すべてのミックスに追加することで、チェーンに追加。次に、有効なトランザクションに従って現在のledger
状態を変更します。
実際、Hyperledger Fabricのワークフローを説明する詳細な例がこのペーパーの付録にあります。これは本当に良心のペーパーです。それを理解していない学生は、トランザクションの例を見るためにペーパーに行くことをお勧めします〜