Руководство для делегатов по транзиту блокчейна Голос
Настоящее руководство разработано для делегатов блокчейна Голос для принятия ими решения на проведение транзита блокчейна Голос в приложение Голос на платформу 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
на ноду с помощью команды
git clone https://github.com/cyberway/cyberway.launch.git
- обеспечить следующие условия:
- приложение Голос должно быть установлено в докер-контейнере и имя образа должно быть 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
на ноду с помощью команды
git clone <путь к репозиторию>
*2) проголосовать либо с помощью cli_wallet
cli_wallet transit_to_cyberway <аккаунт делегата> true
либо с помощью вызова скрипта
sudo ./transit.sh transit-approve
*3) запустить скрипт start_light.sh
Делегаты, которым необходимо установить CyberWay на отдельный сервер, должны выполнить действия 1) и 2) на старой ноде и 1) и 3) на сервере, на котором устанавливается CyberWay.
Последовательность действий пользователей, которые желают стать валидаторами CyberWay, не являются делегатами Голоса
Пользователи, которые желают установить на свой сервер CyberWay и присоединиться к блокчейну CyberWay, должны запустить скрипт start_light.sh
из репозитория cyberway.launch
.
Примечание:
Для процедуры транзита необходимо, чтобы характеристики ноды соответствовали требованиям, приведенным в подразделе Требования к нодам валидаторов.
Коммуникация
Коммуникация в течение транзита будет вестись по двум каналам — CyberWay_Validators
для отзывов и ответов на вопросы и CyberWay Launch Updates
для координации действий на уровне выполнения команд.