Руководство валидатора по транзиту
Настоящее руководство разработано для делегатов блокчейна Голос для принятия ими решения на проведение транзита блокчейна Голос в приложение Голос на платформу CyberWay (решение, поддержанное большинством стейкхолдеров Голоса на референдуме), а также для пользователей, желающих установить на своем сервере CyberWay.
Руководство содержит описание процедуры транзита, а также последовательность действий, выполнение которых обеспечит по результатам голосования прекращение функционирования делегатской ноды в системе блокчейна Голос и запуск валидаторской ноды в CyberWay с сохранением данных состояния системы Голос на момент останова ноды.
Описание процедуры транзита блокчейна Голос
Процедура транзита запускается после проведения ХФ-0.21.0 в соответствии со следующим алгоритмом:
голосование делегатов за проведение транзита;
получение снимка состояния системы Голоса на нодах делегатов;
прекращение функционирования всех нод блокчейна Голос;
генерация файла генезиса для блокчейна CyberWay и клиента Голос;
запуск цепочки CyberWay и клиента Голос с использованием сформированного файла генезиса.
Завершением транзита считается успешная установка и развертывание приложения Голос в блокчейне CyberWay.
Голосование делегатов за проведение транзита
После принятия ХФ-0.21.0 (12-00 Мск, 15 авг. 2019 г. ) делегаты Голоса смогут проголосовать за проведение транзита. Каждый из делегатов Голоса должен самостоятельно принять решение относительно транзита и отправить транзакцию, подписанную собственным ключом.
Решение о транзите будет считаться принятым, если количество делегатов, проголосовавших за его проведение, составит не менее 16 (из первых 19 в списке делегатов). Как только будет получена транзакция с согласием от 16-го делегата Голоса, которая попадет в последний невозвратный блок цепочки (англ. Last Irreversible Block, сокр. LIB), транзакция с результатом голосования будет отправлена в блок-лог для регистрации принятого делегатами решения. С этого момента процедура голосования делегатов за переезд Голоса на блокчейна CyberWay будет считаться завершенной.
Получение снимка состояния системы Голоса на нодах делегатов
В случае положительного результата голосования делегатов за транзит будет запущена процедура получения снимка состояния системы Голоса. На нодах делегатов, у которых в конфигурационном файле указаны директории для выгрузки файлов с данными состояния системы, будут созданы файлы для фиксации данных состояния системы Голоса (снимка системы).
Прекращение функционирования нод
После получения транзакции с согласием от 16-го делегата сеть Голос продолжит в течение установленного в настройках времени производить пустые блоки, чтобы на остальных нодах делегатов данная транзакция попала в блок LIB. Однако в течение этого периода сеть не будет обрабатывать транзакции и, следовательно, не будут выполняться операции такие как публикация постов и комментариев, перевод средств, проставление «лайков» и пр. Также будут остановлены операции по эмиссии и переводу токенов. Такая пауза в работе ноды введена для синхронизации останова всех нод и регистрации на них блока LIB, содержащего транзакцию с согласием на транзит от 16-го делегата.
Генерация файла генезиса
Утилитой create genesis
на основе файла со снимком состояния системы Голос cформируется файл генезиcа — исходные данные для генерации CyberWay. Этой утилите передается вся необходимая информация для запуска остановленной цепочки на новой платформе и для развертывания приложения Голос. Утилита create genesis
обеспечит перенос данных всех аккаунтов, балансов, незакрытых постов и др. (данных системы Голоса) в новое окружение.
Генезис, сформированный командой Голос Кор, будет доступен по ссылке, указанной в файле genesis_data.link
, в репозитории cyberway.launch github. В том же репозитории будет находиться файл genesis.info
с описанием параметров генезиса.
Запуск цепочки CyberWay
Запуск цепочки произойдет на нодах делегатов, проголосовавших за транзит, и ставших валидаторами в блокчейне CyberWay. Перед запуском цепочки ноды должны образовать сеть. Соединение будет происходить через seed-ноды. Файл с ip-адресами seed-нод будет сохранен в репозитории cyberway.launch github. Как только количество соединенных по ip-адресу нод достигнет значения, указанного в параметре генезиса, произойдет запуск цепочки CyberWay c данными блокчейна Голос и начнется производство блоков.
Через один час после запуска цепочки будет выполнена отложенная транзакция emit
, которая запустит процедуры по закрытию постов.
Требования к нодам валидаторов CyberWay
Ноды, на которых устанавливается CyberWay, должны иметь следующие аппаратные характеристики:
объем дискового пространства (не менее) — 80 ГБ;
объем памяти RAM (не менее) — 16 ГБ.
На нодах должна быть установлена одна из следующих операционных систем:
Ubuntu (рекомендуемые версии 16.04 или 18.04);
MacOS Darwin 10.12 (или более поздняя);
Centos 7;
Fedora 25 (или более поздняя);
Mint 18.
На нодах должны быть установлены следующие программные средства:
docker;
docker-compose.
Последовательность действий делегатов
Установить на ноду версию ХФ-0.21.0
Процедура установки на ноде ХФ-0.21.0 аналогична процедуре установки предыдущих версий и может быть выполнена с использованием Руководства по установке ХФ-18.
По завершении установки ХФ-0.21.0 обязательно требуется проведение реплея цепочки.
Примечание: Делегаты, которые отказываются поддержать решение о транзите, принятое на референдуме, не предпринимают никаких действий. Неучастие в голосовании означает подачу голоса «ПРОТИВ». Делегаты, которые поддерживают решение референдума, должны проголосовать. Участие в голосовании означает подачу голоса «ЗА».
Проголосовать за проведение транзита
Внимание! Выполнив инструкции настоящего пункта, Вы автоматически голосуете ЗА проведение транзита и запускаете процедуру транзита!
По завершении установки ХФ-0.21.0 и начала транзита (12-00 Мск, 15 авг. 2019 г. ) откроется доступ к репозиторию cyberway.launch
, в котором будут находиться вспомогательные скрипты и будут загружены данные для запуска CyberWay.
Делегаты должны запустить процедуру транзита в одном из двух вариантов
Вариант_1 Делегаты, которые желают выполнить процедуру транзита с использованием данных генезиса, сформированного непосредственно на их ноде, должны
загрузить содержимое репозитория
cyberway.launch
на ноду с помощью командыобеспечить следующие условия:
приложение Голос должно быть установлено в докер-контейнере и имя образа должно быть golos-default;
конфигурационный файл должен быть перенесен в /etc/golosd/config.ini;
содержимое директории приложения Голос должно быть перенесено в /var/lib/golosd;
запустить скрипт
start_check_state.sh
Данный скрипт запускает следующие процессы:
процедуру голосования;
ожидание прекращения работы сети;
процедуру формирования генезиса;
запуск CyberWay с данными генезиса.
Процедура транзита в варианте_1 будет считаться успешно завершенной, если
окружение CyberWay будет установлено в докер-контейнере ;
будет создан конфигурационный файл /etc/cyberway/config.ini ;
будет создана директория для хранения данных /var/lib/cyberway ;
будут перенесены необходимые tcp порты.
Примечание: Для процедуры транзита в варианте_1 необходимо, чтобы характеристики ноды соответствовали требованиям, приведенным в подразделе Требования к нодам валидаторов.
Вариант_2 (рекомендуемый)
Делегаты, которые желают выполнить процедуру транзита с использованием данных генезиса, сформированного командой Голос Кор, а также с минимальным количеством требуемых от них действий, должны:
1) загрузить содержимое репозитория cyberway.launch
на ноду с помощью команды
2) проголосовать либо с помощью cli_wallet
либо с помощью вызова скрипта
3) запустить скрипт start_light.sh
Процедура транзита в варианте_2 будет считаться успешно завершенной, если
окружение CyberWay будет установлено в докер-контейнере ;
будет создан конфигурационный файл /etc/cyberway/config.ini ;
будет создана директория для хранения данных /var/lib/cyberway ;
будут перенесены необходимые tcp порты.
Делегаты, которым необходимо установить CyberWay на отдельный сервер, должны выполнить действия 1) и 2) на старой ноде и 1) и 3) на сервере, на котором устанавливается CyberWay.
Последовательность действий пользователей, которые не являются делегатами Голоса, но желают стать валидаторами CyberWay
Пользователи, которые желают установить на свой сервер CyberWay и присоединиться к блокчейну CyberWay, должны запустить скрипт start_light.sh
из репозитория cyberway.launch
.
Примечание: Для процедуры транзита необходимо, чтобы характеристики ноды соответствовали требованиям, приведенным в подразделе Требования к нодам валидаторов.
Коммуникация
Коммуникация в течение транзита будет вестись по двум каналам — CyberWay_Validators
для отзывов и ответов на вопросы и CyberWay Launch Updates
для координации действий на уровне выполнения команд.
Last updated