Obol: installation guide
Obol Network - протокол, способствующий минимизации доверительных ставок за счет проверки несколькими операторами. Это обеспечит доступ с низким уровнем доверия к доходности стейкинга Ethereum, который можно использовать в качестве основного строительного блока в различных продуктах Web3. Obol Network создается командой исследователей и разработчиков программного обеспечения, специализирующаяся на инфраструктуре проверки доли владения для общедоступных сетей блокчейна. Особое внимание уделяется таким темам, как интернет-облигации, технология распределенных валидаторов и мультиоператорная валидация. В настоящее время команда состоит из 20 человек, разбросанных по всему миру.
В раунде А проект собрал 12,5М долларов от Pantera, Coinbase Ventures, Spartan, Ethereal Ventures и др.
P.S. Учитывая специфику проекта, одиночное поддержание ноды невозможно, все операторы собираются в кластеры от 4 до 10 человек. Вы может организовать свой кластер с друзьями либо присоединится к стороннему кластеру в канале #bia-find-a-cluster. Также, для запуска своего кластера понадобится 32 ETH Goerli. Список кранов, с которых можно насобирать токены - https://faucetlink.to/goerli
Лидер (или валидатор) - узел, который создает кластер, а также валидирует ноду эфира (сеть Goerli). Для запуска необходимо 32 Goerli ETH.
Оператор - один из участников кластера, проверяет транзакции кластера. Для корректной работы кластера 75% операторов должны быть активны.
Website
Discord
Оглавление
- Подготовка сервера
- Инструкция для лидеров
- Инструкция для операторов
- Выход из кластера
- Обновление v0.14.0
- Удаление ноды
- Полезные команды
Подготовка сервера
Данная нода требует достаточно много ресурсов. Минимальные требования: CPU - 4+ ядер, RAM - 16 GB+, SSD - 1 TB+ (занятое место будет постоянно расти, в настоящее время (2 февраля 2023) нода занимает 360GB). Не пытайтесь запускать на серверах с меньшими параметрами, так как ваша нода работать не будет и может подставить остальных участников кластера. Подходящий выделенный сервер можно поискать на аукционе Hetzner.
sudo apt-get update && sudo apt-get upgrade -y
Устанавливаем инструменты разработчика и необходимые пакеты
# скачиваем необходимые зависимости одной командой sudo apt-get install curl wget git screen jq libpq-dev libssl-dev \ build-essential pkg-config openssl ocl-icd-opencl-dev \ libopencl-clang-dev libgomp1 -y
Устанавливаем docker и docker-compose
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
Опционально. Устанавливаем apparmor
sudo apt install apparmor-profiles
Все дальнейшие действия как лидерам, так и операторам, необходимо проводить в скрине.
screen -S obol
Если вы не знаете, как работает screen, изучите данную статью
Инструкция для лидеров
Если вы планируете создать свой кластер, вам необходимо со всех ваших операторов собрать адреса эфира (формат: 0x....................................). Минимальное количество операторов 3 (помимо вас), максимальное 9.
git clone https://github.com/ObolNetwork/charon-distributed-validator-node.git
cd charon-distributed-validator-node
Опционально. Даем разрешение для создания директорий
mkdir .charon chmod a=rwx /root/charon-distributed-validator-node/.charon
docker run --rm -v "$(pwd):/opt/charon" obolnetwork/charon:v0.13.0 create enr
Процесс занимает некоторое время, после успешного завершения вы увидите свой приватный ключ, начинающийся на enr:
#Created ENR private key: .charon/charon-enr-private-key #enr:-JG4QGQpV4qYe32QFUAbY1UyGNtNcrVMip83cvJRhw1brMslPeyELIz3q6dsZ7GblVaCjL_8FKQhF6Syg-O_kIWztimGAYHY5EvPgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQKzMe_GFPpSqtnYl-mJr8uZAUtmkqccsAx7ojGmFy-FY4N0Y3CCDhqDdWRwgg4u
Копируем ключ в блокнот, и делаем бэкап файла .charon/charon-enr-private-key
Создание конфигурационного файла DKG
Переходим на сайт https://bia.launchpad.obol.tech/ и подключаем кошелек, на котором есть 32 Goerli ETH. Список кранов, с которых можно насобирать токены - https://faucetlink.to/goerli
Прокручиваем страницу и выбираем создать кластер
Дальше соглашаемся со всеми условиями и доходим до страницы с конфигурациями кластера, в которой вводим название кластера, количество операторов и их адреса (который собрали на первом шаге)
Также вы можете добавить еще одного валидатора (на его счету также должно быть 32 ETH), однако это не обязательно. Оставляем одного валидатора и вводим свой enr ключ (в формате enr:-...................................)
Вводим адрес, на котором есть эфир, а также адрес (или адреса) на который будут капать реварды. На скрине ниже указана конфигурация, когда все реварды отправляются на один кошелек (2% забирает себе пул Obol). Количество адресов и проценты наград можно выбрать любые. Нажимаем кнопку "Создать конфигурацию кластера".
На следующей странице проверяем данные, нажимаем кнопку "Deploy Withdrawal Manager" и подтверждаем данные.
В открывшемся окне копируем ссылку и отправляем всем валидаторам
Отправляем данную ссылку своим операторам и ждем пока все присоединятся.
Выполняем полученную команду на своем сервере. Для успешного завершения этапа все операторы должны выполнить эту команду и завершить подготовку кластера. Данная команда одинаковая для всех участников кластера.
По завершению DKG появляются новые файлы, которые необходимо забэкапить - deposit-data.json
, cluster-lock.json
и папка validator_keys/
. Все они находятся в папке .charon
Для запуска ноды используем следующие команды
rm -r ./data/lighthouse 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
Если вы видите примерно такую картину, то все хорошо, ваша нода работает и синхронизируется
После завершения синхронизации (около 10 часов, размер директории 350-370GB) можем внести депозит.
Переходим по ссылке, соглашаемся с условиям, загружаем файл deposit-data.json
, подключаем кошелек и вносим депозит в размере 32 ETH.
В дашборде графаны, прокрутив вниз вы увидите свой адрес валидатора, нажав на который можно увидеть через сколько времени ваш кластер будет активен (у меня заняло около 10 часов).
Инструкция для операторов
Копируете в метамаске ваш адрес эфира и отправляете его Вашему лидеру.
git clone https://github.com/ObolNetwork/charon-distributed-validator-node.git
cd charon-distributed-validator-node
docker run --rm -v "$(pwd):/opt/charon" obolnetwork/charon:v0.13.0 create enr
Процесс занимает некоторое время, после успешного завершения вы увидите свой приватный ключ, начинающийся на enr:
#Created ENR private key: .charon/charon-enr-private-key #enr:-JG4QGQpV4qYe32QFUAbY1UyGNtNcrVMip83cvJRhw1brMslPeyELIz3q6dsZ7GblVaCjL_8FKQhF6Syg-O_kIWztimGAYHY5EvPgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQKzMe_GFPpSqtnYl-mJr8uZAUtmkqccsAx7ojGmFy-FY4N0Y3CCDhqDdWRwgg4u
Копируем ключ в блокнот, и делаем бэкап файла .charon/charon-enr-private-key
Создание конфигурационного файла DKG
Получаем от лидера ссылку для регистрации в формате https://goerli.launchpad.obol.tech/dv#0x...
Переходим по ссылке и выполняем все действия.
По окончании регистрации вы получите команду для выполнения на сервере
Для запуска ноды используем следующие команды
rm -r ./data/lighthouse cd $HOME/charon-distributed-validator-node && docker-compose up -d
По завершению установки проверяем логи
cd $HOME/charon-distributed-validator-node && docker-compose logs -f --tail 10
Множество варнов и ерроров нормально, главное чтобы логи шли. Проверяем работоспособность ноды в графане
http://<ваш IP>:3000/d/singlenode/single-charon-node-dashboard?orgId=1&refresh=10s
Если вы видите примерно такую картину, то все хорошо, ваша нода работает и синхронизируется
Выход из кластера
Создаем переменную с номером эпохи
export EXIT_EPOCH=162304
Вводим команду для выхода из кластера
cd && cd charon-distributed-validator-node docker exec -ti charon-distributed-validator-node-teku-1 /opt/teku/bin/teku voluntary-exit --beacon-node-api-endpoint="http://charon:3600/" --confirmation-enabled=false --validator-keys="/opt/charon/validator_keys:/opt/charon/validator_keys" --epoch=$EXIT_EPOCH
При успешном выходе из кластера вы получите следующий вывод
После выхода 2/3 операторов из кластера начнется процесс выхода, который можно отслеживать в эксплорере
Через 27 часов можно заклеймить награды и стейк по ссылке
https://bia.launchpad.obol.tech/bia-claim?configHash=<ваш_config_hash>
Config_hash находится в файле cluster-lock.json в папке .charon
Обновление v0.14.0
Сообщите другим операторам в вашем кластере о том, что планируете обновляться. Это позволит избежать
cd $HOME/charon-distributed-validator-node docker-compose down
nano docker-compose.yml
Находим строку image: obolnetwork/charon:${CHARON_VERSION:-v0.13.0}
image: obolnetwork/charon:57ca044
По итогу у вас должно получиться так:
cd $HOME/charon-distributed-validator-node && docker-compose up -d
cd $HOME/charon-distributed-validator-node && docker compose logs -f --tail 10
Проверяем версию в графане - http://<ваш IP>:3000/d/singlenode/single-charon-node-dashboard?orgId=1&refresh=10s
P.S. Версия в графане может не сразу отображаться и выдавать ошибку в блоке App Info. Это нормально, подождите ~10 минут.
Удаление ноды
cd $HOME/charon-distributed-validator-node && docker-compose down -v
Важно!!! Сохраняем на компьютер папку .charon
rm -rf $HOME/charon-distributed-validator-node rm -rf $HOME/.charon
Полезные команды
cd $HOME/charon-distributed-validator-node && docker-compose logs -f
cd $HOME/charon-distributed-validator-node && docker-compose restart
cd $HOME/charon-distributed-validator-node && docker-compose down cd && rm -rf charon-distributed-validator-node