Channels¶
Hyperledger Fabricの チャネル
は2つ以上の特定のネットワークメンバー間の通信のプライベート "サブネット" であり、プライベートで機密のトランザクションを実行するためのものです。
チャネルは、メンバー(組織)、メンバーごとのアンカーピア、共有台帳、チェーンコードアプリケーション、およびオーダリングサービスノードによって定義されます。
ネットワーク上の各トランザクションはチャネル上で実行され、各組織はそのチャネル上でトランザクションを行うために認証、認可されなければなりません。
チャネルに所属する各ピアにはメンバーシップサービスプロバイダ(MSP)によって付与される独自のアイデンティティを保持します。MSPは各ピアをチャネルのピアおよびサービスに対して認証します。
新しいチャネルを作成するために、クライアントSDKはコンフィギュレーションシステムチェーンコードを呼び出し、 アンカーピア
やメンバー(組織)などのプロパティを参照します。
この要求はチャネルポリシー、メンバー、およびアンカーピアに関する設定情報を保管するチャネル台帳の ジェネシスブロック
を作成します。
既存のチャネルに新しいメンバーを追加するときには、ジェネシスブロック、もしくは該当する場合はより新しいコンフィギュレーションブロックが新しいメンバーに共有されます。
注釈
コンフィギュレーショントランザクションのプロパティとプロトコル構造の詳細については、 Channel Configuration (configtx) セクションを参照してください。
チャネル上の各メンバーに対する リーダーピア
の選出は、どのピアがそのメンバーの代表としてオーダリングサービスと通信するかを決定することを意味します。
リーダーが指定されていない場合は、アルゴリズムを使用してリーダーを指定します。
合意形成サービス(オーダリングサービス)はトランザクションを順序付けし、それをブロック単位で各リーダーピアに配布します。
その後、各リーダーピアは ゴシップ
プロトコルを用いて、ブロックをメンバーピア、およびチャネル全体に配布します。
1つのアンカーピアは複数のチャネルに属することができるため、複数の台帳を管理できますが、台帳データはあるチャネルから別のチャネルに渡すことはできません。 チャネルによる台帳の分離は、コンフィギュレーションチェーンコード、アイデンティティメンバーシップサービス、およびゴシップデータ配布プロトコルによって定義され、実装されます。 トランザクション、台帳のステートおよびチャネルメンバーシップに関する情報を含むデータの配布は、チャネル上の検証可能なメンバーシップを持つピアに制限されます。 チャネルごとにピアと台帳データを分離することで、プライベートな機密のトランザクションを必要とするネットワークメンバーを同じブロックチェーンネットワーク上で、 ビジネスの競合相手や他の制限されたメンバーと共存させることができます。