Wie gehen Peer-to-Peer-Netzwerke der Welt mit UDP-Punching um?

843
Andrew Arrow

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

dh erhält der durchschnittliche Bitcoin-Enthusiasten, der das Programm auf seinem Arbeitscomputer installiert, eine wirklich zugängliche TCP-IP-Schnittstelle und einen Port, auf den andere Personen zugreifen können? Oder fast immer müssen Sie einen Router so konfigurieren, dass Port 8333 an diesen Computer gesendet wird. Dieselbe Frage für Heimcomputer, da sie heutzutage auch über NAT-Systeme verfügen.

4

1 Antwort auf die Frage

3
harrymc

Cryptocurrency-Produkte verwenden die folgenden TCP-Ports (nicht UDP):

  • Bitcoin: 8333
  • Bitcoin Testnet: 18333
  • Litecoin: 9333
  • Gedankenstrich: 9999
  • Dogecoin: 22556
  • Ethereum: 30303

Dieser Port wird nur für vollständige Knoten verwendet, die Validierungen von Transaktionen und Blöcken für Internet-Clients durchführen. Sie sind jedoch nicht für die Nicht-Validierung von Lightweight-Clients erforderlich.

Vollknoten sind definiert als:

full node ist ein Programm, das Transaktionen und Blöcke vollständig überprüft. Fast alle Vollknoten unterstützen das Netzwerk auch, indem sie Transaktionen und Blöcke von anderen Vollknoten akzeptieren, diese Transaktionen und Blöcke überprüfen und sie dann an weitere Vollknoten weiterleiten.

Die meisten Vollknoten bedienen auch leichtgewichtige Clients, indem sie ihnen erlauben, ihre Transaktionen an das Netzwerk zu übermitteln, und indem sie sie benachrichtigen, wenn eine Transaktion ihren Geldbeutel betrifft. Wenn nicht genügend Knoten diese Funktion ausführen, können Clients keine Verbindung über das Peer-to-Peer-Netzwerk herstellen. Stattdessen müssen sie zentralisierte Dienste verwenden.

Beim Start von Bitcoin Core werden 8 ausgehende Verbindungen zu anderen vollständigen Knoten hergestellt, sodass die neuesten Blöcke und Transaktionen heruntergeladen werden können. Wenn Sie nur Ihren vollständigen Knoten als Geldbörse verwenden möchten, benötigen Sie nicht mehr als diese acht Verbindungen. Wenn Sie jedoch schlanke Clients und andere vollständige Knoten im Netzwerk unterstützen möchten, müssen Sie eingehende Verbindungen zulassen.

Einige Produkte verwenden Universal Plug and Play (UPnP), um diesen Port im Router automatisch zu öffnen. Die meisten (aber nicht alle) Router tun es unterstützen, sonst eine manuelle Konfiguration des Routers erforderlich, um den Hafen und zu öffnen Port Forward es auf dem Computer, auf dem der Knoten ausgeführt wird .

Der Port kann für die meisten Produkte in der Regel auch als andere Nummer konfiguriert werden. Dies erfordert die Verwendung von Port Forwarding auf dem Router, um den bekannten externen Port an den lokal konfigurierten Port auf dem Computer zu übertragen.

Verweise :

danke, großartige antwort, ich habe auch dieses https://dirkmittler.homeip.net/blog/archives/3340 nach der suche nach uPnP gefunden. UPnP unterscheidet sich also grundlegend von UDP Hole Punching? Andrew Arrow vor 6 Jahren 1
Sie sind nicht dasselbe. Einen guten Artikel finden Sie [hier] (https://en.wikipedia.org/wiki/UDP_hole_punching). Die meisten dieser P2P-Programme versuchen auch, die geografischen Standorte ihrer Quellen zu variieren, um geschlossene Kreise zu vermeiden. Stellen Sie sich 9 volle Bitcoin-Knoten vor, die jeweils eine Verbindung zu den 8 anderen herstellen und daher nicht in der Lage sind, sich mit dem Rest der Welt zu verbinden und nichts zu bestätigen. harrymc vor 6 Jahren 0
Okay, dann wird dieses Dokument http://www.brynosaurus.com/pub/net/p2pnat/ oft als Funktionsweise einiger Netzwerke zitiert, aber uPnP wird nicht erwähnt. Ist das Papier dann nur Theorie und UPnP ist Realität? Andrew Arrow vor 6 Jahren 0
Dies ist ein gutes Dokument, das mögliche Netzwerkkonfigurationen behandelt. Sie befasst sich nicht mit dem technischen Teil der Verbindungsherstellung über Router-Ports, sondern mit höheren Ebenen. Der Lochungsabschnitt ist korrekt und es gibt P2P-Programme, die es über UDP verwenden, meistens einige Torrent-Clients, jedoch keine Cryptowährungs-Produkte. Cryptocurrency-Produkte verwenden TCP, und das Lochen von Löchern darüber ist nicht zuverlässig, während diese Produkte sehr zuverlässig sein müssen. [TCP] (https://en.wikipedia.org/wiki/Transmission_Control_Protocol) ist besser geeignet, weil es zuverlässig, geordnet und auf Fehler überprüft wird. harrymc vor 6 Jahren 0