Ноды
February 6, 2023

Создание и настройка кластера Obol

Obol Network - протокол, способствующий минимизации доверительных ставок за счет проверки несколькими операторами.

Сайт проекта | Документация проекта | Discord | GitHub
Telegram канал сообщества Starnodes

Награды

За текущий тестнет дадут NFT как подтверждение участия в тестнете, а дальше.... посмотрим :)

Минимальные требования

CPU 4, RAM 16 GB, SSD 1 TB

Аренда сервера

1) Хостинг Hetzner - неплохой хостинг для аренды VPS по соотношению цена-качество, подойдет для большинства нод.

2) Хостинг Starnodes - VPS сервера с большой ёмкостью NVME накопителя. Все сервера расположены в датацентре и работают 24/7.

Описание

Проект собрал 12,5 млн $, текущий за текущий тестнет мы получим нфт, за которые скорее всего мы получим награды или попадем в оплачиваемую фазу.

Мы с вами создадим и настроим кластер для участия в тестовой сети Bia.

Участие в текущей тестовой сети предусматривает командную работу над созданием кластера из группы людей от 4х до 10ти человек.

Команду можно поискать в дискорде проекта: #bia_find-a-cluster

Установка это ноды требует слаженной командной работы, так что наберитесь терпения :)

Есть 3 роли для участия: лидер, валидатор (им будет лидер) и операторы узлов.

Для запуска валидатора требуется 32 ETH в сети Goerli. Участие для операторов будет простым, основным шагом будет регистрация команды лидером и запуск валидатора.

Перед началом всем членам команды нужно заполнить эту форму.

Подготовка сервера

Для начала подготовим сервер и установим нужные пакеты:

sudo apt update
sudo apt install htop mc curl tar wget jq bsdmainutils git make ncdu gcc jq chrony net-tools iotop nload clang libpq-dev libssl-dev build-essential pkg-config openssl ocl-icd-opencl-dev libopencl-clang-dev libgomp1 -y

Теперь нужно поставить docker:

sudo apt install wget jq ca-certificates gnupg -y
source /etc/*-release
rm -f /usr/share/keyrings/docker-archive-keyring.gpg
wget -qO- "https://download.docker.com/linux/${DISTRIB_ID,,}/gpg" | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io apparmor -y

Также docker-compose:

docker_compose_version=`wget -qO- https://api.github.com/repos/docker/compose/releases/latest | jq -r ".tag_name"`
sudo wget -O /usr/bin/docker-compose "https://github.com/docker/compose/releases/download/${docker_compose_version}/docker-compose-`uname -s`-`uname -m`"
sudo chmod +x /usr/bin/docker-compose
docker-compose -v

Фаза 1

Данная фаза выполняется операторами и лидером-валидатором.

Клонируем репозиторий:

git clone https://github.com/ObolNetwork/charon-distributed-validator-node.git

Настраиваем права:

chmod o+w charon-distributed-validator-node

Переходим в папку и генерируем приватный ключ:

cd charon-distributed-validator-node
docker run --rm -v "$(pwd):/opt/charon" obolnetwork/charon:v0.13.0 create enr

Сохраняем на ПК файл:

ls $HOME/charon-distributed-validator-node/.charon/charon-enr-private-key

И сохраняем приватный ключ ENR (он понадобится далее):

#Created ENR private key: .charon/charon-enr-private-key 
#enr:-JGKFDS....................................................

Фаза 2

Данная фаза выполняется лидером.

Нам нужно создать кластер и заплатить 32 эфира за валидатора:

https://bia.launchpad.obol.tech

Далее соглашаемся со всеми условиями.

Теперь выбираем настройки кластера, вводим eth адреса операторов

Выбираем количество валидаторов и их ключи enr (каждый валидатор + 32 эфира, достаточного одного на кластер):

Теперь укажите в первой строке адрес, на котором будет 32 эфира на создание валидатора. Далее распределяем награды по участникам, 2% берет команда Obol, остальное я разделил поровну на 7 человек.

Далее проверяем все данные, жмем на кнопку "Deploy Withdrawal Manager" и "Deploy Splitter Contract.

Остается поставить галочку и нажать "Confirm and Sign"

Теперь передаем полученную ссылку вашим операторам:

Фаза 3

Выполняется всеми участниками для завершения регистрации кластера.

Переходим по полученной ссылке от лидера.

Нужно будет подключить свой метамаск с адресом, который вы предоставляли лидеру кластера, и ввести полученный с сервера ключ в формате: enr:-JGKFDS.....

Ждем всех участников:

Когда все завершат регистрацию, нажимаем Continue.

Теперь все участники генерируют ключи в терминале:

Переходим в каталог с нодой:

cd $HOME/charon-distributed-validator-node

Запускаем команду полученную на прошлом шаге:

Когда все операторы запустят команду, вы получите такой ответ и сгенерируете файлы в каталоге .charon. Обязательно сохраните эту папку к себе на ПК.

Далее завершаем регистрацию:

Теперь лидер кластера вносит ETH за участие со своего кошелька, остальным этого делать не нужно!

Загружаем deposit-data.json, который лидер сохранял на ПК из папки .charon

Далее соглашаемся со всем и видим, что кластер создан:

Фаза 4

Запуск ноды, выполняют все.

cd $HOME/charon-distributed-validator-node && docker-compose up -d

Проверяем логи (будет много варнов всяких):

cd $HOME/charon-distributed-validator-node && docker-compose logs -f

Контейнеры которые должны быть запущены:

После запуска проверяем ноды в графане:

http://<ваш IP>:3000/d/singlenode/single-charon-node-dashboard?orgId=1&refresh=10s

Когда все работаем видим такую картинку, нода прогружается первые 5-10 минут:

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

Каждый может узнать как называется пир командой после запуска ноды:

cd $HOME/charon-distributed-validator-node && docker-compose logs | grep peer_name

Ответ будет примерно такой: {"peer_name": "alive-boy"......

Так же если не открывается графана или не происходит синхронизация, то откройте нужные порты.

Нода использует следущие порты (конфликтует с SUI):

tcp 9000 3000 3610 30303
udp 9000 30303 3630

Как все запустились, лидер кластера должен заполнить форму на создание кластера.

Если справились, то большие молодцы, участников пока что немного, тк установка сложная!

@starnodes_ru - наш канал в Telegram с новостями и гайдами по тестнетам.
@starnodes_chat - канал, куда можно обратиться за помощью.