ノードの発見

ノードが起動されると、ノードはNEMネットワークに接続し、他のノードと情報の共有を開始します。 最初、ノードはよく知られているノードのみを認識しています。 これらのノード はサブセクション6.2:ローカル・トラスト・バリュー で説明されている事前認証されたノードと同じです。

時間の経過とともに、ノードはネットワーク内のより多くのノードを認識します。 これには、典型的には アナウンスメントまたはリフレッシュを介した2つの方法が使われます。

アナウンスメント

ノードは、定期的に現在のパートナーノードに自分自身をアナウンスし、 要求内にローカル経験情報を含めます。 ノードがパートナーに未知である場合、パートナーは これをアクティブとしてマークし、ノードの経験を更新します。 ノードがパートナーに知られている場合、 パートナーはノードの経験を更新するだけで、ステータスは変更しません。

リフレッシュ

ノードは定期的に、現在のパートナーに自己の状態とネットワークの状態の最新の情報を提供するよう依頼します。

最初に、ノードは、遠隔ノードに関する更新情報を要求します。成功した場合、 ローカルノードはリモートのエンドポイント(動的IPをサポートするために必要)とメタデータを更新します。 次のいずれかが発生すると、この手順は失敗します:

  • リモートノードが、異なるノードからの有効な要求を返す。
  • 遠隔ノードがローカルノードと互換性がない(例えば、遠隔ノードはテストネットだが、ローカルノードはメインネット)

成功すると、遠隔ノードは、現在のすべてのパートナーノードのリストを提供するように求められます。 邪悪なノードが善良なノードに関する不正確な情報を提供し、善良ノードがブラックリストに登録されるのを防ぐために、 ローカルノードは報告された各パートナーノードに直接接続します。 ノードのメタデータは、そのノード自体によって提供されるメタデータによってのみ更新されることに注意することが重要です。

最適化として、ブラックリストに載っているノードはリフレッシュされません。ノードは一時的に 致命的なエラーを返すか、ローカルノードが接続できない場合ブラックリストに登録されます。定期的に ブラックリストに載っているノードはブラックリストから削除され、再度リフレッシュ動作に参加することが許可されます。 オリジナルのブラックリストに登録された理由が一時的でないエラーのためであった場合、ノードは再びブラックリストに登録されます。

results matching ""

    No results matching ""