¿Por qué mi nodo Ethereum no tiene pares?

Estoy ejecutando un nodo Ethereum usando geth y no puedo encontrar ningún compañero. Ya probé el comando de sincronización de tiempo sugerido en la wiki . Mi ancho de banda es bueno.

Estoy obteniendo peerCount como cero incluso después de probar este admin.addPeer("enode:ip:portnumb"). Esto es cierto cuando lo ejecuté en cmd prompt pero net.peerCount es 0 > admin.addPeer("enode@169.254. 102.232:30340?discport=0") verdadero > web3.net.peerCount 0 > net.peerCount 0 >

Respuestas (3)

De forma predeterminada, gethutiliza el puerto 30303 para conectarse a otros nodos. Es posible que deba modificar su firewall para permitir el tráfico a través de este puerto.

Puede comprobar el número de compañeros y obtener una lista de compañeros cuando se conecta a la consola de javascript ( geth attach).

instance: Geth/v1.3.2/darwin/go1.5.1
datadir: /Users/home/Library/Ethereum
coinbase: 0xd3cda913deb6f67967b99d67acdfa1712c293601
at block: 864339 (Sun, 17 Jan 2016 16:00:07 MST)
modules: admin:1.0 db:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 shh:1.0 txpool:1.0 web3:1.0
> net.peerCount
5
> admin.peers
[{
    caps: ["eth/61", "eth/62"],
    id: "03743aa20db17dc12d2e355f32b75964653408eaab2c6e0fad7b2600fef49b3c2ec938d436fc48e86582d732d8eb64935edddee7d5c9caf726261add05cf46fe",
    name: "Geth/v1.2.2/linux/go1.5",
    network: {
      localAddress: "10.0.1.48:30303",
      remoteAddress: "87.106.88.35:35646"
    },
    protocols: {
      eth: {
        difficulty: 2283869820384174300,
        head: "d0d57a2f8fea1c834ce277d031727fecc1baf617b69e4d169f87f7e2d56f04c6",
        version: 62
      }
    },
    ...
]

Si tiene un nodo geth en buen estado ejecutándose en otro lugar, puede intentar arrancar su conexión de pares con la admin.addPeerfunción. La función debe llamarse con una dirección de enodo en el formato de admin.addPeer("enode://<id>@<ip_address>:<port>")donde los valores ip_addressy portprovienen de la remoteAddressparte de la información del par y ides la cadena hexadecimal grande y larga debajo de la idclave para la información del par. Para el par anterior, esto sería:

 admin.addPeer("enode://03743aa20db17dc12d2e355f32b75964653408eaab2c6e0fad7b2600fef49b3c2ec938d436fc48e86582d732d8eb64935edddee7d5c9caf726261add05cf46fe@87.106.88.35:35646")

Esto puede ser útil si de alguna manera pierde la conexión con todos sus compañeros a través de algún mecanismo no basado en la red. Sin embargo, es probable que no tener pares sea un problema de red y agregar pares manualmente solo sirva como una solución provisional en el mejor de los casos.

También he notado que una Raspberry Pi original tiene problemas. Sospecho que porque es tan lento que no responde de manera oportuna y otros compañeros no quieren sincronizarse con él.

Bien, comprobó la hora, pero la razón más común por la que no puede encontrar pares es la configuración del firewall y la red. Si se está ejecutando un firewall, intente deshabilitarlo.

Utilizo este script si mi nodo está actuando de forma extraña... obviamente necesitas modificarlo para adaptarlo a tu situación...

#!/usr/bin/env bash
trap "exit" INT

LOCALIP=(192.168.10.11)   (put your machines IP here)

IP=$(dig +short myip.opendns.com @resolver1.opendns.com)

echo "Local IP: $LOCALIP"
echo "Public IP: $IP"

echo "Starting eth"
eth --bootstrap --peers 50 --remote 52.16.188.185:30303 --mining off  --public-ip $IP --listen-ip $LOCALIP -- listen 30303

Advertencia: esto no es algo que deba usar de forma predeterminada... quemará el ancho de banda de Internet como un loco.