Я запускаю узел Ethereum, используя geth, и он не может найти пиров. Я уже пробовал команду синхронизации времени, предложенную на вики . У меня хорошая пропускная способность.
По умолчанию geth
использует порт 30303 для подключения к другим узлам. Возможно, вам придется изменить брандмауэр, чтобы разрешить трафик через этот порт.
Вы можете проверить количество пиров, а также получить список пиров при подключении к консоли 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
}
},
...
]
Если у вас есть исправный узел geth, работающий где-то еще, вы можете попробовать загрузить одноранговое соединение с помощью этой admin.addPeer
функции. Функцию следует вызывать с адресом узла в формате, admin.addPeer("enode://<id>@<ip_address>:<port>")
где значения ip_address
и port
берутся из remoteAddress
части информации об одноранговом узле, а the id
представляет собой большую длинную шестнадцатеричную строку под id
ключом для информации об одноранговом узле. Для коллеги выше это будет:
admin.addPeer("enode://03743aa20db17dc12d2e355f32b75964653408eaab2c6e0fad7b2600fef49b3c2ec938d436fc48e86582d732d8eb64935edddee7d5c9caf726261add05cf46fe@87.106.88.35:35646")
Это может быть полезно, если вы каким-то образом потеряете соединение со всеми своими пирами через какой-то несетевой механизм. Однако отсутствие пиров, вероятно, будет проблемой сети, и ручное добавление пиров потенциально может быть только сервером в качестве временного решения в лучшем случае.
Хорошо, что вы проверили время, но наиболее распространенной причиной невозможности найти пиры является конфигурация брандмауэра и сети. Если брандмауэр работает, попробуйте отключить его.
Я использую этот скрипт, если мой узел ведет себя странно... очевидно, вам нужно изменить его, чтобы он соответствовал вашей ситуации...
#!/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
Предупреждение - это не то, что вы должны использовать по умолчанию .. это сожжет пропускную способность интернета как сумасшедшую.
Акшата_G