So sieht meine Einstellung aus:
H2 und H4 befinden sich in getrennten Netzwerken. Sie haben private IPs und können nicht von außerhalb des Netzwerks geroutet werden. Wie mache ich diese beiden Systeme zu Peers, sodass sie im selben privaten Blockchain-Netzwerk arbeiten? Ich habe versucht, öffentliche IP in der enode URI
mit der addPeer()
Funktion zu verwenden, aber die Verbindung war nicht erfolgreich.
Bearbeiten:
Wie @Badr vorgeschlagen hat, --nat
mit extip
funktioniert, aber dies kann nicht zum Verbinden zweier Systeme mit derselben öffentlichen IP verwendet werden, dh die öffentliche IP kann nicht in zwei private IPs übersetzt werden. Ich habe versucht, eine andere Portnummer zu verwenden, aber die Verbindung war nicht erfolgreich. Gibt es dafür eine Lösung?
Ethereum-Clients verwenden einen Listener-Port (TCP) und einen Discovery-Port (UDP), beide standardmäßig auf 30303.
Welche TCP- und UDP-Ports sind erforderlich, um einen Ethereum-Client auszuführen?
Verwenden Sie als ersten Versuch die Option
--nat value NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options
als zweite Wahl: Ich denke, Sie sollten eine NAT-Umleitung auf Router-Ebene vornehmen. Sie müssen die Ports (Standard) 30303 und 8545 (RPC) an die Hx-Maschinen weiterleiten
auf R1
128.195.4.119:30303=>10.0.1.3:30303
128.195.4.119:8545=>10.0.1.3:8545
auf R2
128.143.7.21:30303 =>192.168.1.1:30303
128.143.7.21:8545=>192.168.1.1:8545
Verwenden Sie dann einfach die öffentliche Adresse, wenn Sie Peers zu den Ethereum-Clients hinzufügen, z. B. enode://*******:128.143.7.21:30303
Zusätzliche Informationen im offiziellen Dokument , das wir gefunden haben:
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.
ENODE: //6F8A80D14311C39F35F516FA664DEAAAAA13E85B2F7493F37F6144D86991EC012937307647BD3B9A82ABE29774E1407241D59BBBBBB39333131407241D5947BBBBBBB39393131407241D5947BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAGEGEGEGEGEGENGEGELUNG:
Ziehen Sie in diesem Fall in Betracht, auch den Port 30301 weiterzuleiten.
--nat
mit extip
funktioniert, aber dies kann nicht verwendet werden, um zwei Systeme mit derselben öffentlichen IP zu verbinden. Ich habe versucht, eine andere Portnummer zu verwenden, aber die Verbindung war nicht erfolgreich. Gibt es dafür eine Lösung?Wie haben Sie den H5-Knoten erstellt? Insbesondere sollten Sie darauf achten, das Ethereum nicht massenhaft zu kopieren. Näher an der Sache:
nodekey
Datei identifiziert Ihren Knoten eindeutig.Ein Test aus H2:
nodekey
Datei löschenaddPeer(H5)
Badr Bellaj
Galahad
Badr Bellaj
Badr Bellaj
Galahad
Badr Bellaj
Galahad
Badr Bellaj
Badr Bellaj