Минимальные требования к серверу:- 1 CPU
- 2 GB RAM
- 5 GB storage
Я беру минимальный на хетцнере CPX11
Установка ноды:
Для начала на хетцнере отредактируйте firewall rules и добавьте такие порты:
Код:
sudo su
#переключаемся на режим супер пользователя, это позволяет дальнейшие команды запускать без sudo
wget https://raw.githubusercontent.com/bloxapp/ssv/main/install.sh
#выкачиваем скрипт установки, предложенный командой
chmod +x install.sh
#добавляем право на исполнение файлу
./install.sh
#запускаем исполняемый файл
Геренерируем ключи оператора(вставляем одной командой):
Код:
docker run -d --name=ssv_node_op_key -it 'bloxstaking/ssv-node:latest' /go/bin/ssvnode generate-operator-keys && docker logs ssv_node_op_key --follow && docker stop ssv_node_op_key && docker rm ssv_node_op_key
#В выводе команды будет два ключа - public и secret, сохраните их себе, учтите, что secret ключ не стоит нигде светить
Теперь нам необходимо создать две ethereum ноды, для этого воспользуемся сервисом
Infura, вот краткое описание шагов, далее создание покажу в скринах(выполняем сначала для первой ноды, потом для второй):
- Проходим регистрацию
- Создаем два ключа - один в сети Ethereum, второй в сети ETH2
- Имена придумываем
- В первом необходимо выбрать сеть Gorli, во второй Prater
- В первой ноде копируем url для websocket, во второй для https
- Записываем два url
Процесс создания ключа(ноды):
Возвращаемся в терминал
Создаем директорию для базы данных:
Создаем конфигурационный файл(поменяйте значения и копируйте одной командой):
Код:
yq n db.Path "/root/.ssvdb" | tee config.yaml \
&& yq w -i config.yaml eth2.Network "prater" \
&& yq w -i config.yaml eth2.BeaconNodeAddr "<ETH 2.0 node>" \
&& yq w -i config.yaml eth1.ETH1Addr "<ETH1 node WebSocket address>" \
&& yq w -i config.yaml OperatorPrivateKey "<private key of the operator>" \
&& yq w -i config.yaml global.LogLevel "debug" \
&& yq w -i config.yaml MetricsAPIPort "15000"
#<ETH 2.0 node> - заменить на https url c ноды в сети ETH2
#<ETH1 node WebSocket address> - заменить на websocket url из первой ноды
#<private key of the operator> - заменить на приватный ключ из команды выше
Запускаем ноду в докер контейнере(копируем одной командой):
Код:
docker run -d --restart unless-stopped --name=ssv_node -e CONFIG_PATH=./config.yaml -p 13001:13001 -p 12001:12001 -v $(pwd)/config.yaml:/config.yaml -v $(pwd):/data -it 'bloxstaking/ssv-node:latest' make BUILD_PATH=/go/bin/ssvnode start-node
docker logs ssv_node --follow
Если нужно обновить ноду:
Останавливаем докер контейнер:
Код:
docker container ls
#запоминаем айди контейнера
docker container stop <CONTAINER_ID>
#<CONTAINER_ID> - заменить
Обновляем:
Код:
docker rm -f ssv_node && docker pull bloxstaking/ssv
-node:latest
Запускаем докер контейнер:
Код:
docker run -d --restart unless-stopped --name=ssv_node -e CONFIG_PATH=./config.yaml -p 13001:13001 -p 12001:12001 -v $(pwd)/config.yaml:/config.yaml -v $(pwd):/data -it 'bloxstaking/ssv-node:latest' make BUILD_PATH=/go/bin/ssvnode start-node
Смотрим логи:
Код:
docker logs ssv_node --follow
Далее необходимо зарегистрироваться на
этом сайте! Регистрируемся, как оператор