# Синхронизировать блокчейн Waves
Для работы ноды необходима актуальная база данных блокчейна.
Вы можете синхронизировать ваш блокчейн с актуальным с помощью одного из следущих методов:
Синхронизируйте блокчейн в обычном режиме работы ноды, чтобы автоматически загрузить все необходимые данные с других нод, верифицировать блоки и подписи.
Импортируйте блокчейн из бинарного файла. Импорт занимает много времени и подразумевает точно такое же выполнение всех транзакций и валидаций, как при обычной работе ноды. Данный метод примерно на 10% быстрее, чем синхронизация блокчейна в обычном режиме работы ноды.
Загрузите и разверните актуальный блокчейн на вашей ноде. Это самый быстрый метод. В этом случае ваша нода пропустит длительный процесс выполнения транзакций и валидаций и будет использовать загруженный блокчейн «как есть». Загружайте блокчейн только из надёжных источников. Базы данных из неизвестных источников могут содержать неправильные данные или балансы.
Важно: Полная синхронизация может занимать 1-3 дня и в основном зависит от частоты ЦПУ. Самый значительный процесс (верификация блоков) является однопоточным, поэтому высокочастотные процессоры обеспечат наилучшую производительность. Валидация подписей выполняется в несколько потоков, но её влияние на длительность синхронизации незначительна в сравнении с верификацией подписей. Другими словами, ЦПУ с 8 и 16 ядрами с одинаковой частотой выполнят синхронизацию почти за одинаковое время. Верификация блоков — это не линейный процесс. “Тяжелые” блоки требуют больше времени. "Тяжесть" определяется количеством и типом транзакций в блоке. Пустые блоки (например, первые 200 000) верифицируются гораздо быстрее, чем такое же количество блоков после одного миллиона блоков. Во время синхронизации блокчейна количество операций записи на диск может превышать максимальное количество операций ввода/вывода, поддерживаемое жестким диском. Это может привести к задержкам работы операционной системы из-за недостатка физической памяти. Команда Waves рекомендует использовать SSD и оставлять не менее 30% общей памяти для нужд операционной системы (кэш/буферы).
# Синхронизация блокчейна в обычном режиме работы ноды
Данный способ подразумевает запуск ноды с нуля. Подробное описание запуска ноды представлено в статье Установить ноду Waves.
После запуска нода автоматически загрузит все необходимые данные с других нод, верифицирует блоки и их подписи вплоть до полной синхронизации блокчейна с актуальным.
В данном случае на длительность синхронизации будут влиять следующие факторы:
- пропускная способность интернет-канала и задержка сети (latency).
- количество подключенных peer-нод.
Первый зависит от интернет-провайдера, а второй от параметра max-outbound-connections
. Команда Waves считает оптимальным значение 30
(по умолчанию). Скорость интернет-подключения не так сильно влияет на длительность процесса, как время, затраченное на верификацию блоков и подписей.
# Импорт блокчейна из бинарного файла
Чтобы ускорить процесс синхронизации примерно на 10%, можно импортировать блокчейн из бинарного файла. Бинарные файлы содержат цепочку блоков с транзакциями в проверяемом формате (включая первоначальный порядок всех транзакций с подписями и блоками, подписанными генераторами блоков). Импорт подразумевает точно такое же выполнение всех транзакций и валидаций, как при обычной работе ноды, включая валидацию подписей, балансов и пр. Если у вас уже есть работающая нода с синхронизированным блокчейном, вы можете экспортировать свой блокчейн в бинарный файл, чтобы импортировать его на другой ноде.
Процесс импорта/экспорта подробно описан в статье Импортировать и экспортировать блокчейн.
Внимание! Если ваша нода находится на форке с высотой более 2000 блоков, не экспортируйте/импортируйте свой блокчейн, а обновите ноду. Затем выполните шаги, описанные в секции Загрузка актуального блокчейна
# Загрузка актуального блокчейна
Можно загрузить готовую базу данных и развернуть её на своей ноде. В этом случае ваша нода будет использовать загруженный блокчейн «как есть» и пропустит длительный процесс выполнения транзакций и валидаций (подписей, балансов и пр.), который происходит при обычной работе ноды или при импорте блокчейна из бинарного файла. Процесс подробно описан в статье Загрузка актуального блокчейна.