NG
SSV

SSV

Setup Guide

AI Translation
Официальная инструкция доступна здесь.

1. Установка зависимостей

Необходимо установить зависимости для установки оператора, для этого выполните следующие команды:

cd $HOME
wget -q -O $HOME/install.sh https://raw.githubusercontent.com/bloxapp/ssv/main/install.sh
chmod +x $HOME/install.sh
./install.sh

2. Установка оператора

2.1. Генерация ключей

Для оператора необходимо сгенерировать ключи, для этого выполните команду (скопируйте нижний блок целиком и вставьте в консоль):

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

Вы должны увидеть примерно такой вывод:

SSV-0

Верхний ключ – публичный, нижний – приватный. Сохраните эти ключи.

2.2. Получение эндпоинтов

Для оператора мы будем использовать ноду, которую предоставляет сервис Infura, для этого зарегистрируйтесь на сайте infura.io и найдите эндпоинты в своем личном кабинете. Создаём Goerli ETH:

SSV-1
SSV-2
SSV-3
SSV-4

Скопируйте нижнее значение (wss):

SSV-5

Так же нам понадобиться Beacon prater нода, в связи с отключение этого эндпоинта инфурой, нам придётся запустить её на собственном сервере, рекомендуется устанавливать на сервер с диском размером не менее 1TB.
Воспользуйтесь нашим скриптом для быстрой установки:

wget -q -O beacon-prater.sh https://api.nodes.guru/beacon-prater.sh && chmod +x beacon-prater.sh && sudo /bin/bash beacon-prater.sh

SSV-6
Сохраните адреса этих эндпоинтов.

2.3. Создание конфигурационного файла

Для создания конфигурационного файла выполните команды ниже, предварительно заменив <YOUR_HTTPS_BEACON_ETH2_ENDPOIN>, <YOUR_WSS_GOERLI_ETH_ENDPOINT> и <YOUR_PRIVATE_KEY_FROM_2.1> на ваши значения:

export SSV_DB=$HOME/.ssv
mkdir -p $SSV_DB
yq n db.Path "$SSV_DB" | tee $SSV_DB/config.yaml \
&& yq w -i $SSV_DB/config.yaml eth2.Network "prater" \
&& yq w -i $SSV_DB/config.yaml eth2.BeaconNodeAddr "YOUR_HTTPS_BEACON_ETH2_ENDPOINT" \
&& yq w -i $SSV_DB/config.yaml eth1.ETH1Addr "YOUR_WSS_GOERLI_ETH_ENDPOINT" \
&& yq w -i $SSV_DB/config.yaml OperatorPrivateKey "YOUR_PRIVATE_KEY_FROM_2.1" \
&& yq w -i $SSV_DB/config.yaml MetricsAPIPort "15000"

Пример полной команды:


