Skip to content

Latest commit

 

History

History
72 lines (59 loc) · 5.48 KB

File metadata and controls

72 lines (59 loc) · 5.48 KB

Инструкция по запуску сети TON

Для запуска сети нам понадобится несколько оперативно доступных нод (рекомендую не менее 5). Сразу определяемся, какая из нод будет первой.

  1. Создаём репозиторий для глобального конфига, кладём туда пустой файл testnet.config.json

  2. На всех нодах:

  • клонируем репозиторий ноды
git clone https://github.com/ton-rocks/general-ton-node.git
  • настраиваем env.sh
  • прописываем путь к глобальному конфигу
export CONFIG="https://raw.githubusercontent.com/Battlelore21/network-config/master/testnet.config.json"
  1. На первой ноде
  • Выставляем export GENESIS=1 в env.sh
  • Запускаем ноду ./docker_run.sh
  • Нода сгенерирует зеростейт, и приступит к валидированию
  • Через какое-то время станет доступен блокчейн эксплорер на порту BLOCK_EXPLORER_PORT
  • Когда убедились, что сеть запущена и функционирует, выполняем docker_export_conf.sh и docker_export_wallet.sh
  • сохраняем ключи главного кошелька с начальной эмиссией main-wallet.*
  • Файл initial-ton-global.config.json - это наш глобальный конфиг, он должен быть доступен всем новым нодам. Сделайте коммит, переименовав initial-ton-global.config.json в testnet.config.json

Перед продолжением проверьте, что конфиг доступен по ссылке, указанной в env.sh.

  1. На всех нодах
  • Запустите оставшиеся ноды через ./docker_run.sh
  • Через ./docker_status.sh убедитесь, что ноды синхронизировались с сетью
  • На всех нодах выполните docker_export_conf.sh и docker_export_wallet.sh
  • Соберите адреса кошельков нод validator.hexaddr и их конфиги dht_node.conf и liteserver.conf (включая первую ноду)
  1. Теперь нужно раздать нодам стейки для участия их в выборах
  • Перепишите main-wallet.* в корень директории ноды (там где лежит ws.run.sh)

  • Запустите workstation через ./ws.run.sh, вы попадёте в bash запущенного докера

  • Откройте ещё один терминал и выполните ./ws.import.sh, это перепишет main-wallet.* внутрь докер контейнера

  • Внутри WS:

  • загрузите глобальный конфиг сети (выполните wget https://raw.githubusercontent.com/Battlelore21/network-config/master/testnet.config.json -O /var/ton-work/db/my-ton-global.config.json)

  • cd /var/ton-work/contracts

  • раздайте стейки всем нодам (включая первую) командой

wallet_main_transfer.sh -1:a65c60c6a35e75c3982b736dd3de8d407f01ba2e60a6d3b44a776a6e471efb83 100000

(замените адрес, сумма не менее 10001)

  1. Теперь в каждой из нод
  • выполняем ./docker_wallet_status.sh, если токены пришли, выполняем ./docker_wallet_deploy.sh,
  • затем снова ./docker_wallet_status.sh для проверки деплоя
  1. Обновляем глобальный конфиг
  • прописываем в глобальном конфиге dht ноды и лайтсервера, пушим изменения в репозиторий
  1. Перезапускаем первую ноду
  • останавливаем первую ноду ./docker_stop.sh, ./docker_clean.sh (1 раз y, потом n)
  • ставим export GENESIS=0
  • и запускаем её уже в качестве обычной ноды ./docker_run.sh
  1. Проводим первые выборы
  • на всех нодах выполняем ./docker_participate.sh (а затем настраиваем cron для автоматического участия в выборах)
  • в WS запускаем
lite-client -C /var/ton-work/db/my-ton-global.config.json -v 0 -rc "runmethod -1:3333333333333333333333333333333333333333333333333333333333333333 participant_list" -rc "quit" | grep "result: "

и проверяем, что бы все ноды подались на выборы. Можно так же выполнить для каждой ноды wallet_status.sh <адрес_кошелька>, что бы увидеть, кто не подался. В случае, если у какой-то ноды не получилось, можно попробовать удалить файл *.participated в папке /var/ton-work/contracts (внутри докера) и снова выполнить ./docker_participate.sh

  1. Если все подались, ждём первых выборов. Наблюдать за этим можно в блокчейн эксплорере. Сначала появится 36 конфиг с новыми нодами, затем они окажутся в 34 конфиге