Soy nuevo en ethereum/parity y trato de seguir esta demostración de configuración de PoA como parte de un proyecto más grande.
Lo hice localmente en mi computadora portátil, accediendo a los recursos a través de localhost
. Ahora estoy tratando de configurar dos nodos separados en dos máquinas virtuales azules y hacer que interactúen a través de Internet.
Ahora mi primera pregunta es: ¿es sensato hacer esto en primer lugar? ¿Quizás no entendí la arquitectura y estos nodos no deberían estar expuestos a Internet?
Si esto funciona, tengo el siguiente problema: incluso un solo nodo no se inicia correctamente.
Uso el contenedor docker ethcore/parity:stable , este es mi node0.toml
archivo
[parity]
chain = "demo-spec.json"
base_path = "/tmp/parity0"
[network]
port = 30300
[rpc]
interface = "172.17.0.2"
hosts = ["172.17.0.2", "azure-vm-public-ip", "10.0.0.4"]
port = 8540
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]
[ui]
interface = "172.17.0.2"
port = 8180
[dapps]
cors = "all"
hosts = ["azure-vm-public-ip", "10.0.0.4", "172.17.0.2"]
interface = "172.17.0.2"
port = 8080
Agregué hosts
y interface
s al archivo original de la demostración (enlace arriba). Aquí azure-vm-public-ip
está la IP que uso para conectarme a la máquina virtual desde mi computadora portátil. 10.0.0.4
es la IP local de vm desde $ ifconfig
y 172.17.0.2
es la IP que se ve desde dentro del contenedor docker si ejecuta $ifconfig
.
demo-spec.json
es exactamente igual que en la demo.
Ejecuto docker a través de este comando, exponiendo todos los puertos:
sudo docker run -ti --rm -p 30300:30300 -p 8080:8080 -p 8180:8180 -p 8540:8540 -v ~/demo-spec.json:/build/demo-spec.json -v ~/node0.toml:/build/node0.toml 65de5e38cf4b --config node0.toml
después de que se devuelve la URL del nodo público de inicio: enode://...@172.17.0.2:30300
que tiene la IP de la ventana acoplable, no la IP de la máquina y si intento conectarme a http://azure-public-ip:8180/ desde la computadora portátil obtengo
URL BLOCKED
YOU ARE NOT ALLOWED TO ACCESS TRUSTED SIGNER USING THIS URL.
Use: http://172.17.0.2:8180
y Blocked connection to Signer API from untrusted origin
está escrito en el registro de paridad.
Si realizo una segunda conexión a la máquina virtual y ejecuto $ curl http://172.17.0.2:8180
un html adecuado, se $ curl http://localhost:8180
devuelve el mismo error.
Si cambio la interfaz a 10.0.0.4
o azure-public-ip
, la paridad no comienza con el siguiente error:RPC io error: Cannot assign requested address (os error 99)
Parece que hay una configuración incorrecta de la red, pero no puedo averiguar dónde está. Por favor avise.
Debe asignar la IP externa/pública de su VM a su interfaz interna.
Puede usar curl ifconfig.co
o curl -4 http://l2.io/ip
para obtener la IP externa de su máquina y configurarla para su sesiónsudo ifconfig eth0:0 $(curl ifconfig.co) up
asegúrese de que usted no tiene --ui-no-validation
opción. Aquí hay una referencia https://github.com/paritytech/parity/issues/5522
Por lo que puedo decir, estás usando dos espacios de ip internos. No hablarán entre ellos a menos que estén en la misma red. Debe vincular la IP pública o reemplazar la interfaz con la interfaz star.star.star.star que se vinculará a todas las IP en el host.
Puede probar una vez que reinicie probando telnet al puerto. Además, donde tiene azure-public-ip, use la ip real frente al nombre de host.
xaxa