Обслуживание и безопасность
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Введен ие
В этом руководстве представлена базовая информация об обслуживании и защите узлов валидатора TON.
В этом документе предполагается, что валидатор установлен с использованием конфигурации и инструментов рекомендованных TON Foundation, н но общие концепции применимы и к другим сценариям и могут быть полезны для опытных системных администраторов.
Техническое обслуживание
Уход за базой данных
Узел TON хранит свою базу данных в пределах пути, указанного флагом --db validator-engine
, обычно /var/ton-work/db
. Чтобы уменьшить размер базы данных, вы можете уменьшить TTL (время жизни) некоторых сохраненных данных.
Текущие значения TTL можно найти в файле службы узла (путь по умолчанию — /etc/systemd/system/validator.service
). Если вы используете MyTonCtrl, вы можете использовать команду installer status
. Если какие-либо из значений не установлены, то используются стандартные значения.
archive-ttl
archive-ttl
- это параметр, который определяет время жизни для блоков. Стандартное значение — 604800 секунд (7 дней). Вы можете уменьшить это значение для сжатия базы данных.
MyTonCtrl> installer set_node_argument --archive-ttl <value>
Если вы не используете MyTonCtrl, вы можете отредактировать файл службы узла.
state-ttl
state-ttl
- это параметр, который определяет время жизни состояний блоков. Значение по умолчанию — 86400 секунд (24 часа). Вы можете уменьшить это значение для сжатия базы данных, но для валидаторов крайне рекомендуется использовать стандартное значение (не устанавливайте флаг).
Также это значение должно быть больше продолжительности периода валидации (значение можно найти в 15-м параметре конфигурации).
MyTonCtrl> installer set_node_argument --state-ttl <value>
Если вы не используете MyTonCtrl, вы можете отредактировать файл службы узла.
Резервное копирование
Самый простой и эффективный способ сделать резервную копию валидатора — скопировать важные файлы конфигурации узла, ключи и настройки mytonctrl:
- Файл конфигурации узла:
/var/ton-work/db/config.json
- Закрытый ключ узла:
/var/ton-work/db/keyring
- Открытый ключ узла:
/var/ton-work/keys
- Конфигурация и кошельки mytonctrl:
$HOME/.local/share/myton*
, где $HOME - домашний каталог пользователя, который начал установку mytonctrl или/usr/local/bin/mytoncore
, если вы установили mytonctrl как root.
Этот набор — все, что вам нужно для восстановления вашего узла с нуля.
Снимки
Современные файловые системы, такие как ZFS, предлагают функцию снимков, большинство поставщиков облачных услуг также позволяют своим клиентам делать снимки своих машин, во время которых весь диск сохраняется для будущего использования.
Проблема с обоими методами заключается в том, что вы должны остановить узел перед выполнением снимка, невыполнение этого требования, скорее всего, приведет к повреждению базы данных с неожиданными последствиями. Многие поставщики облачных услуг также требуют, чтобы вы выключали машину перед выполнением снимка.
Такие остановки не следует выполнять часто, если вы делаете снимок своего узла раз в неделю, то в худшем случае после восстановления у вас будет узел с недельной базой данных, и вашему узлу потребуется больше времени, чтобы догнать сеть, чем для выполнения новой установки с использованием функции mytonctrl "install from dump" (флаг -d добавляется во время вызова скрипта install.sh).
Аварийное восстановление
Чтобы выполнить восстановление вашего узла на новой машине:
Установите mytonctrl / node
Для самого быстрого запуска узла добавьте ключ -d
при вызове скрипта установки.
Переключитесь на пользователя root
sudo -s
Остановите процессы mytoncore и validator
systemctl stop validator
systemctl stop mytoncore
Примените резервные копии файлов конфигурации узла
- Файл конфигурации узла:
/var/ton-work/db/config.json
- Закрытый ключ узла:
/var/ton-work/db/keyring
- Открытый ключ узла:
/var/ton-work/keys
Установите IP-адрес узла
Если у вашего нового узла другой IP-адрес, то вы должны отредактировать файл конфигурации узла /var/ton-work/db/config.json
и установить .addrs[0].ip
в десятичное значение нового IP-адреса. Вы можете использовать этот скрипт Python для преобразования вашего IP в десятичное значение.
Убедитесь, что у вас правильные разрешения на использование базы данных
chown -R validator:validator /var/ton-work/db
Примените файлы конфигурации mytonctrl из резервной копии
Замените $HOME/.local/share/myton*
, где $HOME - домашний каталог пользователя, который начал установку mytonctrl, на резервную копию содержимого, убедитесь, что пользователь является владельцем всех копируемых файлов.
Запустите процессы mytoncore и validator
systemctl start validator
systemctl start mytoncore
Безопасность
Безопасность на уровне хоста
Безопасность на уровне хоста — это огромная тема, которая выходит за рамки этого документа, однако мы рекомендуем вам никогда не устанавливать mytonctrl под пользователем root, используйте учетную запись службы для обеспечения разделения привилегий.
Безопасность на сетевом уровне
Валидаторы TON — это ценные активы, которые следует защищать от внешних угроз, один из первых шагов, которые вы должны предпринять, — сделать свой узел максимально невидимым, это означает блокировку всех сетевых подключений. На узле валидатора только UDP-порт, используемый для операций узла, должен быть открыт для Интернета.
Инструменты
Мы будем использовать интерфейс брандмауэра ufw, а также JSON процессор для командной строки jq.