2016-09-26 15 views
2

Invoke APIはトランザクションを受け入れ、トランザクションコードとokステータスを直ちに返します。取引状況を確認する最良の方法は何ですか?

要求はその後処理され、実際にはチェーンコードによって拒否されるか、または何らかの理由で元帳の追加が失敗する可能性があります。

取引がチェーンコードによって正常に処理され、結果が元帳に追加されたかどうかを確認する最良の方法は何ですか?

答えて

2

ファブリックv0.6の呼び出しは非同期プロセスであり、成功または失敗の兆候を得る唯一の方法は、組み込みのイベントフレームワークの助けを借りて行われます。 Section 3.5 of Fabric Protocol Specification contains Event related information このイベントフレームワークは3種類のイベントを生成します。

  1. ブロックイベント
  2. 拒絶イベント
  3. Chaincodeイベント

あなたが成功chaincodeの実行を検出することに興味がある場合は、ブロックイベントのために追跡する必要があります。 Invokeトランザクションをサブミットしたときに受け取ったUUIDを含むBlock Event Messageの発生を監視するだけで済みます。 チェーンコードの失敗を追跡したい場合は、拒否イベントも追跡する必要があります。再度、UUIDを含むメッセージをTxIdとして追跡します。 拒否イベントが発生した場合、ブロックイベントは作成されません。およびその逆。 ファブリックの例には、コードの記述方法のアイデアを示すためのサンプル実装があります。 https://github.com/hyperledger/fabric/tree/master/examples/events/block-listener

Hyperledger Fabric v1.x.x以降では、アーキテクチャがまったく異なることにご注意ください。上記の答えはHyperledger Fabric v0.6の文脈で尋ねられた質問に与えられました

関連する問題