Conexión de 2 nodos en diferentes máquinas en diferentes redes desde la terminal en ethereum

Conexión de 2 nodos en diferentes máquinas en diferentes redes desde la terminal en ethereum.

Tengo 3 nodos ejecutándose en mi máquina ubuntu, digamos A, les he asignado previamente una cantidad y pueden transferir esa cantidad entre sí usando direcciones de nodo.

Quiero transferir/comunicarme desde otra máquina, digamos B, que también ejecuta 3 nodos en ella. ¿Cómo pueden los nodos en la máquina A conectarse a los nodos en la máquina B? Quiero configurar una red privada entre A y B sin conectarme a la cadena de bloques principal para que A y B comiencen a comunicarse entre sí,

En el primer nodo estoy ejecutando esto:

geth --genesis /home/cgen.json --datadir '/home/jedi/Desktop/node1' --networkid 12588 --port 30305 --verbosity 0 console

y en la 2ª terminal:

geth --genesis /home/customgen.json --datadir '/home/jedi/Desktop/node1' --networkid 12345 --nodiscover --port 30311 --verbosity 0 console --bootnodes "enode://5675641adc6106447d9741c48ce382aca7becddd6da99881e8c98ef26f73bf4a63252fb‌​e5ec29ddec6960cb78c7d69d39c181c6ca83e38d39670be6742f76d94@1.39.47.145:30311" 

No estoy seguro de qué versión geth.

Está utilizando identificadores de red 12588y 12345, asegúrese de que coincidan.
intenté eso también, mi net.peercount es 0 después de que se ejecuta
¿Está utilizando el mismo archivo de génesis? Los nombres en sus comandos son diferentes. Si estos nodos están en la misma máquina, sus directorios de datos no pueden ser los mismos. Verifique esto para más detalles.
@varm estos están en máquinas separadas. He mantenido la misma identificación de red.
@5chdn cuando ejecuto el comando en la máquina 2 para conectarme con la máquina 1, no muestra ningún error, pero la consola geth no está abierta y, al mismo tiempo, si verifico el conteo de pares en la máquina 1, aparece 1 solo por fracciones de segundo y luego regresa a 0
Mahine 1- geth --genesis /home/cgen1.json --datadir '/home/jedi/Desktop/node8' --networkid 13245 --port 30010 consola Machine2 -geth --genesis /home/cgen1.json --datadir '/home/jedi/Desktop/node8' --networkid 13245 --port 30010 --bootnodes "enode://5dfa40c241eac4a3e26d46441847f372bae24b0eb668cd1104dd983ee079b3d5bfeeea758f1a101525c1bf51305a278b1f1d2a18bccfe0a314725be81e418dc8@1.39.47.145:30010"
@jassu También debe usar el mismo archivo de génesis. En lugar de bootnodes, ¿intentó usar la función admin.addPeer() ?
@varm Este es mi archivo de génesis en ambas máquinas { "nonce": "0xdeadbeefdeadbeef", "timestamp": "0x0", "parentHash": "0x000000000000000000000000000000000000000000000000000000000000000000", "0:0x0limit"0: "0x0gas ", "difficulty": "0x400", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc": { } }
También estoy enfrentando el mismo problema. Tengo 2 nodos en diferentes máquinas y no puedo agregarlos como compañeros. Por favor, hágamelo saber si alguien logró esto. Gracias.
Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede hacerla haciendo clic en Preguntar . También puede agregar una recompensa para llamar más la atención sobre esta pregunta una vez que tenga suficiente reputación . - De la revisión

Respuestas (2)

Genere alguna ID aleatoria , por ejemplo, usando random dot org, usemos 88259. En la primera máquina, ejecuta el cliente así (tenga en cuenta que también cambié el puerto de red y el directorio de datos para evitar conflictos con la red principal):

geth --datadir "/home/user/.eth-private" --port 30259 --networkid 88259

Esto ejecutará una nueva instancia de una red ethereum privada en su primera máquina.

I0621 10:19:02.655014 ethdb/database.go:82] Alloted 128MB cache and 1024 file handles to /home/user/.eth-private/chaindata
I0621 10:19:02.827145 ethdb/database.go:169] closed db:/home/user/.eth-private/chaindata
I0621 10:19:02.827243 cmd/utils/flags.go:601] WARNING: No etherbase set and no accounts found as default
I0621 10:19:02.827886 ethdb/database.go:82] Alloted 128MB cache and 1024 file handles to /home/user/.eth-private/chaindata
I0621 10:19:02.840042 ethdb/database.go:82] Alloted 16MB cache and 16 file handles to /home/user/.eth-private/dapp
I0621 10:19:02.841749 eth/backend.go:172] Protocol Versions: [63 62 61], Network Id: 88259
I0621 10:19:02.841907 eth/backend.go:201] Blockchain DB Version: 3
I0621 10:19:02.842241 core/blockchain.go:206] Last header: #0 [d4e56740…] TD=17179869184
I0621 10:19:02.842260 core/blockchain.go:207] Last block: #0 [d4e56740…] TD=17179869184
I0621 10:19:02.842271 core/blockchain.go:208] Fast block: #0 [d4e56740…] TD=17179869184
I0621 10:19:02.842952 p2p/server.go:313] Starting Server
I0621 10:19:04.844709 p2p/discover/udp.go:217] Listening, enode://6179e58bb512415a76e4169dd25ae5a171e34069660b233cf79dabd3581d8dd1221a7f3a5e5d64251aa7e8ac20eda5430e42eed161e68cb05d05e6c3cab68a6e@[::]:30259
I0621 10:19:04.845128 p2p/server.go:556] Listening on [::]:30259
I0621 10:19:04.848679 node/node.go:296] IPC endpoint opened: /home/user/.eth-private/geth.ipc

Ahora, extraiga el enode uri del primer nodo y reemplace la IP con la ID de su red de área local (LAN, o use la IP pública si los nodos están distribuidos), así:

enode://6179e58bb512415a76e4169dd25ae5a171e34069660b233cf79dabd3581d8dd1221a7f3a5e5d64251aa7e8ac20eda5430e42eed161e68cb05d05e6c3cab68a6e@192.168.1.159:30259

Ahora, puede pasar este nodo como nodo de arranque al segundo y tercer nodo, así:

geth --datadir "/home/user/.eth-private" --port 30259 --networkid 88259 --bootnodes "enode://6179e58bb512415a76e4169dd25ae5a171e34069660b233cf79dabd3581d8dd1221a7f3a5e5d64251aa7e8ac20eda5430e42eed161e68cb05d05e6c3cab68a6e@192.168.1.159:30259"

Tenga en cuenta que el ID de red debe ser el mismo en todos los clientes. Intentará conectarse a su primer nodo.

Si tiene varios nodos en ejecución, también puede agregar más nodos al parámetro bootnodes, simplemente sepárelos con comas.

mientras se ejecuta en la consola 2 geth, se proporciona un indicador de error pero no se define: - bootnodes
Por favor, agregue más detalles a su pregunta : qué versión de geth, cuál es su línea de comando exacta, etc. pp.

Para hacer que los nodos sean pares, necesita tres parámetros iguales en ambos nodos:

  • Mientras tanto
  • Identificación de red
  • Archivo Génesis

Después de eso, use el valor de enodo proporcionado al ejecutar el comando admin.nodeInfo . En el lugar de {::} , coloque la IP de otra máquina. Espero que resuelva su problema.

Por favor, lea mis comentarios anteriores, avíseme si se deben realizar cambios.
Pruébelo usando 12345 como ID de red en ambos extremos