Узел Geth начинает синхронизацию с самого начала после быстрой синхронизации

Я синхронизировал с помощью --fastкоманды. Теперь, как мне поступить?

Я попытался остановить его, а затем запустить, geth --rpcно он говорит:

Last Header #1311471
Last Block #0
Fast Block #1310224

Что мне делать, чтобы синхронизироваться?

Привет и добро пожаловать в Ethereum Stack Exchange. В чем именно заключается ваш вопрос. Если бы вы могли майнить на быстро синхронизируемом клиенте geth?
Я использовал geth --fast, и цепочка синхронизировалась почти до текущего числа. Затем я остановил его и ввел команду geth --rpc, чтобы продолжить синхронизацию, чтобы я мог майнить в другом терминале. я увидел, что цепочка снова начала синхронизироваться с нуля. Я что-то не так сделал или geth --fast не для майнинга? Был ли какой-либо другой шаг, который я пропустил? благодарю вас
Плохая идея: P Вы, по сути, убрали всю работу быстрой синхронизации: P Быстрая синхронизация не обрабатывает все блоки, а загружает только их, и после того, как все блоки находятся, загружает текущее состояние сети напрямую (т.е. не сгенерировать, но скачать). Вы прервали его, прежде чем разрешить загрузку текущего состояния, поэтому, даже если у вас есть блоки, у вас нет фактического состояния, в котором находится сеть. Поэтому, когда вы перезапустили, у нее не было другого выбора, кроме как начать все сначала. Удалите папку данных цепочки, снова выполните быструю синхронизацию и дождитесь ее завершения :P

Ответы (1)

Почему Fast Sync перезапускается

Как указано в Péter Szilágyiкомментарии выше, вам придется дождаться --fastзавершения синхронизации, иначе вам придется перезапустить процесс снова. Сообщение, которое вы должны увидеть на своей консоли после --fastзавершения синхронизации: « Быстрая синхронизация завершена, автоматическое отключение », как показано ниже:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
 I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

А для перезапуска вам нужно будет очистить папку chaindata — см. «Как мне сбросить блок-цепочку и запустить geth --fast» ниже.


Майнинг Ethereum после быстрой синхронизации

Синхронизируйте блокчейн, и когда у вас будут синхронизированы последние блоки, вы можете ввести в консоли следующую команду:

miner.start(n)

где n — количество потоков, с которыми ваш процессор должен работать.

Я предполагаю, что вы хотите майнить блокчейн с помощью обычного процессора, а не графического процессора (GPU). Вы можете обратиться к статье «Стоит ли майнинг на процессоре эфира?». .

Если на вашем компьютере есть графический процессор, вы можете сначала поискать на этом сайте вопросы и ответы по «майнингу» или задать отдельный вопрос, если вы не можете найти ответ. Вот один вопрос и ответ — Как майнить Эфир на GNU + Linux? .

Обратите внимание, что вам нужно будет сначала создать учетную запись, на которую будут выплачиваться ваши вознаграждения за майнинг. См. «Но у меня есть графический процессор, и я хочу использовать его для майнинга» ниже.


Как мне поступить?

Подробнее см. ниже.


Что мне делать, чтобы синхронизироваться?

Вам нужно только запустить geth --fast consoleв первый раз. Опция --fastне будет синхронизировать блоки быстрее после первого раза. Вы можете опустить --fastпараметры в последующих запусках geth.

При первом запуске gethбез --fastпараметра gethможет потребоваться несколько дней для загрузки блокчейна с других компьютеров через Интернет — это время зависит от скорости вашего сетевого подключения и процессора вашего компьютера.

Если вы geth --fastвпервые используете новую установку, geth --fastзагрузка блокчейна займет несколько часов — опять же, это будет зависеть от вашего сетевого подключения и вашего процессора.

После первоначальной загрузки блокчейна с помощью geth --fast, вы работаете только gethбез --fastпараметра. Синхронизация теперь будет быстрой, так как только новые блоки нужно загружать с других узлов Ethereum через Интернет, и они создаются со средней скоростью примерно один блок каждые 14-15 секунд.

Если вы хотите сбросить свой блокчейн и повторно загрузить блокчейн с помощью --fast, см. раздел ниже «Как мне сбросить свой блокчейн и запустить geth --fast».


Я что-то не так сделал или geth --fastэто не для майнинга?

geth --fastиспользуется для ПЕРВОНАЧАЛЬНОЙ загрузки копии текущего блокчейна с других узлов Ethereum через Интернет. Как указано в разделе Что такое «быстрая» синхронизация Geth и почему она быстрее? :

Вместо того, чтобы обрабатывать всю цепочку блоков по одной ссылке за раз и воспроизводить все транзакции, которые когда-либо происходили в истории, быстрая синхронизация загружает квитанции о транзакциях по блокам и извлекает всю базу данных последних состояний.

geth --fastНЕ для майнинга . Это всего лишь первый шаг загрузки копии блокчейна. Впоследствии вам понадобится постоянно синхронизирующаяся копия блокчейна, если вы хотите майнить.


