Welche TCP- und UDP-Ports sind erforderlich, um einen Ethereum-Client auszuführen?

Die Geth-CLI-Optionen schlagen vor, dass der Client standardmäßig TCP-Port 30303 überwacht. Diese Seite schlägt zusätzlich vor, dass UDP-Port 30301 für die Knotenerkennung verwendet wird.

Ist das alles, was erforderlich ist, oder werden noch zusätzliche Ports verwendet?

Antworten (1)

Ethereum-Clients verwenden einen Listener-Port (TCP) und einen Discovery-Port (UDP ), beide standardmäßig auf 30303 .

Wenn Sie JSON-RPC ausführen müssen, benötigen Sie auch den TCP - Port 8545 . Beachten Sie , dass der JSON-RPC-Port nicht für die Außenwelt geöffnet werden sollte, da Sie von dort aus Administratorvorgänge ausführen können.

Die Standardports aller Clients können angepasst werden.

Wenn Sie möchten, dass geth/eth UPnP findet, sollten Sie dies auch auf Ihrem Router aktivieren. Das ist nur so, dass es auf einem Port lauschen kann, nicht notwendig, wenn Sie sie bereits manuell geöffnet/geroutet haben.

Über die von Ihnen verlinkte Wiki-Seite wird eigentlich nur ein Beispiel berichtet:

Unterscheiden sich TCP- und UDP-Port (Discovery) , wird der UDP-Port als Abfrageparameter discport angegeben .

Im folgenden Beispiel beschreibt die Knoten-URL einen Knoten mit der IP-Adresse 10.3.58.6, dem TCP-Listening-Port 30303 und dem UDP-Discovery-Port 30301.

Ich denke, dieses Missverständnis breitet sich auch wegen des Verhaltens des Bootnode -Dienstprogramms aus. Tatsächlich verwendet es 30301 als Standard-UDP-Discovery-Port.

Hinweis: geth verwendet IPv6 als Priorität, wenn es verfügbar ist, was zu Problemen führen kann, wenn Sie davon ausgehen, dass es die IPv4-Adresse abhört.

Stellen Sie sicher, dass Sie auch ausgehende Verbindungen über TCP/30303 zulassen.
Ich habe beide Ports geöffnet und kann dennoch nicht synchronisieren. Anscheinend versucht Geth, sich über andere TCP-Ports mit Peers zu verbinden. Siehe ethereum.stackexchange.com/questions/26652/…
Und stellen Sie sicher, dass Sie den eingehenden JSON-RPC (8545) etherscan.io/address/…
Muss also TCP 30303 für INCOMMING-Verbindungen geöffnet sein, wenn einfach der Geth-Client ausgeführt wird? Ich möchte nur den aktuellsten Blockchain-Zustand / Daten auf meinem lokalen System haben, ich habe kein Interesse am Mining. Muss ich 30303 trotzdem für eingehenden Verkehr öffnen?