Я запускаю Geth (последняя версия) около 12 часов, и он все еще не закончен.
Командная строка показывает это:
INFO [05-21|12:05:00] Imported new chain segment blocks=1 txs=9 mgas=0.748 elapsed=40.047ms mgasps=18.687 number=3742904 hash=f8fd6e…fce9f8
INFO [05-21|12:05:29] Imported new chain segment blocks=1 txs=2 mgas=0.044 elapsed=16.018ms mgasps=2.741 number=3742905 hash=04b0be…3d64cd
INFO [05-21|12:05:38] Imported new chain segment blocks=1 txs=66 mgas=2.851 elapsed=95.126ms mgasps=29.971 number=3742906 hash=157014…c50cc5
Кстати, у меня не такая уж и плохая скорость интернета, зацените
Это нормально ? Должен ли я попробовать использовать другой клиент, например Parity?
PS: я запускал Geth, используя эту командную строку:geth --fast --cache=1024
Выполните следующие шаги, чтобы проверить состояние синхронизации:
1.) откройте новый экземпляр geth и введите geth attach
2.) теперь введитеeth.syncing
Это показывает вам «currentBlock» и «highestBlock».
100 * eth.syncing.currentBlock / eth.syncing.highestBlock
чтобы получить процент выполнения. Когда он приближается к 100, вы синхронизируетесь.eth.blockNumber
с помощью обозревателя блоков, если хотите перепроверить. Источникgeth attach
на самом деле это полноценная среда JavaScript! Если вы хотите повторно распечатать процент в цикле по времени, вы можете просто запустить(function percentage() { console.log(100* eth.syncing.currentBlock / eth.syncing.highestBlock); setTimeout(percentage, 10000); } ());
Предполагая, что вы используете операционную систему Linux, вы также можете проверить статус синхронизации (запустите это как пользователь, под которым работает geth):
$ geth --exec eth.syncing.currentBlock attach
3991639
Если он не синхронизируется, он будет отображать только «false».
Или, если вы хотите немного пофантазировать и посмотреть, сколько блоков в секунду синхронизируется, вот идея:
A=$(geth --exec eth.syncing.currentBlock attach)
while true; do
echo "Currently at block ${A}"
sleep 1
B=$(geth --exec eth.syncing.currentBlock attach);
echo "Reached block ${B}"
echo "$B-$A"|bc; A=$B
done
Я думаю, вам следует отредактировать вопрос, чтобы спросить: «Как я узнаю, что синхронизация geth завершена?»
Вопрос, который вы задали, был расплывчатым, но я полагаю, что это ответ, который вы искали:
Geth будет продолжать работать вечно. Как только это «сделано», он просто будет сидеть и ждать следующего блока. «Числа», на которые вы ссылаетесь, — это блочные номера, и они будут увеличиваться на протяжении всей вечности. Как только ваш текущий блок достигает самого высокого блока, вы все синхронизируетесь. Как упоминал 5chdn, самый высокий блок можно определить, проверив что-то вроде etherscan.io.
Я позволял Geth работать часами, думая, что жду, пока он «закончится», хотя на самом деле он был сделан уже давно. На момент написания этой статьи самый высокий блок — 3854270.
Благодаря комментарию 5chdn, который действительно был ключом к ответу.
Если вы запустите geth с "--verbosity 5", он выведет кучу отладочной информации. Это не ускорит процесс, но даст вам понять, что гет не завис.
Я думаю, что люди делают это бегом. Начинает что-то стучать. Они ждут и ждут. А потом они убивают гетов, потому что они выглядят зависшими. Если вы это сделаете, geth просто должен будет начать этот долгий процесс заново, что потребует еще больше времени для синхронизации.
Verbosity 5 позволяет вам набраться терпения и позволить ему работать до тех пор, пока оно не завершится, потому что вы можете видеть, что оно не зависло.
INFO [05-22|08:14:16] Imported new chain segment blocks=1 txs=2 mgas=0.067 elapsed=11.000ms mgasps=6.104 number=3745188 hash=9b8973…920c7e
Проработал около 32 часов. Ран Гет сgeth --rpc --fast -cache=1024
Размер папки Ethereum: 17.9Gb
--syncmode
— это новый переключатель поведения синхронизации.Лично я предпочитаю использовать Parity из-за имеющейся у них функции моментальных снимков. Используя облачный экземпляр GCE, я смог синхронизировать всю цепочку за 30 минут.
Вот объяснение того, как это работает: https://github.com/paritytech/parity/wiki/Warp-Sync-Snapshot-Format .
q9f
Дж. Доу
q9f
Арефе
geth attach
, которая сегодня не работает. Итак, я попробовал,geth --fast --cache=1024
и это работает.лллллллл
--syncmode=full --gcmode=archive
. Примерно через 18 часов я добрался до блока 2702327. Самый высокий блок — 6799556.