Был ли какой-либо другой шаг, который я пропустил?

Не то, чтобы я мог сказать. Необычно, что ваша цепочка начнет синхронизацию с самого начала, если только она не завершилась правильно или возникли какие-то проблемы с конфигурацией. Попробуйте очистить chaindataкаталог и повторно синхронизировать блокчейн. После этого вам не нужно повторно синхронизировать с нуля.



Детали

Я предполагаю, что вы хотите запустить команду синхронизации в одном окне (#1) и подключить другую gethконсоль в другом окне (#2). А когда вы хотите выйти из консоли, используйте сочетание клавиш Control-D (^D). Если вы нажмете Control-C несколько раз или завершите процесс другими способами ( killв Linux или Mac или с помощью диспетчера задач в Windows), ваши данные блокчейна могут быть повреждены (только очень редко — со мной случилось однажды).


Синхронизация в первый раз

В окне №1 выполните команду:

geth --fast console

В окне № 2 выполните следующую команду, чтобы подключиться к geth --fast consoleэкземпляру выше:

geth attach

Для этого вам не нужны --rpcфлаги, так как связь между этими двумя gethэкземплярами будет осуществляться по протоколу IPC. Протокол IPC работает только на локальном компьютере через файловый дескриптор. Протокол RPC может использоваться для связи между разными компьютерами.


Синхронизация после первого раза

В окне №1 выполните команду:

geth console

В окне № 2 выполните следующую команду, чтобы подключиться к geth consoleэкземпляру выше:

geth attach

Разница между консольными сообщениями --fastи обычной синхронизацией

На экране отображаются следующие сообщения geth --fast console– обратите внимание на заголовок(я) и квитанцию(и) :

I0416 13:35:53.497422   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 71.941018ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.263134   30629 blockchain.go:1044] imported 192 receipt(s) 
  (0 ignored) in 55.447062ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.683682   30629 blockchain.go:889] imported 192 header(s) 
  (0 ignored) in 73.050377ms. #6528 [8ab9a7af… / f2ffecac…]

На экране отображаются следующие сообщения geth console— обратите внимание на блоки :

I0416 13:32:23.331906   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 979.938402ms. #6366 [66dcf4c1 / c5d009a1]
I0416 13:32:24.169955   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 836.388044ms. #6622 [e11a3fa9 / d211c2e1]
I0416 13:32:24.974790   30581 blockchain.go:1251] imported 256 block(s) (0 
  queued 0 ignored) including 0 txs in 803.457715ms. #6878 [c9f9ae12 / 238493b8]

Вот переход, когда --fastсинхронизация завершена и начинается нормальная синхронизация:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) 
  (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 
  queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

Как мне сбросить свой блокчейн и запуститьgeth --fast

Данные блокчейна по умолчанию хранятся в следующих местах (ссылка Backup & Restore ):

  • Mac: ~/Library/Ethereum/chaindata
  • Linux: ~/.ethereum/chaindata
  • Windows: %APPDATA%\Ethereum\chaindata

Удалите содержимое каталога выше или переместите его в другое место, и когда вы успешно синхронизируете свои данные, удалите старую копию.

Как только данные в chaindataкаталоге будут удалены, вы сможете --fastснова выполнить синхронизацию.


Но у меня есть графический процессор, и я хочу майнить с его помощью.

В этом случае вам понадобится другое приложение ethminer, которое будет выполнять операции майнинга на графическом процессоре. Связь между gethи ethminerне работает через IPC. Вам нужно будет включить связь RPC, используя:

geth --rpc console

gethиспользует значения по умолчанию --rpcaddr 127.0.0.1и --rpcport 8545. Начните ethminerсо следующей команды

ethminer -F http://127.0.0.1:8545 -G

Параметр -Gпредставляет собой инструкцию для ethminerвыполнения вычислений майнинга с использованием вашего графического процессора.

Прежде чем вы сможете запустить приведенные выше команды для майнинга, вам нужно будет создать учетную запись, на которую будут выплачиваться любые вознаграждения за майнинг. Выполните следующую команду

geth account new

Вам будет предложено ввести пароль дважды, после чего вы можете запустить приведенные выше команды.


Похожие вопросы

Модераторы могут пометить этот вопрос как дубликат, так как на этом сайте есть несколько вопросов, которые, возможно, связаны:

Но я надеюсь, что это более полное руководство, которое поможет вам решить проблемы с синхронизацией.

Мой gethуже неделю синхронизируется с --fastoption и до сих пор не закончен. Он выполнил полную синхронизацию с общим количеством блоков один раз, а затем перезапустился с первого блока для их обработки. Этот второй процесс очень медленный. Есть ли способ загрузить блокчейн, не тратя недели на синхронизацию?
Спасибо за ответы. If you want to mine one cannot use --fastТеперь мне нужно начать все сначала, так как в прошлый раз я остановил синхронизацию с --fast