web-dev-qa-db-ja.com

世界のピアツーピアネットワークはUDPホールパンチングをどのように処理しますか?

ニュースにビットコインとイーサリアムが含まれているので、私はピアツーピアネットワークをさらに調査し始めました。私の質問は、完全なビットコインまたはイーサノードを実行しているほとんどの人は、パブリックインターネットにポート8333を開く必要がありますか?または、UDPホールパンチングのようなものを使用して、この余分な手順なしで機能させることは可能ですか。

つまり、仕事用のコンピューターにプログラムをインストールする平均的なビットコイン愛好家は、実際にアクセスできるTCP ipと他の人がアクセスできるポートを取得しますか?または、ほとんどの場合、ポート8333が行くと言うようにルーターを構成する必要があります最近はNATシステムもあるので、家庭用コンピュータについても同じ質問です。

4
Andrew Arrow

暗号通貨製品は次のTCPポート(UDPではない)を使用します:

  • ビットコイン:8333
  • ビットコインテストネット:18333
  • ライトコイン:9333
  • ダッシュ:9999
  • ドージコイン:22556
  • イーサリアム:30303

このポートは、インターネットクライアントのトランザクションとブロックの検証を行うフルノードにのみ使用されますが、検証を行わない軽量クライアントには必要ありません。

フルノードは 定義済み 次のようになります。

フルノードは、トランザクションとブロックを完全に検証するプログラムです。ほとんどすべてのフルノードは、他のフルノードからトランザクションとブロックを受け入れ、それらのトランザクションとブロックを検証してから、それらをさらにフルノードに中継することによってネットワークを支援します。

ほとんどのフルノードは、トランザクションをネットワークに送信できるようにし、トランザクションがウォレットに影響を与えたときに通知することで、軽量クライアントにもサービスを提供します。十分な数のノードがこの機能を実行しない場合、クライアントはピアツーピアネットワークを介して接続できなくなり、代わりに集中型サービスを使用する必要があります。

ビットコインコアが起動すると、他のフルノードへの8つのアウトバウンド接続を確立して、最新のブロックとトランザクションをダウンロードできるようにします。フルノードをウォレットとして使用するだけの場合は、これらの8つ以上の接続は必要ありませんが、ネットワーク上の軽量クライアントやその他のフルノードをサポートする場合は、インバウンド接続を許可する必要があります。

一部の製品では、 ユニバーサルプラグアンドプレイ(uPnP) を使用して、ルーターのこのポートを自動的に開きます。ほとんどの(すべてではありませんが)ルーターはそれをサポートします。そうでない場合は、ポートを開き、ノードが実行されているコンピューターに ポート転送 ルーターを手動で構成する必要があります。

ポートは通常、ローカル構成によってほとんどの製品の別の番号として構成することもできます。これには、ルーターで Port Forwarding を使用して、既知の外部ポートをコンピューターでローカルに構成されたポートに送信する必要があります。

参照:

3
harrymc