# Импортировать и экспортировать блокчейн
Для работы ноды необходима синхронизированная база данных блокчейна. Вы можете ускорить синхронизацию примерно на 10%. Для этого импортируйте блокчейн из бинарого файла вместо того, чтобы синхронизировать блокчейн в обычном режиме работы ноды. Бинарные файлы содержат цепочку блоков с транзакциями в проверяемом формате (включая первоначальный порядок всех транзакций с подписями и блоков с подписями генераторов блоков). При импорте блокчейна каждая транзакция выполняется так, как она выполнялась бы во время нормальной работы ноды. Это включает в себя проверку подписей, балансов и пр.
Если у вас уже есть работающая нода с синхронизированным блокчейном, вы можете экспортировать свой блокчейн в бинарный файл.
# Импорт блокчейна из бинарного файла
Импорт блокчейна из бинарного файла повышает нагрузку на ЦПУ и может занять 1-3 дня. Процесс подразумевает точно такое же выполнение всех транзакций и валидаций, как при обычной работе ноды, включая валидацию подписей, балансов и пр.
Для импорта блокчейна выполните следующие шаги:
Загрузите бинарный файл (например,
mainnet_last
для Mainnet) по одной из ссылок ниже:Mainnet: http://blockchain.wavesnodes.com/
Остановите ноду с помощью команды
service waves stop
.Удалите содержимое каталога, где хранится база данных ноды. По умолчанию база данных находится в подкаталоге
data
основного каталога приложения (в частности, для ноды, установленной из DEB-пакета, — в каталоге/var/lib/waves/data
).Консольная команда для Linux
sudo rm -rdf /var/lib/waves/data
.Выполните следующую команду:
Windows
java -cp waves-all-<version>.jar com.wavesplatform.Importer -c <configuration-file-name> -i <binary-file-name>
Linux
Mainnet:
sudo -u waves waves import -c /etc/waves/waves.conf -i <binary-file-name>
Testnet:
sudo -u waves-testnet waves-testnet import -c /etc/waves-testnet/waves.conf -i <binary-file-name>
macOS
java -cp waves-all-<version>.jar com.wavesplatform.Importer -c <configuration-file-name> -i <binary-file-name>
Используйте имя реального бинарного файла вместо
binary-file-name
.
Примечание: Вы можете ускорить импорт на 5–20% на свой страх и риск. Для этого используйте опцию -no-verify
параметра Importer
, чтобы отключить проверку блока и транзакции. Используйте с осторожностью и только если вы доверяете файлу блокчейна.
# Импорт блокчейна до заданной высоты
Вы можете задать желаемую высоту импорта. Если параметр height
не задан, будут импортированы все блоки.
Для импорта блокчейна до заданной высоты, выполните следующие шаги:
Остановите ноду с помощью команды:
service waves stop
.Удалите содержимое каталога, где хранится база данных ноды.
Выполните следующую команду:
Windows
java com.wavesplatform.Importer -c <configuration-file-name> -i <binary-file-name> -h <height>
Linux
Mainnet:
sudo -u waves waves import -c /etc/waves/waves.conf -i <binary-file-name> -h <height>
Testnet:
sudo -u waves-testnet waves-testnet import -c /etc/waves-testnet/waves.conf -i <binary-file-name> -h <height>
macOS
java com.wavesplatform.Importer -c <configuration-file-name> -i <binary-file-name> -h <height>
# Экспортировать блокчейн в бинарный файл
Если у вас уже есть работающая нода с синхронизированным блокчейном, вы можете экспортировать свой блокчейн в бинарный файл. Экспорт — довольно быстрый процесс, но полученный бинарный файл может дополнительно потребовать до 1/3 размера базы данных.
Для экспорта блокчейна, выполните следующие шаги:
Остановите ноду с помощью команды:
service waves stop
.Выполните следующую команду:
Windows
java -cp waves-all-<version>.jar com.wavesplatform.Exporter -c <configuration-file-name> -o <output-file-name> -h <height>
Linux
Mainnet:
sudo -u waves waves export -c /etc/waves/waves.conf -o <output-file-name> -h <height>
Testnet:
sudo -u waves-testnet waves-testnet export -c /etc/waves-testnet/waves.conf -o <output-file-name> -h <height>
macOS
java -cp waves-all-<version>.jar com.wavesplatform.Exporter -c <configuration-file-name> -o <output-file-name> -h <height>
Параметр height
позволяет задать максимальную высоту блоков при экспорте. Если параметр не задан, будут экспортированы все блоки.
Имя файла экспорта (output-file-name
) — необязательный параметр, по умолчанию используется blockchain
.
В результате экспорта файл с именем <output-file-name>-<height>
будет создан в текущем каталоге с базой данных.