geth import vs копирование chaindata

Я пытаюсь синхронизировать свой RPi 2 с блочной цепочкой.

geth import работает довольно медленно, а также синхронизируется с нуля.

Какая проблема при простое копирование папки .ethereum/chaindata из другого полностью синхронизированного узла ethereum?

16 голосов | спросил Thibaut Schaeffer 23 FebruaryEurope/MoscowbTue, 23 Feb 2016 14:46:22 +0300000000pmTue, 23 Feb 2016 14:46:22 +030016 2016, 14:46:22

5 ответов


11

geth сохраняет свои внутренние состояния для основной сети в каталоге chaindata. Вы можете найти его в каталоге:

  • ~ /.ethereum on linux
  • ~ /Library /Ethereum на OS X
  • ~ /AppData /Roaming /Ethereum

Он использует базу данных LevelDB. Вы можете сохранить этот каталог только в том случае, если geth остановлен, чтобы предотвратить повреждение. Данные переносимы на Linux , Windows и MacOS X (я проверил). Но вы должны помнить, что это не безопасный путь. Не используйте архивы chaindata, предоставляемые анонимными. Транзакции не проверяются! Когда начинается geth, он проверяет наличие всех файлов. Если отсутствует файл .ldb, каталог chaindata поврежден, и вам нужно удалить этот каталог!

geth импорт и экспорт безопасны, но медленны, потому что все транзакции проверены, а операция такая же, как и geth без флага -fast. На моем 3720qm используется 5h и 19Go дисковое хранилище. Единственная экономика - это загрузка сети (1.5Go). Быстрее делать geth-fast!

На моем Intel 3720qm mac mini (1 Гбит /с), некоторые скамьи geth 1.4:

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth        | 19.Go     | 5h00 | 1To           |
| geth import | 19.Go     | 4h50 | 1To           |
| geth --fast | 3.7Go     | 1h00 | 100Go         |
--------------------------------------------------

На моем Intel 3720qm mac mini (1 Гбит /с), некоторые скамьи geth 1.5 (в dev):

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth --fast | 3.8Go     | 17m  | 25Go          |
| geth        | 19Go      | 2h   | 100Go         |
--------------------------------------------------

Вывод:

  • i использует архивы цепочек данных только между моими компьютерами.
  • импорт очень медленный, проверьте все и сохраните все состояния.
  • geth - fast быстрее и сохраняет только текущие состояния.
ответил Ellis 31 Mayam16 2016, 11:05:42
8

Копирование папки .ethereum/chaindata - хорошая идея. Я сделал это на своем Rpi2, и все сработало хорошо. Кроме того, если он не полностью синхронизирован на исходном компьютере, RPi2 только начнет синхронизацию с последнего блока в скопированной папке цепочек, что позволит сэкономить много времени.

Обратите внимание, что я никогда не запускал geth import blockchain_db. Не было необходимости. Копирование папки chaindata было простым, и оно работает.

ответил Ethan Wilding 24 FebruaryEurope/MoscowbWed, 24 Feb 2016 01:24:03 +0300000000amWed, 24 Feb 2016 01:24:03 +030016 2016, 01:24:03
3

Я экспортировал полную блоксхему на 1.088.000 блоков за 13 минут. (1,00 ГБ) Чтобы импортировать его на машине Ubuntu 14.04 и неплохом оборудовании, потребовалось за 8 часов! . Так что импорт или полная синхронизация с нуля - это не большая разница во времени. Запуск консоли после импорта Blockchain занял около 20 минут.

Это работает, но в следующий раз я определенно попытаюсь просто скопировать chaindata, так как он тоже должен работать и должен сэкономить много времени.

ответил Dario Eberhard 4 MarpmFri, 04 Mar 2016 13:50:41 +03002016-03-04T13:50:41+03:0001 2016, 13:50:41
2

Выполняйте быструю синхронизацию, вот что он должен был сделать :) Утилите существующий chaindata и запустите с помощью --fast, попробуйте немного набросать выделенный кеш --cache 128. Это должно сделать мир различий.

ответил Péter Szilágyi 4 MarpmFri, 04 Mar 2016 15:07:35 +03002016-03-04T15:07:35+03:0003 2016, 15:07:35
0

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

Итак, как вы можете экспортировать и затем импортировать блок-цепочку Ethereum, если вам нужно это сделать.

Экспортировать и импортировать блок-цепочку Ethereum:

– Run: geth export blockchain_backup
– Copy the blockchain_backup file to the new system
– On the new system run: geth import blockchain_backup

Вы также можете экспортировать и импортировать данные блок-цепи из режима консоли geth, однако кажется, что при запуске внутри консоли он делает это намного медленнее, чем вышеупомянутый метод. Команды для консоли Javascript: admin.exportChain('blockchain_backup') и admin.importChain('blockchain_backup'), поэтому вы также можете попробовать с ними, но первый пример должен быть быстрее.

из cryptomining-blog. com

ответил niksmac 23 FebruaryEurope/MoscowbTue, 23 Feb 2016 16:07:20 +0300000000pmTue, 23 Feb 2016 16:07:20 +030016 2016, 16:07:20

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

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

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