OBOL Techne Credential Program Node Guide | Обол Гайд по ноде
Требования к серверу:
Я взяла СХ41 + 850 ГБ памяти на Hetzner (объединила два диска в один по этому гайду)
Важные примечания:
- для участия необходимо собираться в кластеры (от 4 до 10 человек, оптимальное количество 6-8), поэтому прежде чем устанавливать ноду - соберите себе команду! Так же желающих можно найти в нашем телеграмме или дискорде проекта
- в каждом кластере есть лидер и его участники - для лидера и участников установка немного отличается, поэтому выбирайте раздел гайда, подходящий Вашей роли
- понадобится 32 эфира в сети гоерли (их можно добыть в кране или купить на ОТС) - только для 1го кошелька, не для всех участников!
Подготовка сервера(выполнять всем):
sudo apt-get update && sudo apt-get upgrade -y
sudo apt install -y git curl wget htop bash-completion xz-utils zip unzip ufw locales net-tools mc jq make gcc gpg build-essential ncdu sysstat sudo apt-get install screen libpq-dev libssl-dev pkg-config openssl ocl-icd-opencl-dev libopencl-clang-dev libgomp1 -y sudo apt install apparmor-profiles
Устанавливаем докер и докер компоуз:
sudo apt install -y 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 update && sudo apt install -y docker-ce docker-ce-cli containerd.io sudo usermod -aG docker $USER newgrp docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Выкачиваем репозиторий проекта и создаем ENR ключ:
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.19.0 create enr #вывод команды ниже на скрине
Сохраняем себе на комп файл .charon/charon-enr-private-key, а так же где-то себе записываем enr:-... до конца (понадобится ниже)
Создание кластера (только роль лидера):
- Собираем кошельки всех участников
- Переходим по этой ссылке, конектим кошелек метамаска к сайту и нажимаем "create a cluster with a group"
Далее перейдите к пункту запуск церемонии (для всех)
Заполнение информации (только роль оператора):
Переходим по ссылке, которую Вам выслал капитан кластера и заполняем данные (поле enr key - это вывод последней команды в терминале). После заполнения данных вы увидите такой экран:
Ждем, пока подключатся все участники!
Запуск церемонии(для всех):
Вас перенаправит на вот такую страницу:
Копируем предложенную команду и идем на сервер
cd charon-distributed-validator-node Далее вставляем команду из браузера
В процессе вы будете видеть сколько участников уже подключились:
Такие логи, означают, что подключена Ваша нода и еще две, ждем выполнения команды (подключения всех участников)
Только когда все подключатся, запускаем ноду:
rm -r ./data/lighthouse #удаление данных лайтхауса, если они есть cd charon-distributed-validator-node docker-compose up -d docker-compose logs -f #просмотр логов
Grafana:
http://localhost:3000/d/singlenode/ - замените "localhost" на свой айпи
Бекап ноды:
Сохраните себе все файлы и папку, которые находятся в папке .charon (она находится в папке charon-distributed-validator-node)
Последний шаг (только для лидера кластера!)
Когда все ноды будут работать, нужно файл deposit_data.json из папки .charon скачать на комп и загрузить в браузере, где вы создавали кластер:
Некоторые ошибки, которые могут Вам встретится:
Если контейнер ethereum/client не начинает синхронизацию и пишет такие строки в логах: Snapshot extension registration failed
cd charon-distributed-validator-node nano docker-compose.yml #тут ищем строку --checkpoint-sync-url=… и меняем в ней ссылку на https://goerli.beaconstate.info/ После чего стоит рестартануть контейнеры
Контейнер теку не запускается с таким логом:
Teku failed to start: Manager factory ... Unable to create file
cd charon-distributed-validator-node sudo chmod -R 777 teku После чего стоит рестартануть контейнеры