web-dev-qa-db-ja.com

HyperledgerファブリックGOSSIP_BOOTSTRAP&GOSSIP_EXTERNALENDPOINTS

docker構成ファイルを調べたところ、以下に示すように、ピア環境で2つのパラメーターが見つかりました。

environment:
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP 

2つの変数CORE_PEER_GOSSIP_BOOTSTRAPCORE_PEER_GOSSIP_EXTERNALENDPOINTが機能することを誰かが説明できますか?ピアの数が奇数の場合にどのように構成できるか。

詳細な説明をいただければ幸いです。

8
Akshay Sood

ゴシップは、同じ組織内のピア間、または異なる組織内のピア間でのみ使用できます。常に特定のチャネルにスコープされます。

1)単一の組織内のピア間の通信

  • 1つのピアがリーダーになり、注文サービスに接続して、組織内の他のピアにブロックを配信する場合があります

  • ピアは、組織内の他のピアに接続して、欠落しているブロックを取得できます

2)異なる組織のピア間のコミュニケーション

  • V1.2では、プライベートデータ機能を使用する場合、ゴシップを使用して、承認時に組織内の他のピアにプライベートデータを配布します。

  • ピアは、他の組織のピアから、すでにコミットされている欠落しているブロックを取得できます

  • ピアは、コミット時に他の組織のピアから欠落しているプラ​​イベートデータを取得する可能性があります

ゴシップが実際に機能するためには、他の組織のピアだけでなく、自身の組織のピアのエンドポイント情報を取得できる必要があります。

CORE_PEER_GOSSIP_BOOTSTRAPは、組織内のbootstrapゴシップに使用されます。ゴシップを使用している場合は、通常、組織内のすべてのピアを構成して、ピアの初期セットを指すようにします。 for bootstrap(スペースで区切られたピアのリストを指定できます)。コース外のピアは、異なるピアからもbootstrapできますが、その場合は、すべてのピアにbootstrapパスがあることを確認する必要があります。組織内のピアは通常、内部エンドポイントで通信します(つまり、組織内のすべてのピアを公開する必要はありません)。ピアがbootstrapピアに接続すると、エンドポイント情報を渡し、ゴシップを使用して、組織内のすべてのピアに関する情報を組織内のピア間で配布します。

ピアが組織間で通信するには、ある種のbootstrap情報が必要です。最初の組織間bootstrap情報は、「アンカーピア」を介して提供されます。 「チャネル構成の設定。これにより、チャネルに参加しているピアは、チャネル上の他のピアも検出できます。ただし、最初は明らかに、組織内のピアは、その組織のアンカーピアについてのみ認識します。他のピアを作成する場合他の組織に知られている組織内のピアの場合は、CORE_PEER_GOSSIP_EXTERNALENDPOINTプロパティを設定する必要があります。これが設定されていない場合、ピアに関するエンドポイント情報は他の組織内のピアにブロードキャストされません。事実-そのピアは、それ自体の組織にのみ知られています。

20
Gari Singh