Архивный узел
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Прочитайте о Полном узле перед этой статьей
Обзор
Архивный узел - это тип полного узла, который хранит расширенные исторические данные блокчейна. Если вы создаете обозреватель блокчейна или аналогичное приложение, которому требуется доступ к историческим данным, рекомендуется использовать архивный узел в качестве индексатора.
Требования к ОС
Мы настоятельно рекомендуем установить 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-диске, это позволит вам легко управлять дисковым пространством и создавать резервные копии вашего узла.
- Установите zfs
sudo apt install zfsutils-linux
- Создайте пул на вашем выделенном диске объемом 4 ТБ
<disk>
и назовите егоdata
sudo zpool create data <disk>
- Перед восстановлением настоятельно рекомендуем включить сжатие на родительском файловой системе ZFS, что позволит вам освободить много места. Чтобы включить сжатие для тома
data
, войдите под учетной записью root и выполните следующую команду:
sudo zfs set compression=lz4 data
Установите MyTonCtrl
Пожалуйста, используйте Запуск Полного узла чтобы установить и запустить mytonctrl.
Запустите архивный узел
Подготовьте узел
- Перед выполнением восстановления вы должны остановить validator под учетной записью root:
sudo -s
systemctl stop validator.service
- Сделайте резервную копию файлов конфигурации
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
Скачайте дамп
- Запросите учетные данные
user
иpassword
для получения доступа к скачиванию дампов в чате @TONBaseChatEn в Telegram. - Вот пример команды для скачивания и восстановления дампа 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 дней). Размер дампа может увеличиваться с ростом сети.
Подготовьте и выполните команду:
- При необходимости установите инструменты (
pv
,plzip
) - Замените
<usr>
и<pwd>
вашими учетными данными - Сообщите
plzip
использовать столько ядер, сколько позволяет ваша машина для ускорения извлечения (-n
)
Установите дамп
- Смонтируйте zfs:
zfs set mountpoint=/var/ton-work data/ton-work && zfs mount data/ton-work
- Восстановите
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
- Убедитесь, что разрешения для каталогов
/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
Обновите конфигурацию
Обновите конфигурацию узла для архивного узла.
- Откройте файл конфигурации узла
/etc/systemd/system/validator.service
.
nano /etc/systemd/system/validator.service
- Добавьте настройки хранилища для узла в строке
ExecStart
:
--state-ttl 315360000 --archive-ttl 315360000 --block-ttl 315360000
Пожалуйста, будьте терпеливы после запуска узла и следите за логами. Дампы не содержат кэшей DHT, поэтому вашему узлу потребуется время для поиска других узлов и синхронизации с ними. В зависимости от возраста снимка и скорости вашего интернет-соединения, процесс восстановления может занять у вас от нескольких часов до нескольких дней. На минимальной конфигурации этот процесс может занять до 5 дней. Это нормально.
Если процесс синхронизации узла уже занял 5 дней, но узел все еще не синхронизирован, вам следует проверить раздел устранения неполадок.
Запустите узел
- Запустите validator, выполнив команду:
systemctl start validator.service
- Откройте
mytonctrl
из local user и проверьте состояние узла с помощью командыstatus
.
Обслуживание узла
База данных узла требует периодической очистки (мы рекомендуем проводить ее раз в неделю), для этого, пожалуйста, выполните следующие шаги под учетной записью root:
- Остановите процесс validator (Никогда не пропускайте этот момент!)
sudo -s
systemctl stop validator.service
- Удалите старые логи
find /var/ton-work -name 'LOG.old*' -exec rm {} +
- Удалите временные файлы
rm -r /var/ton-work/db/files/packages/temp.archive.*
- Запустите процесс validator
systemctl start validator.service
Устранение неполадок и резервное копирование
Если по какой-то причине что-то не работает или ломается, вы всегда можете откатиться к снимку @archstate в вашей файловой системе ZFS, это исходное состояние, полученное из дампа.
- Остановите процесс валидатора (**Никогда не пропускайте это! **).
sudo -s
systemctl stop validator.service
- Проверьте имя моментального снимка
zfs list -t snapshot
- Откатить к состоянию моментального снимка
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.