Как стать валидатором Free TON

admin

Administrator
Команда форума
Сообщения
649
Реакции
190
Руководство содержит инструкции о том, как построить и настроить узел валидатора в цепочке блоков TON. Приведенные ниже инструкции и сценарии были проверены в Ubuntu 18.04


1. Системные требования


конфигурация
Процессор (ядра)
RAM (ГиБ)
Хранение (ГиБ)
Сеть (Гбит / с)
минимальная
8
16
1000
1
рекомендуемая
16
32
1000
1

Диски SSD рекомендуются для хранения /var/ton-work/db

2. Предпосылки

2.1 Установить среду


Отрегулируйте (если необходимо) scripts/env.sh


Код:
$ cd ./scripts/
$ . ./env.sh
2.2 Сборка ноды

Построить ноду:

$ ./build.sh

2.3 Настройка ноды

Инициализация ноды:

$ ./setup.sh

2.4 Подготовить кошелёк с мультиподписью

Примечание
. Все ручные вызовы утилиты TONOS-CLI должны выполняться из scripts папки.

Мультисиг-кошелек (или просто кошелек) используется в скрипте валидатора для отправки запросов на выборку в смарт-контракт выборщика.

Позвольте N быть общее количество хранителей кошелька и K количество минимальных подтверждений, необходимых для выполнения транзакции кошелька.


  1. Прочитайте документацию TONOS-CLI ( Развертывание мультисиг-кошелька в блокчейне TON ) и сгенерируйте начальные фразы и открытые ключи для N - 1 хранителей.
  2. Создать адрес кошелька и Nthключ хранителя:
$ ./msig_genaddr.sh

Скрипт создает 2 файла: $(hostname -s).addr и msig.keys.json в ~/ton-keys/ папке. Используйте открытый ключ в msig.keys.json качестве Nth попечителя открытого ключа , когда будет развернут кошелек.


3. Запустите ноду валидатора


Сделайте этот шаг, когда сеть запущена. Запустите ноду:

$ ./run.sh

Подождите, пока нода не синхронизируется с masterchain. В зависимости от пропускной способности сети этот шаг может занять значительное время (до нескольких часов).

Вы можете использовать следующий скрипт для проверки синхронизации ноды:

$ ./check_node_sync_status.sh

Пример вывода скрипта:

Код:
connecting to [127.0.0.1:3030]
local key: FB0A67F8992DB0EF51860D45E89951275A4D6EB6A381BBF99023292982F97247
remote key: 2AD4363BE4BCCEFEF667CB919B199C4710278B8E2B0D972E18D1E5A17B62A99D
conn ready
unixtime            1588443685
masterchainblock            (-1,8000000000000000,989):85316E413BD4FFBE76AF7BCDC2A75C27B2BA3AE45381D0CE7B5684949447DF07:6D975F062203F2A2F913FC528387036F47B27AB156B76E4127C186E32A6ED9C3
masterchainblocktime            1588443683
gcmasterchainblock            (-1,8000000000000000,0):3D009F42614CBA3537A41596BFD6E598756C83332668990C914D67A3B137D37D:40D1F2B2588A6A00D8AB05C8C1E944E42B172B5C111867B70DBC41009EE10C55
keymasterchainblock            (-1,8000000000000000,669):712CBAF305CB9AF1CD3745FDDB8E184796D8A21E7C559A42EB6B68D8B2F2FF89:3B03B9075B20BD1E6111492C41756F337FF649C6C89B9F87D446FAC47DCFD2BB
knownkeymasterchainblock            (-1,8000000000000000,669):712CBAF305CB9AF1CD3745FDDB8E184796D8A21E7C559A42EB6B68D8B2F2FF89:3B03B9075B20BD1E6111492C41756F337FF649C6C89B9F87D446FAC47DCFD2BB
rotatemasterchainblock            (-1,8000000000000000,918):4DD1DF6361F4B406DCC948B99E0D1ADD6988AC8F824F2E1B263CFED2AD46742E:12A8599C16C5EF1B09713F7EC91E2F765E97545F046FE6871DCD0C82E0377036
stateserializermasterchainseqno            984
shardclientmasterchainseqno            988
INFO: TIME_DIFF = -2
Если параметр TIME_DIFF равен нескольким секундам, синхронизация завершена.

3.1 Инициализация мультисиг-кошелька

Примечание
. Все ручные вызовы утилиты TONOS-CLI должны выполняться из scripts папки.

Соберите все открытые ключи всех кастодианов и разверните кошелек с помощью TONOS-CLI. Используйте K значение в качестве reqConfirms параметра развертывания. Убедитесь, что кошелек был развернут по адресу, сохраненному в $(hostname -s).addr файле.

3.2 Запуск скрипта валидатора

Укажите <STAKE> аргумент в токенах. Эта сумма токенов будет отправляться с помощью кошелька в смарт-контракт Elector (выборщик) в каждом цикле проверки.

Запустите скрипт валидатора (с периодом, например, каждые 60 минут):

$ ./validator_msig.sh <STAKE> >> ./validator_msig.log 2>&1

Пример cron (запускается каждый час):

@hourly script --return --quiet --append --command "cd /scripts/ && ./validator_msig.sh ${STAKE} 2>&1" /var/ton-work/validator_msig.log



Оригинал: https://github.com/tonlabs/net.ton.dev/blob/master/README.md
 
Сверху