Wie gehen die Peer-to-Peer-Netzwerke der Welt mit UDP-Hole-Punch um?

4

Mit Bitcoin und Ethereum in den Nachrichten beschäftigte ich mich mehr mit Peer-to-Peer-Netzwerken. Meine Frage ist, müssen die meisten Leute, die volle Bitcoin- oder Ether-Knoten betreiben, Port 8333 für das öffentliche Internet öffnen? Oder ist es möglich, so etwas wie UDP Hole Punching zu verwenden, damit sie ohne diesen zusätzlichen Schritt funktionieren.

erhält der durchschnittliche Bitcoin-Enthusiast, der das Programm auf seinem Arbeitscomputer installiert, eine wirklich zugängliche TCP-IP und einen Port, auf den andere zugreifen können? Oder es muss fast immer ein Router konfiguriert werden, der besagt, dass Port 8333 an diesen bestimmten Computer gesendet wird. Dieselbe Frage für Heimcomputer, da diese heutzutage auch über NAT-Systeme verfügen.

Andrew Arrow
quelle

Antworten:

3

Kryptowährungsprodukte verwenden die folgenden TCP-Ports (nicht UDP):

  • Bitcoin: 8333
  • Bitcoin Testnet: 18333
  • Litecoin: 9333
  • Bindestrich: 9999
  • Hundemünze: 22556
  • Ethereum: 30303

Dieser Port wird nur für vollständige Knoten verwendet, die Überprüfungen durchführen von Transaktionen und Sperren für Internet-Kunden, Sie sind jedoch nicht für nicht validierende Lightweight-Clients erforderlich.

Volle Knoten sind definiert wie:

full node ist ein Programm, das Transaktionen und Blöcke vollständig validiert.   Fast alle Vollknoten unterstützen das Netzwerk auch, indem sie Transaktionen akzeptieren   und Blöcke von anderen vollständigen Knoten, die diese Transaktionen validieren und   Blöcke, und leiten Sie sie dann an weitere volle Knoten weiter.

Die meisten Vollknoten bedienen auch Lightweight-Clients, indem sie dies zulassen   Übermitteln Sie ihre Transaktionen an das Netzwerk und benachrichtigen Sie sie, wann   Eine Transaktion wirkt sich auf ihren Geldbeutel aus. Wenn nicht genug Knoten dies ausführen   Funktion können Clients keine Verbindung über Peer-to-Peer herstellen   Netzwerk: Stattdessen müssen sie zentralisierte Dienste verwenden.

Beim Start von Bitcoin Core werden 8 ausgehende Verbindungen zu hergestellt   andere volle Knoten, damit es die neuesten Blöcke und herunterladen kann   Transaktionen. Wenn Sie nur Ihren vollständigen Knoten als Brieftasche verwenden möchten, können Sie   Benötigen Sie nicht mehr als diese 8 Verbindungen - aber Wenn Sie Lightweight-Clients und andere vollständige Knoten im Netzwerk unterstützen möchten, müssen Sie eingehende Verbindungen zulassen.

Einige Produkte verwenden Universelles Plug & Play (UPnP) um diesen Port im Router automatisch zu öffnen. Die meisten (aber nicht alle) Router unterstützen dies, ansonsten manuelle Konfiguration des Routers ist erforderlich, um den Port und zu öffnen Anschlussweiterleitung es an den Computer, auf dem der Knoten ausgeführt wird.

Der Port kann normalerweise auch als eine andere Nummer für die meisten konfiguriert werden Produkte nach lokaler Konfiguration. Dies erfordert die Verwendung von Port-Weiterleitung auf dem Router um den bekannten externen Port auf den lokal konfigurierten zu übertragen auf dem Computer.

Verweise :

harrymc
quelle
1
Danke, tolle Antwort, das habe ich auch gefunden dirkmittler.homeip.net/blog/archives/3340 nach der Suche nach UPnP. UPnP ist also völlig anders als UDP Hole Punching, oder?
Andrew Arrow
Sie sind nicht dasselbe. Ein guter Artikel ist zu finden Hier . Die meisten P2P-Programme versuchen auch, die geografischen Standorte ihrer Quellen zu variieren, um geschlossene Kreise zu vermeiden - stellen Sie sich 9 Bitcoin-Vollknoten vor, die jeweils mit den 8 anderen verbunden sind und daher keine Verbindung zum Rest der Welt herstellen und nichts validieren können.
harrymc
Okay, dann dieses Papier brynosaurus.com/pub/net/p2pnat wird oft als die Funktionsweise einiger Netzwerke bezeichnet, erwähnt aber uPnP überhaupt nicht. Ist dieses Papier nur Theorie und UPnP ist Realität?
Andrew Arrow
Dies ist ein gutes Dokument, das sich mit möglichen Netzwerkkonfigurationen befasst. Es geht nicht um den technischen Teil, wie die Verbindungen über Router-Ports hergestellt werden, sondern um höhere Ebenen. Der Abschnitt zum Lochen ist korrekt und es gibt P2P-Programme, die es über UDP verwenden, hauptsächlich einige Torrent-Clients, aber keine Kryptowährungsprodukte. Kryptowährungsprodukte verwenden TCP, und das Lochen darüber ist nicht zuverlässig, während diese Produkte sehr zuverlässig sein müssen. TCP ist besser geeignet, weil es zuverlässig, geordnet und fehlergeprüft ist.
harrymc