Peer channel-based event services ================================= General overview ---------------- Fabricの過去バージョンにおいて、ピアイベントサービスはイベントハブとして知られていました。このサービスは、チャネルに関わらず新しいブロックがピアの台帳に追加された際にイベントを送信し、イベンティングピア(すなわちイベントのために接続されているピア)を稼働させている組織のメンバのみがアクセスすることが出来ます。 v1.1から、イベントを提供する新しいサービスがあります。これらのサービスは全く異なる設計となっており、各チャネルをベースにしたイベント提供を行います。これは、ピアのデータへのきめ細かい制御を実現するために、ピアではなくチャネルのレベルでイベントの登録が実施されます。イベントを受信するリクエストは、そのピアの組織とは関係なく、(チャネル設定で定義されている通り)アイデンティティを元に受け付けられます。これはより良い信頼性と(接続上の問題やピアが既に動いているネットワークに参加するかに関係なく)届かなかったイベントを受信する方法も提供します。 Available services ------------------ * ``Deliver`` このサービスは、台帳にコミットされた全てのブロックを送信します。もしチェーンコードによって設定されたイベントであれば、ブロックの ``ChaincodeActionPayload`` 内に格納されています。 * ``DeliverWithPrivateData`` このサービスは、 ``Deliver`` サービスと同じデータに加えて、クライアントの組織がアクセスを許可されたコレクションのプライベートデータを含めて送信します。 * ``DeliverFiltered`` このサービスは、台帳にコミットされたブロックに関する情報の最小セットである "フィルターされた" ブロックを送信します。外部のクライアントがそのクライアントのトランザクションやトランザクションの状態に関する情報を主に使いたい、とピアの所有者が望むようなネットワークで使用することを目的としています。もしチェーンコードによって設定されたイベントであれば、フィルタードブロックの ``FilteredChaincodeAction`` に格納されます。 .. note:: チェーンコードイベントのペイロードはフィルタードブロックに含まれません。 How to register for events -------------------------- イベントの登録は、スタートとストップの位置、シークの挙動(利用可能になるまでブロックするか、利用できなければ失敗するか)を含むピアへの配信シーク情報メッセージを含むエンベロープを送信することで完了します。ヘルパー変数として ``SeekOldest`` と ``SeekNewest`` があり、台帳の一番古い(すなわち最初の)ブロックもしくは最新の(すなわち最後の)ブロックを示します。サービスに無制限に送信させるには、 ``SeekInfo`` メッセージのストップ位置を ``MAXINT64`` にする必要があります。 .. note:: もし相互TLSがピアで有効になっていた場合、TLS証明書のハッシュ値をエンベロープのチャネルヘッダーに設定しなければなりません。 デフォルトでイベントサービスは、イベントをリクエストするクライアントを許可するかどうかを決めるために、チャネルのReadersポリシーを使用します。 Overview of deliver response messages ------------------------------------- イベントサービスは、 ``DeliverResponse`` メッセージを送り返します。 各メッセージは以下を含みます: * ステータス -- HTTPステータスコード。 各サービスは、エラーが発生した場合、適切なエラーコードを返します。そうでない場合、 ``SeekInfo`` メッセージによってリクエストされた全情報の送信をサービスが完了すると ``200 - SUCCESS`` を返します。 * ブロック -- ``Deliver`` サービスによってだけ返します。 * ブロックとプライベートデータ -- ``DeliverWithPrivateData`` サービスによってだけ返します。 * フィルタードブロック -- ``DeliverFiltered`` サービスによってだけ返します。 フィルタードブロックは以下を含みます: * チャネルID * 番号(すなわちブロック番号) * フィルタードトランザクションの配列 * トランザクションID * タイプ (e.g. ``ENDORSER_TRANSACTION``, ``CONFIG``). * トランザクション検証コード * フィルタードトランザクションのアクション * フィルタードチェーンコードのアクションの配列 * トランザクションに対するチェーンコードイベント (ただしペイロードは消去) SDK event documentation ----------------------- イベントサービスに関しての詳細は、 `SDK documentation `_ を参照して下さい。 .. Licensed under Creative Commons Attribution 4.0 International License https://creativecommons.org/licenses/by/4.0/