export SSV_DB=$HOME/.ssv
mkdir -p $SSV_DB
yq n db.Path "$SSV_DB" | tee $SSV_DB/config.yaml \
&& yq w -i $SSV_DB/config.yaml eth2.Network "prater" \
&& yq w -i $SSV_DB/config.yaml eth2.BeaconNodeAddr "http://135.181.205.9:5052" \
&& yq w -i $SSV_DB/config.yaml eth1.ETH1Addr "wss://goerli.infura.io/ws/v3/32240b05234QW30b0c95992aa2ea9fd" \
&& yq w -i $SSV_DB/config.yaml OperatorPrivateKey "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMGhsasdasR1FaWXFwSitCbHVYbnJ6WlltSTFSTldsNW9KMTlKeXB5MlE4ClFRS1hQVno5Q2VwYVljNUFLeW54VmSADQVhYSTU1L2xSVnZMNzNpNlVJenhuMGd5TFJwSzFSSG1lcXcKSGIwNnpqU1ZmeW92aWp5OG1ZNXJKOGhkaHVPT283UjltZm5zUmFiMzM2alVZckRpZVJBNFU3UVdGbzhaZ1U4TAo1MnhNVlM1clNvNWp1QTcvV2IwWDdQVUMwYTVwdURKMi9lYUNjUmtwTTEyaE5qemRrZ3NIRjdrWGV2dnNLaGQyCjZCSEx0L0FoT0JVVGNjc0wxd2d3anZhbGRuVlF6cEczdjFxeUJCbHVsTlRDeG9Bb0I3eEw1WHlYaGVhNFFEM3MKVFhmdXVLTDNaMjFHMDFaclVBNGhVZE9KOC9qS0RUcnlNTmQwR1FJREFRQUJBb0lCQUFsL3NuMnZWbk5qY3ZCKwpzL1dLUi81Ymw4QktnMzJLT1NSU2tIeWFlMkRDMEg1c21yakp1RExEQ0lHeFFjTFlRMWh3UGdRRWhjNkgyYTIrCndZcFB1Uzd4V0NTTmJqdmpqVm0xQUkxeWNxck4xYXJrekcrYnhaUGJGc000RWd3cThNLzBlMjNDQmxCNTYxSUYKY0FSTkkxeUd6d0FpcnUrRFZjbnBiTktEK3Rlc0xZYVhJYlpkMXB6L3ZZSnJ5c0RpUXhnZjFsZGZ3VGV3aDVnUAo2eW9mYTVzcGt5eURPckF0UDhsRmg1cmRpZHVXOXRaaHJpZGxQNkd6a1YxV1gvR1N6djd5MWVZSjVGVElRNXd6CkJ3b2NrUksxYmk0RFNIZWFhMUxwQ3VJczE5M1NWNnc5bUR0cW02cG5ZWGNxY2Zqemc1MTRmWUt0YWxVbVkvTXEKQWRVTm5HMENnWUVBLzEyeG4vTk9zc3cveE81SktFNmtrUFhJcG1ENjZNWHZKeEtOaGVWNHBLUm93YS9jWlVEYwpBQk95SkJvQVZKSlM1ZE5SMG1LVFpIY2FDMDdFYlg1WHNuYUVxQ2k0WDJScmxDdjQvMVNLcUVuTWs2SHd0Z2tECitlajBZWWpEZldjWk5QMitQbEZBRS9Kd1VVcUcyNERIUG4vY0Vob3JmaUdPVmdpWWhxbFN5Z01DZ1lFQTBwN3YKajVmaFlhWWF3WG5LOW1nMGJ3eGFMbVdGYVg2WDFvTElBQW56TkEvT0x0UVVodXJ0OVRWUUZheFNVUEFGQUxGeQpPTEJtTlpRRmJTNjNSQkRDMzVOVXQ4SENBQWR5S01ROHIxVlZWZWhrekNMamZXb0lsYThmTWpvdjVaNWxXL3Y1ClgvZE9xQ1MyMmJ0ekpyQUFPT2tSdjNUcmI3eVVzWktYY3B2ZXZMTUNnWUVBdERxK1dITnlRY0xoNXUxK2VKSTQKbDQ3QWxKeXh1WU9wTEZ4dHdlaVk0eXFlUE1VUHVlNnkxdU1Qd1djUWdKL2RIaE90RmQwNHhabEJxbVZuUVJnQQpjUll3dmpZdkdqUlhzUFh3QU5UOEg1WW1hclBLbmM5ekhQaUxNaU5DUmNsMEF2QnJTclF4azJKeVh3MUliTGRRCjZBMTVsdFVkaVNISndYTERvNWJ4dFYwQ2dZQm5RSU13WWNTYm1sS0RockY1R3B5WjAvUmh5bU1jMUhLYk5vSFYKZ3dzMitvaVpiRjZqeFlmaUxjQ1UzMlY3U0M4cnA5SFcrS01pb080SUdGNi9mM2dKSXJEbFpKYzJiSEFLakNregp5eUdLZStMdU1DeFZ6eVZtTy9PUEsvZFBHZGVXd0hBQUc3enpzUXZ5c1hKQ0JRWVc0Q3RUTUg0NnlMZ2NWVURwCmJvQkRBUUtCZ1FEQlgrTnhWTURFMU5hWWRyUStZYm9ZREV0K0VoanVSbGczV1lXdkNDbk9hbktLV2cvMzVNY3MKNlQvc3Q2VVBKbDlSZmRwN2ZWbXQyek81QUEvUHB4Qi95K2ZIaTlQdTVJZFRRcWxaNFBMcDVFVzRwSksyZ0h3Rgo4ekllTU1WYXVpOXlzb09helpQditmMy9YVHM3MW0zSTBEY1ZveU1saEthYkw2R3RNRzBHbXc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo" \
&& yq w -i $SSV_DB/config.yaml MetricsAPIPort "15000"
Не нужно пытаться вводить команду выше, она дана исключительно для примера.

2.4. Запуск оператора

Выполните команду ниже:

docker run -d --restart unless-stopped --name=ssv_node -e \
CONFIG_PATH=./config.yaml -p 13001:13001 -p 12001:12001 -v \
$SSV_DB/config.yaml:/config.yaml -v $SSV_DB:/data -it \
'bloxstaking/ssv-node:latest' make BUILD_PATH=/go/bin/ssvnode start-node

