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

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

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

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

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

20 голосов | спросил kostasps 10 PMpSun, 10 Apr 2016 21:28:38 +030028Sunday 2016, 21:28:38

1 ответ


29

Почему перезагрузка быстрой синхронизации

Как указано в комментарии 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]

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


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

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

miner.start(n)

где n - это количество потоков, которое вы хотите, чтобы ваш процессор работал с.

Я предполагаю, что вы хотите разделить блокчину с обычным процессором, а не графическим процессором (GPU). Возможно, вы захотите обратиться к Является ли производительность процессора даже стоимостью Ether? .

Если у вас есть GPU на вашем компьютере, вы можете сначала просмотреть этот сайт для «разработки» Q & As или задать отдельный вопрос, если вы не можете найти ответ. Вот один Q & A - Как вывести эфир на 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 используется для INITIALLY для загрузки копии текущей блок-цепи из других узлов Ethereum через Интернет. Как указано в Что такое «быстрая» синхронизация Geth , и почему это происходит быстрее? :

  

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

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


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

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



Подробности

Я предполагаю, что вы хотите запустить команду синхронизации в одном окне (# 1) и прикрепить другую консоль geth в другом окне (# 2). И когда вы хотитевыйдите из консоли, используйте Ctrl-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

Данные блок-цепи по умолчанию хранятся в следующих местах (ссылка Резервное копирование и восстановление ):

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

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

Как только данные в каталоге 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 для выполнения вычислений с использованием вашего GPU.

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

geth account new

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


Вопросы, относящиеся

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

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

ответил The Officious BokkyPooBah 16 AMpSat, 16 Apr 2016 05:36:36 +030036Saturday 2016, 05:36:36

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132