Реплей из снимка

Получив валидный файл снимка, скопируйте его в data/snapshots, при необходимости сделайте резервную копию и удалите существующее содержимое каталога данных.

Расположение Имя Действие
data/snapshots <head block id in hex>.bin положить сюда снимок для реплея
data/ * удалить

В config.ini можно задать snapshots-dir = "snapshots" или использовать --snapshots-dir в командной строке; --snapshot указывает имя файла снимка для восстановления.

nodeos --snapshot yoursnapshot.name \
  --plugin eosio::producer_plugin  \
  --plugin eosio::chain_api_plugin \
  --plugin eosio::http_plugin      \
  >> nodeos.log 2>&1 &

При старте со снимка рекомендуется убрать старые данные; если при этом есть blocks.log, он должен содержать блоки как минимум до блока снимка и может содержать последующие блоки — они применятся при запуске. Если blocks.log есть, но не покрывает блок снимка или последующие блоки неконсистентны, при реплее со снимка будет исключение. Также применяются доступные обратимые блоки.

blocks.log снимок результат
нет для необратимого блока 2000 ок
блоки 1–1999 для необратимого блока 2000 исключение
блоки 1–2001 для необратимого блока 2000 ок — состояние из снимка и применение блока 2001

При подъёме узла из снимка нельзя передавать nodeos аргументы --genesis-json или --genesis-timestamp — генезис берётся из снимка. Если blocks.log уже есть, его генезис сверяется с данными снимка; при несовпадении реплей завершится ошибкой (проверка, что журнал и снимок относятся к одной цепочке).