Проверьте логи:

docker logs ssv_node --follow --tail=50

Должно быть примерно так:

SSV-8

2.5 Регистрация оператора

Для регистрации оператора вам понадобятся монеты ETH в тестовой сети Goerli, кран доступен здесь.
Перейдите на сайт приложения SSV, нажмите Connect Wallet, затем Join as operator:

SSV-9
SSV-10

Заполните форму оператора, для этого вам потребуется публичный ключ из пункта 2.1:
SSV-11
SSV-12

Перепроверьте данные и если все верно нажмите Register Operator:

SSV-13
После этого должно появиться окно вашего кошелька с просьбой подтвердить транзакцию, подтвердите.
Теперь вы оператор SSV Network! Нажмите Manage Operator для просмотра информации о своём операторе.
SSV-14

3. Валидатор ETH2

3.1. Регистрация валидатора

Вам нужно иметь 32+ ETH в сети Goerli для создания валидатора.
Кран доступен в дискорде, раздел deposit-bot

Создайте валидатора через Ethereum Launchpad, для этого следуйте действиям на скриншотах:

SSV-15

SSV-16

SSV-17

SSV-18

SSV-19

Теперь нам нужно сгенерировать ключи и сохранить их к себе на ПК, для этого воспользуйтесь FTP утилитами (WinSCP (Windows), Cyberduck (MacOS) или любыми другими на ваше усмотрение). Выполните команды ниже для генерации ключей и следуйте скриншотам:

cd $HOME
wget -O staking_deposit-cli-76ed782-linux-amd64.tar.gz https://github.com/ethereum/staking-deposit-cli/releases/download/v2.3.0/staking_deposit-cli-76ed782-linux-amd64.tar.gz
tar xvf staking_deposit-cli-76ed782-linux-amd64.tar.gz
mv ~/staking_deposit-cli-76ed782-linux-amd64/deposit /usr/local/bin/
deposit new-mnemonic --num_validators 1 --chain goerli

Выберите язык (или просто нажмите Enter если хотите оставить английский), введите желаемый пароль, повторите пароль:

SSV-20
Сохраните мнемонику:

SSV-21
Введите сохраненную мнемонику:

SSV-22
Дождитесь генерации ключа, нажмите любую клавишу для выхода:

SSV-23

Запомните путь к папке с вашими ключами, в нашем случае это /root/validator_keys.

Продолжите регистрацию через Ethereum Launchpad, следуйте скриншотам:

SSV-24

Загрузите сюда файл deposit-data-[timestamp].json (где [timestamp] – время создания файла в формате timestamp), он расположен в папке validator_keys, которую вы сохраняли выше. После этого нажмите Continue.

SSV-25

Выберите метамаск, у вас должна быть активна тестовая сеть Goerli.

SSV-26

Нажмите правой кнопкой мышки на Continue и выберите просмотреть код, измените disabled на enabled как показано выше.

SSV-27

Поставьте везде галочки и нажмите Continue.

SSV-28

Нажмите Send Deposit, в метамаске выберите HEX и скопируйте шестнадцатеричные данные, они нам понадобятся для получения ETH.
Перейдите в дискорд раздел deposit-bot и следуйте инструкции бота. После того как бот выполнит транзакцию, просто закройте окно метамаска и перейдите к П.4.

4. Запуск SSV валидатора

Перейдите в приложение SSV, подключите кошелек, нажмите Run validator и следуйте скриншотам:

SSV-29

SSV-30

Загрузите keystore файл из папки validator_keys, которую сохраняли ранее:

SSV-31

Введите пароль, который устанавливали для ключа:

SSV-32

Выберите четырех операторов (не забудьте выбрать своего оператора, наш оператор – NodesGuru):

SSV-33

SSV-34

Подтвердите, что ознакомлены с механизмом слешинга:

SSV-35

Перепроверьте данные и нажмите Run validator:

SSV-36

Подтвердите транзакцию в вашем кошельке и ожидайте подтверждения:

SSV-37
SSV-38
SSV-39

После этого выбранные вами операторы начнут работать с вашим валидатором в следующих эпохах.

Дополнительно

Обновление оператора:

export SSV_DB=$HOME/.ssv
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 \
$SSV_DB/config.yaml:/config.yaml -v $SSV_DB:/data -it \
'bloxstaking/ssv-node:latest' make BUILD_PATH=/go/bin/ssvnode start-node

Посмотреть логи:

docker logs ssv_node --follow --tail=50
Stuck? Ask!

By continuing to use our website, you consent to our use of cookies in accordance with our cookie policy