Ejecutando Swarm en AWS

Después de configurar con éxito una red POA en Azure (hurra por la implementación de 1 clic), quería configurar un clúster Swarm privado (bueno, 1 nodo servirá para la prueba).

Tomé una instancia de AWS EC2 para ahorrar un poco en mis créditos gratuitos de Azure (hue).

Tengo los siguientes puertos abiertos para el tráfico de ENTRADA y SALIDA:

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

También abrí el puerto para hacer ping a la instancia y puedo hacer ping con éxito a la IP pública.

Este es el comando que estoy usando para iniciar la instancia. Tenga en cuenta que he intentado configurar bzzapi de forma predeterminada, 0.0.0.0:8500 y la IP pública.

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 "*"

No puedo conectarme al punto final

Sin embargo, puedo hacer ping a la instancia:

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

¿Algunas ideas? Siento que es similar a este problema: Error de conexión: no se pudo conectar al nodo ethereum en AWS en http://xx.xxx.xx.xxx:8545

Respuestas (1)

Así que aparentemente tienes que poner dos configuraciones.

tienes que configurar

--bzzapi a la IP pública de AWS

Y

--listenaddr a 0.0.0.0 en lugar del predeterminado 127.0.0.1

Ahora funciona !

Entonces, ¿se bzzapisupone que el valor apunta a una máquina diferente? Parece que no puedo hacer que esto funcione, estoy ejecutando en docker pero no puedo conectarme al puerto 8500 desde la máquina host.
Estoy especificando --httpaddr 0.0.0.0pero haciendo lsof -i TCPen la máquina me muestra esto: swarm 195 root 31u IPv6 3641828 0t0 TCP *:8500 (LISTEN). Entonces parece que se vincula a una dirección IPv6 en lugar del adaptador IPv4 principal, muy raro.
El bzzapi es el proxy http inverso para exponer métodos RPC. Aquí es donde usted envía sus solicitudes. el bzzport es el puerto externo que configuró. Aquí hay un ejemplo que usamos en aws en producción (aunque es una versión de kubernetes para claves seguras).
"Aquí hay un ejemplo", ¿a qué te refieres? También creo que en la última versión --listenaddrya ni siquiera es un argumento :(