Перейти к основному содержимому

Архивный узел

к сведению

Прочитайте о Полном узле перед этой статьей

Обзор

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

Требования к ОС

Мы настоятельно рекомендуем установить mytonctrl с использованием поддерживаемых операционных систем:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Debian 11

Требования к аппаратному обеспечению

  • 16 x ядерный процессор
  • 128ГБ ОЗУ с исправлением ошибок (ECC)
  • Твердотельный накопитель объемом 9 ТБ или Оборудованное хранилище с более 64 000 операций ввода/вывода в секунду (IOPS)
  • Возможность подключения к сети 1 Гбит/с
  • 16 ТБ/месяц трафика при пиковой нагрузке
  • публичный IP-адрес (фиксированный IP-адрес)
Сжатие данных

Для несжатых данных требуется 9 ТБ. 6 ТБ - это при использовании тома ZFS с включенным сжатием. Объем данных увеличивается примерно на 0,5 ТБ и 0,25 ТБ каждый месяц, с последним обновлением в ноябре 2024 года.

Установка

Установите ZFS и подготовьте том

Дампы поставляются в виде снимков ZFS, сжатых с помощью plzip, вам необходимо установить ZFS на вашем хосте и восстановить дамп, см. в Документацию Oracle.

Обычно рекомендуется создать отдельный пул ZFS для вашего узла на выделенном SSD-диске, это позволит вам легко управлять дисковым пространством и создавать резервные копии вашего узла.

  1. Установите zfs
sudo apt install zfsutils-linux
  1. Создайте пул на вашем выделенном диске объемом 4 ТБ <disk> и назовите его data
sudo zpool create data <disk>
  1. Перед восстановлением настоятельно рекомендуем включить сжатие на родительском файловой системе ZFS, что позволит вам освободить много места. Чтобы включить сжатие для тома data, войдите под учетной записью root и выполните следующую команду:
sudo zfs set compression=lz4 data

Установите MyTonCtrl

Пожалуйста, используйте Запуск Полного узла чтобы установить и запустить mytonctrl.

Запустите архивный узел

Подготовьте узел

  1. Перед выполнением восстановления вы должны остановить validator под учетной записью root:
sudo -s
systemctl stop validator.service
  1. Сделайте резервную копию файлов конфигурации ton-work (нам потребуются файлы /var/ton-work/db/config.json, /var/ton-work/keys и /var/ton-work/db/keyring).
mv /var/ton-work /var/ton-work.bak

Скачайте дамп

  1. Запросите учетные данные user и passwordдля получения доступа к скачиванию дампов в чате @TONBaseChatEn в Telegram.
  2. Вот пример команды для скачивания и восстановления дампа mainnet с сервера ton.org:
wget --user <usr> --password <pwd> -c https://archival-dump.ton.org/dumps/latest.zfs.lz | pv | plzip -d -n <cores> | zfs recv data/ton-work

Чтобы установить дамп testnet, используйте следующую команду:

wget --user <usr> --password <pwd> -c https://archival-dump.ton.org/dumps/latest_testnet.zfs.lz | pv | plzip -d -n <cores> | zfs recv data/ton-work

Размер дампа составляет примерно 4 Тб, поэтому скачивание и восстановление могут занять несколько дней (до 4 дней). Размер дампа может увеличиваться с ростом сети.

Подготовьте и выполните команду:

  1. При необходимости установите инструменты (pv, plzip)
  2. Замените <usr> и <pwd> вашими учетными данными
  3. Сообщите plzip использовать столько ядер, сколько позволяет ваша машина для ускорения извлечения (-n)

Установите дамп

  1. Смонтируйте zfs:
zfs set mountpoint=/var/ton-work data/ton-work && zfs mount data/ton-work
  1. Восстановите db/config.json, keys и db/keyring из резервной копии в /var/ton-work.
cp /var/ton-work.bak/db/config.json /var/ton-work/db/config.json
cp -r /var/ton-work.bak/keys /var/ton-work/keys
cp -r /var/ton-work.bak/db/keyring /var/ton-work/db/keyring
  1. Убедитесь, что разрешения для каталогов /var/ton-work и /var/ton-work/keys предоставлены правильно:
  • Владельцем каталога /var/ton-work/db должен быть пользователь validator:
chown -R validator:validator /var/ton-work/db
  • Владельцем каталога /var/ton-work/keys должен быть пользователь ubuntu:
chown -R ubuntu:ubuntu /var/ton-work/keys

Обновите конфигурацию

Обновите конфигурацию узла для архивного узла.

  1. Откройте файл конфигурации узла /etc/systemd/system/validator.service.
nano /etc/systemd/system/validator.service
  1. Добавьте настройки хранилища для узла в строке ExecStart:
--state-ttl 315360000 --archive-ttl 315360000 --block-ttl 315360000
к сведению

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

предупреждение

Если процесс синхронизации узла уже занял 5 дней, но узел все еще не синхронизирован, вам следует проверить раздел устранения неполадок.

Запустите узел

  1. Запустите validator, выполнив команду:
systemctl start validator.service
  1. Откройте mytonctrl из local user и проверьте состояние узла с помощью команды status.

Обслуживание узла

База данных узла требует периодической очистки (мы рекомендуем проводить ее раз в неделю), для этого, пожалуйста, выполните следующие шаги под учетной записью root:

  1. Остановите процесс validator (Никогда не пропускайте этот момент!)
sudo -s
systemctl stop validator.service
  1. Удалите старые логи
find /var/ton-work -name 'LOG.old*' -exec rm {} +
  1. Удалите временные файлы
rm -r /var/ton-work/db/files/packages/temp.archive.*
  1. Запустите процесс validator
systemctl start validator.service

Устранение неполадок и резервное копирование

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

  1. Остановите процесс валидатора (**Никогда не пропускайте это! **).
sudo -s
systemctl stop validator.service
  1. Проверьте имя моментального снимка
zfs list -t snapshot
  1. Откатить к состоянию моментального снимка
zfs rollback data/ton-work@dumpstate

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

Нужна помощь?

У вас есть вопросы или вам нужна помощь? Пожалуйста, задавайте вопросы в TON Dev Chat (РУ), чтобы получить помощь сообщества. Разработчики MyTonCtrl также присутствуют там.

Советы и рекомендации

Заставьте архивный узел не хранить блоки

Чтобы заставить узел не хранить архивные блоки, используйте значение 86400. Подробнее смотрите в разделе set_node_argument.

installer set_node_argument --archive-ttl 86400

Поддержка

Обратитесь в службу технической поддержки по ссылке @mytonctrl_help.

См. также