Для запуска сети нам понадобится несколько оперативно доступных нод (рекомендую не менее 5). Сразу определяемся, какая из нод будет первой.
-
Создаём репозиторий для глобального конфига, кладём туда пустой файл testnet.config.json
-
На всех нодах:
- клонируем репозиторий ноды
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"- На первой ноде
- Выставляем 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.
- На всех нодах
- Запустите оставшиеся ноды через ./docker_run.sh
- Через ./docker_status.sh убедитесь, что ноды синхронизировались с сетью
- На всех нодах выполните docker_export_conf.sh и docker_export_wallet.sh
- Соберите адреса кошельков нод validator.hexaddr и их конфиги dht_node.conf и liteserver.conf (включая первую ноду)
- Теперь нужно раздать нодам стейки для участия их в выборах
-
Перепишите 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)
- Теперь в каждой из нод
- выполняем ./docker_wallet_status.sh, если токены пришли, выполняем ./docker_wallet_deploy.sh,
- затем снова ./docker_wallet_status.sh для проверки деплоя
- Обновляем глобальный конфиг
- прописываем в глобальном конфиге dht ноды и лайтсервера, пушим изменения в репозиторий
- Перезапускаем первую ноду
- останавливаем первую ноду ./docker_stop.sh, ./docker_clean.sh (1 раз y, потом n)
- ставим export GENESIS=0
- и запускаем её уже в качестве обычной ноды ./docker_run.sh
- Проводим первые выборы
- на всех нодах выполняем ./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
- Если все подались, ждём первых выборов. Наблюдать за этим можно в блокчейн эксплорере. Сначала появится 36 конфиг с новыми нодами, затем они окажутся в 34 конфиге