гет не синхронизируется с коробкой
У меня новая новая установка Ubuntu 16.04, и я выполнил руководство по настройке geth
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum
И после запуска geth он зависает на
I0925 07:53:21.655924 node/node.go:308] IPC endpoint opened: /home/username/.ethereum/geth.ipc
I0925 07:53:21.656651 p2p/server.go:576] Listening on [::]:30303
0 сверстников, ничего не происходит, нет синхронизации. htop показывает случайную активность в CPU, ответы на консоль, но показывает 0 сверстников:
geth attach
Welcome to the Geth JavaScript console!
instance: Geth/v1.5.0-unstable/linux/go1.6.2
coinbase: 0x4c49eed9cc104695593cd2a9745ce108e28efc09
at block: 0 (Thu, 01 Jan 1970 03:00:00 MSK)
datadir: /home/username/.ethereum
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
> net.listening
true
> net.peerCount
0
Я что-то делаю неправильно?
1 ответ
geth
Bootnodes Are Down
Я тестировал, и узлы обнаружения одноранговых узлов прерываются /в основном вниз.
Обновление 08:19 25 сентября 2016
Я подозреваю, что загрузочные файлы перегружены из-за большого числа клиентов geth
, пытающихся получить соединения, поскольку клиенты перезапускаются из-за недавняя атака с ошибками памяти и атаки транзакций спама /IO.
telnet
может периодически подключаться к некоторым из загрузочных устройств, но geth
не удалось найти ни одного партнера более часа.
Отдельный узел geth
, который я начал много часов назад, отлично работает с 25 одноранговыми соединениями.
Я проверил блокхаш для последнего блока, который я синхронизировал, и он соответствует etherscan.io # 2,287,735 :
> admin.peers
[]
> eth.blockNumber
2287735
> eth.getBlock(eth.blockNumber).hash
"0x53a331f2c93a796170e3af16f66b998fd0ed5acb8caccb79c2431e111b67419b"
reddit сказал
Пожалуйста, проверьте это сейчас и ответьте, найдены ли одноранговые узлы, и синхронизация начинается для вас.
В geth 1.4.12 теперь я могу найти сверстников и успешно начать синхронизацию.
Я тестировал, и мой ранее несинхронизирующий узел теперь синхронизируется автоматически. Я повторно протестировал подключение к загрузочным узлам ниже, а первые 3 сразу подключились.
Было бы интересно узнать, что вызвало эту ситуацию несинхронизации для многих узлов geth
. Обновите программное обеспечение узла на своих серверах загрузки? Перезагрузите свои серверы bootnode? Сделать доступными дополнительные слоты для подключения на своем сервере bootnode?
Обновление 12:09 26 сентября 2016
Существует новая версия geth
с именем Geth 1.4.13: В лесу (различные исправления DoS) , который можно загрузить с https://github.com/ethereum /go-ethereum/releases/tag/v1.4.13 .
Файлы с расширением .zip с исходным кодом и некоторыми версиями операционной системы были доступны на этой странице. Загрузите версию, соответствующую вашей операционной системе (если она есть, или подождите, пока она будет доступна).
Ubuntu ppa теперь содержит http://ppa.launchpad.net/ethereum/ethereum/ubuntu/ trusty/main bootnode amd64 1.4.13+87trusty-0ubuntu1
с этой новой версией, поэтому просто обновите свою установку ubuntu, чтобы получить новую версию.
Эта версия должна синхронизироваться с другими одноранговыми узлами (проблема исправлена в последнем обновлении), но должна обрабатывать транзакции спама ввода-вывода намного быстрее по сравнению с версией 1.4.12.
Временное обходное решение
См. Как я могу извлечь список сверстников из моего узла синхронизации geth, чтобы вручную вставить в мой несинхронизирующий geth-узел с помощью команды admin.addPeer ()? для списка ---- +: = 9 =: + ----, которые вы можете вставить в консоль admin.addPeer(...)
для запуска синхронизации узлов.
Мои тесты
Обновление 13:51 01 октября 2016 г. Обратите внимание, что следующий тест не является окончательным, поскольку загрузочные файлы, которые обычно работают с использованием протокола UDP на порту 30301, но я использовал TCP 30303 для тестирования. См. Почему Java Ethereum использует UDP? - не только devp2p TCP и Что такое идентификатор Enode в Ethereum? .
Проверка geth
версия
geth
Загрузочные [email protected]:~$ geth version
Geth
Version: 1.4.12-stable
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.5.1
OS: linux
GOPATH=/home/user/go
GOROOT=/usr/lib/go
перечислены в https://github.com/ethereum/go-ethereum/blob/master/cmd/utils/bootnodes.go#L25- L30 и являются:
geth
Тестирование первого сервера:
discover.MustParseNode("enode://[email protected]:30303"), // IE
discover.MustParseNode("enode://[email protected]:30303"), // BR
discover.MustParseNode("enode://[email protected]:30303"), // SG
// ETH/DEV Cpp Bootnodes
discover.MustParseNode("enode://[email protected]:30303"),
Тестирование второго сервера:
[email protected]:~$ telnet 52.16.188.185 30303
Trying 52.16.188.185...
telnet: Unable to connect to remote host: Connection timed out
Тестирование третьего сервера:
[email protected]:~$ telnet 54.94.239.50 30303
Trying 54.94.239.50...
telnet: Unable to connect to remote host: Connection timed out
Тестирование четвертого сервера:
[email protected]:~$ telnet 52.74.57.123 30303
Trying 52.74.57.123...
telnet: Unable to connect to remote host: Connection timed out
Ожидаемые результаты, показанные на серверах Bootnet Netnet
Это не обычный ответ для серверов bootnode. Вот сервер начальной загрузки для Testnet, указанный в