August 25, 2022
SSV testnet 2 node guide
Минимальные требования к серверу:
Я беру минимальный на хетцнере 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
Создаем директорию для базы данных:
mkdir /root/.ssvdb
Создаем конфигурационный файл(поменяйте значения и копируйте одной командой):
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
Далее необходимо зарегистрироваться на этом сайте! Регистрируемся, как оператор