Гайд для witness/seed ноды

Рекомендованные (минимальные) системные требования:

  • 4 Гб оперативной памяти и 80 Гб SSD накопителя

  • Linux-система, напр. Ubuntu 18.04/20.04 + стабильный интернет

Устанавливаем Docker

sudo apt-get update && 
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update && 
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Устанавливаем ноду

Скачиваем файл цепочки блоков only block_log (без него синхронизация от сети seed-нод занимает около 2-3 суток), либо полный backup witness node (с ним запуск займёт около часа).

Генерируем ключи

Для облегчения получения ключей, вместо запуска ноды без них, использования команды suggest_brain_key в cli-wallet для генерирования, правки конфига и перезапуска ноды, можно сразу сгенерировать их здесь, или на раз / два.

Только в Public-key (публичном ключе) заменить три начальных символа VIZ на GLS. Этот ключ нам понадобится для объявления себя делегатом позднее, а Private-key (приватный ключ) уже на следующем шаге.

Загружаем конфиг

Предварительно заменив значения witness и private-key на свои. В качестве witness запишем логин без @ от своего аккаунта на Голосе, private-key тот что сгенерировали на шаге выше.

Использование Docker-Compose

Для тех кто разбирается, обратите внимание на этот пост.

Запускаем контейнер

Начнётся загрузка образа ноды и реплей (наполнение файла оперативных данных shared_memory.bin из блоков), который будет продолжаться от пары часов до суток (в зависимости от производительности вашего сервера).

Можно оставить окно терминала или закрыть его, подключившись позднее и зайдя в логи ноды командой:

С появлением в логах ноды подобных сообщений о получении блоков, окно терминала можно закрыть (всё в порядке).

Телеграм-бот о пропуске блоков

Для отслеживания работы делегатских нод и пропуска ими блоков можно использовать бот @golos_witness_monitor_bot

Работа с cli-wallet

Эти действия нужны лишь для первого запуска ноды.

Заходим в cli_wallet ноды.

Добавляем свой пароль к cli_wallet (запишите его и сохраните):

Разблокируем доступ:

Импортируем в cli_wallet наш приватный активный ключ аккаунта-делегата (ключ, который смотреть тут https://golos.id/@lex/permissions, начинается с цифры 5).

Объявляем себя делегатом, с публичным ключом GLS (который мы сгенерировали ранее в паре к приватному ключу для конфига ноды).

Нужно заменить логин, ссылку на пост/аккаунт делегата + публичный ключ.

Публикуем свой первый прайс-фид, заменив на свой логин-делегата.

Для выхода из cli_wallet вводим команду:

Публикация прайсфидов

Запускаем в докере ещё один контейнер, подробнее об этом скрипте можно прочитать здесь.

* нужно заменить логин и приватный активный ключ аккаунта-делегата на свои

Пример скриншота после выполнения команды:

После появления логов с калькуляцией курса GBG, закрываем окно терминала.

Изменения в конфиге

Заходим в конфиг командой:

Вносим нужные правки, нажимаем Ctrl+O, подтверждаем Enter, выходим Ctrl+X.

Перезапускаем контейнер ноды.

Делегатские параметры

Заходим на https://golos.id/~witnesses и напротив своего делегата в столбце “Параметры” нажимаем на значок настроек (описание каждого параметра возникает при наведении мышкой).

Подробнее о значении медианных параметров. Изменить параметры можно и через cli_wallet ноды, заменив логин и выполнив команду. Параметры в порядке появления в хардфорках блокчейна:

Обновление ноды

Ставим “пустой ключ” для ноды чтобы приостановить подпись блоков через параметры на странице https://golos.id/@lex/witness (заменив на свой логин). Или через cli_wallet ноды командой

Останавливаем докер-контейнер ноды и удаляем его

Если в анонсе обновления было указано что нужен реплей, удаляем файл shared_memory.bin

Останавливаем докер-контейнер скрипта прайсфида и удаляем его

Удаляем образы для ноды и скрипта прайсфида

Запускаем контейнер с новой версией

После появления логов вида handle_block "Got 0 transactions on block 34563842 by ...", закрываем окно терминала.

Возвращаем публичный ключ ноды GLS.............. который ранее сбрасывали через параметры на странице https://golos.id/@lex/witness или через cli_wallet, заменив в команде ниже логин, ссылку на пост/аккаунт делегата + публичный ключ на свои:

Возвращаем докер-контейнер скрипта публикации прайсфида (заменив логин и приватный активный ключ аккаунта-делегата на свои)

После появления логов с калькуляцией курса GBG, закрываем окно терминала.

Есть вопросы?

Можно уточнить в чате делегатов https://t.me/golos_witnesses

Last updated