Hyperledgerファブリックの「クエリ」トランザクションフローを理解しようとしています。私はFabricの「書き込み」フローが十分に文書化されていることを理解しています。しかし、読取り/照会のトランザクションが関係している場合、そのことはあまり明確ではありません。Hyperledgerファブリックのトランザクションフローの読み取り(クエリ)
これは私がこれまで理解しているものです:
- SDKを使用してクライアントがchaincodeを照会するため、取引の提案を準備します。
- プロポーザルはコミッティングピアを介してEndorsingピアに送信され、エンドでトランザクションを検証し、シミュレートします。すべてが成功したと仮定すると、支持している同僚は、その提案に対する支持を返す。各裏書には、とりわけ、のリードセットが含まれています。これは単なるクエリトランザクションなので、書き込みセットは、それぞれの預託の内側に追加されません。私の理解はここで正しいのですか?
- クライアントは必要な裏書を受け取ると、注文者に送信されるトランザクションを準備します。
これ以降のフローはわかりません。書き込みトランザクションが理解できます:いくつかのチェックを実行した後の注文はブロックを作成し、ブロックを対応するチャネルに接続されているすべてのピアに伝播します。すべての同僚は、ブロック内のすべてのトランザクションの検証を実行した後に元帳にブロックを追加します。これは本質的に元帳を更新します。
しかし、読み取りトランザクションはどうですか?発注者は、読取り取引を受けて何を返すのですか?これからの流れは?
何か助けや指針が高く評価されます。
ありがとうございます。
Gari for the pointers私はすでにNode SDK APIを調べて、他のブロックチェーンプラットフォームでも同様のコンセプトに賛同しているので、あなたが言ったようなものを考えました。しかし、混乱していたのは、用語集のページで「トランザクションは呼び出しまたはインスタンス化操作です。呼び出しは、元帳からデータを読み書きするための要求です」という公式のドキュメントでした。トランザクションは、発注者は、注文が読取りデータ要求で取引を受け取ることができるとき?決してない場合は、用語集に修正が必要な場合があります。ありがとう – Ripul
Daveからの更新のために感謝Gari。これは今や理にかなっています。私はドキュメントが更新されているのを見ました。うまくいけば、これは誰にとってもそれを明確にします。 – Ripul
また、nodejs sdk(channel.queryByChaincode)またはdocker cli(fabcar exmapleまたは最初のn/wの一部として利用可能)のいずれかを介してクエリトランザクション(読み取りのみ、チェーンコード機能の書き込みなし)常にチェーン上に新しいブロックを生成します。読んだだけの場合は、なぜ新しいブロックを作成するのですか? –