イーサリアムブートノードの概要
最終編集者: @HiroyukiNaito(opens in a new tab), 2023年8月15日
新しいノードがイーサリアムのネットワークに参加する際には、既存のノードに接続して、新しいピアを検出しなければなりません。 イーサリアムネットワークへのエントリポイントとなるこれらのノードをブートノードと呼びます。 クライアントは通常、ブートノードのリストをハードコードしています。 これらのブートノードは通常、イーサリアム・ファウンデーションのDevopsチームまたはクライアントチームによって実行されています。 ブートノードは、静的ノードとは異なるという点に注意してください。 静的ノードは何度も呼び出されますが、ブートノードは、接続するピアが十分にない場合や、ノードが自力で新しい接続をする必要がある場合にのみ呼び出されます。
ブートノードへの接続
クライアントには、ほとんどブートノードのリストが組み込まれていますが、自分のブートノードを実行したり、クライアントにハードコードされているリストに載っていないブートノードも使用することができます。 そのような場合は、クライアントの起動時に、以下のように指定します。これはGethの例です。各クライアントのドキュメントを確認してください 。
1geth --bootnodes "enode://<node ID>@<IP address>:<port>"
ブートノードの起動
ブートノードとは、NAT(ネットワークアドレス変換(opens in a new tab))の背後にないフルノードのことを指します。 公開されているフルノードは、すべてブートノードとして動作します。
ノードを起動すると、enodeがログに記録されます。これは、他のユーザーがあなたのノードに接続するための公開識別子です。
通常、enodeは再起動するたびに再び生成されます。ブートノードで永続的なenodeを生成する方法については、クライアントのドキュメントを必ず参照してください。
ブートノードの性能を高めるには、接続可能なピアの最大数を増やすことをお勧めします。 多数のピアでブートノードを実行すると、必要な帯域幅が大幅に増加することに注意してください。
使用可能なブートノード
go-ethereum内にある組み込みブートノードのリストは、こちら(opens in a new tab)で確認できます。 これらのブートノードは、イーサリアム・ファウンデーションとgo-ethereumチームによってメンテナンスされています。
ボランティアによって管理されている、他のブートノードのリストもあります。 少なくとも1つの公式ブートノードを必ず含めるようにしてください。公式ブートノードを含めないと、イクリプス攻撃を受ける可能性があります。