Пример запуска тестнета
Last updated
Last updated
Автор:
Порой для писателей скриптов, ботов для голоса требуется отладить работу программ в тишине и спокойствии и в контролируемой среде. Не хочется, что бы бот к примеру перевел внезапно 10000 голосов неизвестно кому из-за глупой ошибки. Как это случилось однажды с доброботом. Опять же для регрессионных тестов, нужна возможность повторения сценариев с одинаковыми исходными данными, чтобы получить повторяемые, ожидаемые результаты. Ну и конечно тестирование ХФ, новой версии сети голоса. У нас сейчас актуальная версия сети 0.16.4, а новая версия будет 0.17.0. Если кто-то захочет протестировать новую версию, подключившись к реальной сети, то возможно нода с “неправильной” версией будет “саботировать” сеть.
Вот для этого и запускается testnet. С тестовыми пользователями уже имеющими на балансе средства, с измененными настройками, позволяющими ускорить тестирование.
К примеру можно установить уменьшение силы голоса не раз в неделю как в настоящей сети, а раз в 15 минут. Иначе бы пришлось ждать результатов теста неделями, а в тестнете всего 15 минут. Окно авторских вознаграждений можно сократить с недели, до получаса. Выгоды очевидны.
Тестнет не связан с рабочей сетью и не мешает работе действующей сети. Так же можно тестировать свой секретный проект так, что бы до поры до времени никто про него не узнал.
В официальном репозитории golos уже есть готовые файлы для docker, и предпочтительно использовать их, чтобы не городить свои скрипты для компиляции, бороться с зависимостями. Все для вас сделает docker. Как работать с докером я расписывать сильно не буду. Инструкций полно в интернете.
Для начала скачаем исходники golos. Для этого воспользуемся git-ом.
У нас создастся папка golos с исходниками. Перейдем в нее и последующие комманды будет запускать в ней.
Нам нужно будет переключить на нужную нам ветку. В настоящий момент меня интересует версия 0.17.0.
Как видно на скриншоте, есть branch под названием golos-v0.17.0. Вот на нее нам и надо переключиться. Для этого в корне папки с исходниками выполним следующую команду
И теперь нам надо обновить локальные файлы до версий в репозитории на гитхабе
Теперь можно поменять нужные нам для теста параметры. К примеру я хочу тестировать скрипт, который должен запускаться после понижения силы голоса. Чтобы не ждать неделями, я сокращу интервал вывода СГ до 10 минут. Для этого открываю файл с настройками сети в редакторе.
Меня интересует конкретно вот эта строка
Я исправляю, чтобы интервал был 10 минут и сохраняю файл
В папке docker лежит файл для докера с инструкциями по сборке образа.
Все, что нам требуется, это запустить сборку
Спустя какое то время мы имеем готовый образ докера
Для начального запуска воспользуемся командой run докера
Собственно все понятно. -it включает интерактивность. “-p 127.0.0.1:9090:8090” включает переадресацию порта 8090 изнутри контейнера наружу, на порт 9090. Это дает возможность подключаться скриптами к тестнету используя URL вида ws://localhost:9090. Опция -d запускает контейнер отключенным от консоли в фоне. --name testnet задет простое имя контейнеру. -t testnet-17 задает имя образа, который будет использоваться для создания контейнера.
Если все нормально, после запуска контейнера докер распечатает ID контейнера и вернет управление в консоль.
Как я писал выше, в тестнете уже созданы пара тестовых пользователей. Самый важный cyberfounder. Естественно, чтобы можно было этим аккаунтом пользоваться, нужны ключи. Приватный и публичный. При запуске, golos распечатывает пару ключей в самом начале. Посмотреть их можно распечатав лог голоса.
Чтобы сеть заработала, нужен хотя бы один делегат, подписывающий блоки. Этим и будет заниматься аккаунт cyberfounder. Чтобы это заработало, нужно отредактировать конфигурационный файл.
Сначала зайдем в образ
Конфигурационный файл config.ini лежит в папке /etc/golosd.
Изменим следующие параметры
После чего перезапускаем контейнер
И видим, что сеть заработала и cyberfounder начал генерировать блоки
Дождемся 17-го хардфорка, после чего можно пользоваться тестнетом
Запускаем cli_wallet, задаем пароль, и импортируем приватный ключ cyberfounder аккаунта
На аккаунте cyberfounder есть уже некая сумма голосов
Можно создать нового пользователя и перевести ему GOLOS
Ну и вишенка на торт, создаем свой, персональный токен
Инстанциируем немного монет и переводим их тестовому пользователю
Удачных вам экспериментов!
И ищу переменные со словам withdraw и почти сразу нахожу нужные мне.
По материалам