Ausführen von Swarm auf AWS

Nachdem ich erfolgreich ein POA-Netzwerk auf Azure eingerichtet hatte (Hurra für die 1-Klick-Bereitstellung), wollte ich einen privaten Swarm-Cluster einrichten (gut, 1 Knoten reicht zum Testen).

Ich habe eine AWS EC2-Instanz genommen, um ein wenig bei meinen kostenlosen Azure-Credits (Hue) zu sparen.

Ich habe die folgenden Ports für eingehenden und ausgehenden Datenverkehr geöffnet:

  • HTTP (8080) TCP
  • HTTPS (443) TCP
  • SSH (22) TCP
  • BZZ: (8500) TCP
  • BZZ: (8500)UDP

Ich habe auch den Port geöffnet, um die Instanz zu pingen, und kann die öffentliche IP erfolgreich pingen.

Dies ist der Befehl, den ich verwende, um die Instanz zu starten. Bitte beachten Sie, dass ich versucht habe, bzzapi auf den Standardwert 0.0.0.0:8500 und die öffentliche IP zu setzen.

ubuntu@ip-172-31-35-99:~$ 
swarm --bzzaccount b84c12c07f155d4ca0e1d0178367f426943eb056  --datadir swarm --keystore swarm/keystore --bzzapi http://18.221.205.37:8500 --ens-api "" --bzzport 8500 -corsdomain "*"

Ich kann keine Verbindung zum Endpunkt herstellen

Ich kann die Instanz jedoch pingen:

ping 18.221.205.37

Pinging 18.221.205.37 with 32 bytes of data:
Reply from 18.221.205.37: bytes=32 time=108ms TTL=41
Reply from 18.221.205.37: bytes=32 time=109ms TTL=41
Reply from 18.221.205.37: bytes=32 time=108ms TTL=41
Reply from 18.221.205.37: bytes=32 time=108ms TTL=41

Irgendwelche Ideen? Ich habe das Gefühl, dass es diesem Problem ähnlich ist: Verbindungsfehler – Es konnte keine Verbindung zum Ethereum-Knoten auf AWS unter http://xx.xxx.xx.xxx:8545 hergestellt werden

Antworten (1)

Anscheinend müssen Sie also zwei Einstellungen vornehmen.

Du musst einstellen

--bzzapi an die öffentliche AWS-IP

Und

--listenaddr auf 0.0.0.0 anstelle der Standardeinstellung 127.0.0.1

Jetzt gehts !

Soll der bzzapiWert also auf eine andere Maschine zeigen? Ich kann das anscheinend nicht zum Laufen bringen, ich laufe im Docker, kann aber nicht vom Host-Computer in Port 8500 einrollen.
Ich spezifiziere --httpaddr 0.0.0.0noch dabei lsof -i TCPauf der Maschine zeigt mir dies: swarm 195 root 31u IPv6 3641828 0t0 TCP *:8500 (LISTEN). Es sieht also so aus, als wäre es an eine IPv6-Adresse anstelle des Haupt-IPv4-Adapters gebunden, sehr seltsam.
Das bzzapi ist der Reverse-HTTP-Proxy zum Verfügbarmachen von RPC-Methoden. Hier senden Sie Ihre Anfragen. Der bzzport ist der von Ihnen festgelegte externe Port. Hier ist ein Beispiel, das wir auf aws in der Produktion verwenden (wenn auch eine Kubernetes-Version davon für sichere Schlüssel).
"Hier ist ein Beispiel", was meinst du? Ich denke auch, dass in der neuesten Version --listenaddrnicht einmal mehr ein Argument vorhanden ist :(