2

Invoke API はトランザクションを受け入れ、すぐにトランザクション コードと ok ステータスを返します。

リクエストは後で処理され、チェーンコードによって実際に拒否されるか、何らかの理由で台帳の追加が失敗する可能性があります。

トランザクションがチェーンコードによって正常に処理され、結果が台帳に追加されたかどうかを確認する最善の方法は何ですか?

4

1 に答える 1

2

Fabric v0.6 の呼び出しは非同期プロセスであり、成功または失敗の兆候を得る唯一の方法は、組み込みのイベント フレームワークを利用することです。ファブリック プロトコル仕様のセクション 3.5 には、イベント関連の情報が含まれてい ます。このイベント フレームワークは、3 種類のイベントを生成します。

  1. ブロック イベント
  2. 拒否イベント
  3. チェーンコード イベント

成功したチェーンコードの実行を検出することに関心がある場合は、ブロック イベントを追跡する必要があります。Invoke トランザクションを送信したときに受け取った UUID を含む Block Event Message の発生を監視するだけです。チェーンコードの失敗を追跡したい場合は、拒否イベントも追跡する必要があります。繰り返しますが、UUID を含むメッセージを TxId として追跡します。拒否イベントの場合、ブロック イベントは作成されないことに注意してください。およびその逆。ファブリックの例には、コードの書き方を理解するために使用できるサンプル実装があります。https://github.com/hyperledger/fabric/tree/master/examples/events/block-listener

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

于 2016-12-23T11:45:52.803 に答える