Руководство валидатора по транзиту

Настоящее руководство разработано для делегатов блокчейна Голос для принятия ими решения на проведение транзита блокчейна Голос в приложение Голос на платформу 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 https://github.com/cyberway/cyberway.launch.git

2) проголосовать либо с помощью cli_wallet

cli_wallet transit_to_cyberway <аккаунт делегата> true

либо с помощью вызова скрипта

sudo ./transit.sh transit-approve

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