SSV
Децентрализованная сеть для стейкинга ETH
Требования к серверу
Минимальные (VPS/VDS/DS): 4 CPU, 8 GB RAM, 50+ GB HDD/SSD, Ubuntu 20.04
Рекомендуемые (VPS/VDS/DS): нет данных
Я взял на Zomro сервер, который изначально планировал использовать под Massa из предыдущих гайдов.
Где взять сервер?
Zomro: https://zomro.com/?from=325249 либо по промокоду zomro_325249
(Дадут скидку 20% на первый заказ)
Ноду лучше не подселять к массе, т.к. SSV потребляет примерно 15-30% мощности, но Вам никто не запретит, однако я врядли смогу быстро и оперативно помочь Вам в случае каких либо проблем, т.к. сам делал на отдельном сервере.
Награды
Обещают раздать пул в 32000 SSV токенов(1 ssv ~ 9-10$ на момент написания статьи), однако цифра может измениться.
Оплачиваемый тестнет стартует 12 января 2022г.
Сколько он продлится, пока неизвестно.
Как будет точная информация, гайд будет дополнен.
Подключение сети Goerli в Metamask
Необходимо подключиться к сети Goerli в Вашем кошельке Metamask
Для удобства выписываю данные ниже:
- Имя: Goerli
- RPC: https://rpc.goerli.mudit.blog/
- ID цепочки: 5
- Символ валюты ETH, либо gEth(как хотите, можете хоть битками или фантиками назвать, но у меня ETH)
- URL адрес проводника: https://goerli.etherscan.io/
Запрос тестовых токенов
Но скорее всего 10-11 числа токены можно будет запросить в дискорд сервере SSV https://discord.gg/ssvnetwork
в разделе #Goerli-Requests либо через тикеты на сервере.
Установка и настройка
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
Вы должны увидеть примерно такой вывод:
Верхний ключ – публичный, нижний – приватный. Сохраните эти ключи.
2.2. Получение эндпоинтов
Для оператора мы будем использовать ноды, которые предоставляет сервис Infura, для этого зарегистрируйтесь на сайте infura.io и найдите эндпоинты в своем личном кабинете:
Выбираем в ENDPOINTS "Gorli" и копируйте нижнее значение (wss):
Копируем и сохраняем в блокнот
Далее проделайте то же самое для получение Beacon ноды ETH2:
В ENDPOINTS выбираем "Prater" и копируем адрес с HTTPS.
Не перепутайте!!! Нужен HTTPS, а не WSS
Сохраните адреса этих эндпоинтов.
2.3. Создание конфигурационного файла
Для создания конфигурационного файла выполните команды ниже, предварительно заменив <YOUR_BEACON_ETH2_ENDPOINT>, <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_BEACON_ETH2_ENDPOINT>" \ && yq w -i $SSV_DB/config.yaml eth1.ETH1Addr "<YOUR_WSS_GOERLI_ETH_ENDPOINT>" \ && yq w -i $SSV_DB/config.yaml eth1.RegistryContractAddr "0x687fb596F3892904F879118e2113e1EEe8746C2E" \ && yq w -i $SSV_DB/config.yaml MetricsAPIPort "15000" \ && yq w -i $SSV_DB/config.yaml OperatorPrivateKey "<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 "https://LKDSGHLh21o33lhjg:l3j5903252398hkj23jk@eth2-beacon-prater.infura.io" \ && yq w -i $SSV_DB/config.yaml eth1.ETH1Addr "wss://goerli.infura.io/ws/v3/1clkdfoippo453j" \ && yq w -i $SSV_DB/config.yaml eth1.RegistryContractAddr "0x687fb596F3892904F879118e2113e1EEe8746C2E" \ && yq w -i $SSV_DB/config.yaml MetricsAPIPort "15000" \ && yq w -i $SSV_DB/config.yaml OperatorPrivateKey "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBenZDNW9Wb3NtTDhzMUtUM1lvc2Z1bVlTVkRUN0tVS0ZMMmJqYTM3b3N5QlRLdGM3ClJCQUZBK0JPSHpTbU45SFZBUHIzQmR2bFRodXh3cnN0OEJheHNObFNWb0xRRlhRazBVTnNCMk04OGtJbWJ3azAKMlo3U3JRMGl3RURDODcyTUoxcjNjRHI4aXR1UUk2RURJRnVXSzJNM1hrMWhIS1V3MGliOFg0MUlFY29rK1NzLwpSTHBjaVBzT2FLem5WRnFnNEp6dk1ISnFkY3c0eEN5UVRyM2twc0JobktNMWd5Z2RSTm54VzlLck1WNW1hNEhpCmhsd1NvM0l6OEdZRjZaYjBTT2VMT3VlZ2JWRFk1aWtQd21XTXdEMVdaY09jbWhMN3gvMXlReWxzY0p2SkhXK1YKRW9wbUFJU3BuZ0JpZ0o4RTJmTWNEaEpwL3hkRFpsTXRnQ0xOc3dJREFRQUJBb0lCQUczdmRLNURPVzNzSWVUVgp2cGFiVWoreitnakNIS3ZPcXZLRHRrMWxIam9LOGlQUU02djAxclU0ZEVnZnNDMzNTekU2SWdENjBOYXQzOEdUCnJ0UGRPb2k0NndVS2VZRHNNcUw1TG1xK1RhSmxnZ1Y2M3BpOXh5NG56RTVXR1R0amR4RnhRZ0pkVTh4dzJDSVYKWjVQSkUvMzR0M0ZocWpXTmpHSVlVL3B2RTlwZWs5RFovT2FTRFJ6QlRoRDdHSUlBcVFIbHVuekM2Wi9VQ0xhcwpFV1FvOWFBUHFCL2lzZXY3ODhYczZCYXAraVNQNkZVUFVjMk9HSEhiNnVrQkpqcklGc0MvdU1wZ1NsOWt3MUtaClprMVc2ME8yTldPc2xXNzdHOHhsWW1uT0NZZWZ2Z0hCbFo0djRJdlh5Z2RoaHpuWnBObFBieWgzMGdyQmhQRTYKTExaWXdBRUNnWUVBK3RXRTRHOUVhZUo5eDVPZnZyNmFMZ0FpVTExekszaEpwdXRSVUtCWkdBdUZCTHZYR1BWSgoxS24rSFpzT3N2bUJKbW5TbVhQdGNLOE1ZUS9MN29FMHhiRy9ZZmFUalFDUU9ReTl6enVIbmNTbVVwRkdBKzlLCjdISncyeTlmZzhmVFhwMkp1SXpzRFJDZitrSVg0VEd0bGxncjdPcFBEeUw5dVNQNWRrTTJBZ2NDZ1lFQTB6UEkKbjB6aFZTRTA5am9wRnJsVTFwOXQ3ZXh0alZLMEoycFp4eGRnWDlXTHhmQzN2c3lXL2NTQU1kZ3BmanFkSjd3WgpXa1Y5NGZSN3V0ZFdOdmVTaGc0TTZpSkMrMjFZMXZpOHQwMEJTRExmaVVscTB0RS9ncEszaWtKOXhFUEdCWXdpCjNiTTVwcDJZd215SGROOHNCNHRHcHJxSkN0ZEFBMHc5UXFWYSsvVUNnWUJOaFB1QjJTRk5qLy9MVkNaRWJ1ZDcKVy9NL3pGdXhqWVZGbnVnTWdPSEgrcGRyZFJudXpxKzRsNmkvUVpKellZUzJlSEhybHRaRXd2U1NjcTFWMG55YQp0R292UG1NdmFvTW4vbllTdTVVWC94UmY1Q0c5U1pEZ0xpWU90ejlQbk13SUs2dkthMUx3WHJqeVFNYmNnOXZmCjRQUUNUZytNNEFXRjJFWmFkRDhXdFFLQmdDd2YyWDVPbFpVdmh0MGFjWk1welN1NXkwRzE3MzFqRmZoV0k4T1EKZ3JZQzYxekRXZUFtNWpUR1pQSUU4MFpJQUtWWWl3TnRHVXVueEdIWXMwNXdrdEFuQjFPekxNTlNxUWpnbHF6RgpEY3VEdFdmOVNyQVl2MmdNTndSUHQrN1ZLZjNtdFRJVVM2c2ZxZGFVemdnQXlEWWJSdnQyWlVNNmpVa2pHSGxnCkNvNHhBb0dBTGVwaTIzdDJwbUo2Yk9WWFEwUCtjNGFlbDVRQXcrL3FPdFZyclJ6eUFuNGlLTlREczNIdGJ2M3cKWEFWSWtmQzVaa21Qc21pVTBMSVU3aXkwOW15QVBLc3JwbTM5OWt2ZUhXSEdjY29ENjQ5d0g4Z0c2TGRJUTB4UwpEc0lHNk9HVW1vVTNySjRtbmNIaS9kQVVCNzJlRUlnNksyeUIyeTRIYnR4Q0dlYnlMeWc9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg=="
Не нужно пытаться вводить команду выше, она дана исключительно для примера.
Пример на скриншоте, как собрал команду я:
Далее копируем нашу команду на сервере и вводим ее на сервере(правая кнопка мыши для вставки)
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
Наличие "WARN"-ов — это нормально. Проигнорируем этот момент. В будущем с обновлениями будет всё ок.
2.5 Регистрация оператора
Кстати сайт где мы будем регистрироваться, у меня почему то "глючит", надеюсь у вас будет всё ок.
Для регистрации перейдите на сайт приложения SSV, нажмите Connect Wallet, затем Join as operator:
Заполните форму оператора, для этого вам потребуется публичный ключ из пункта 2.1:
Перепроверьте данные и если все верно нажмите Register Operator:
После этого должно появиться окно вашего кошелька с просьбой подтвердить транзакцию, подтвердите. Затем вы должны увидеть такое окно:
Теперь вы оператор SSV Network!
3. Валидатор ETH2
3.1. Регистрация валидатора
Создайте валидатора через Ethereum Launchpad, для этого следуйте действиям на скриншотах:
Выбираем Geth и внизу жмем продолжить.
Также выбираем Prysm и жмем продолжить
Далее вводим количество валидаторов: 1
Прокручиваем вниз, жмем галочку и далее
Вам нужно иметь 32+ ETH в сети Goerli для создания валидатора.
Теперь нам нужно сгенерировать ключи и сохранить их к себе на ПК, для этого воспользуйтесь FTP утилитами (WinSCP/Filezilla/Mobaxterm (Windows), Filezilla/Cyberduck (MacOS) или любыми другими на ваше усмотрение). Выполните команды ниже для генерации ключей и следуйте скриншотам:
cd $HOME wget -q -O $HOME/eth2deposit-cli-256ea21-linux-amd64.tar.gz https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v1.2.0/eth2deposit-cli-256ea21-linux-amd64.tar.gz tar -xzf $HOME/eth2deposit-cli-256ea21-linux-amd64.tar.gz $HOME/eth2deposit-cli-256ea21-linux-amd64/deposit new-mnemonic --num_validators 1 --chain prater
- Выберите язык (или просто нажмите Enter если хотите оставить английский), введите желаемый пароль, повторите пароль:
Я выделил и нажал Ctrl+C на Windows.
Запомните путь к папке с вашими ключами, в нашем случае это /root/validator_keys.
Продолжите регистрацию через Ethereum Launchpad, следуйте скриншотам:
Загрузите сюда файл deposit-data-[timestamp].json (где [timestamp] – время создания файла в формате timestamp), он расположен в папке validator_keys, которую вы сохраняли выше. После этого нажмите Continue, подключите кошелек и продолжите регистрацию.
4. Запуск SSV валидатора
Перейдите в приложение SSV, подключите кошелек, нажмите Run validator и следуйте скриншотам:
Загрузите keystore файл из папки validator_keys, которую сохраняли ранее и введите пароль, который также вводили ранее при генерации файлов:
Выберите четырех операторов (не забудьте выбрать своего оператора, мой оператор – MrNix0n; для удобства поиска жмите на выпадающий список и используйте CTRL+F или command+F, далее вводите название оператора)
Сверху указал моего активного оператора, проверяйте адрес(начало и конец) если будете выбирать меня. Также рекомендую выбирать проверенных(верифицированных операторов)
Подтвердите, что ознакомлены с механизмом слешинга:
и не забудьте скопировать адрес валидатора, он нам понадобится
Перепроверьте данные и нажмите Run validator:
Подтвердите транзакцию в вашем кошельке и ожидайте подтверждения:
После этого выбранные вами операторы начнут работать с вашим валидатором в следующих эпохах.
Как проверить что всё хорошо и узнать эффективность своей ноды
https://prater.beaconcha.in/validator/Адрес_вашего_валидатора
https://prater.beaconcha.in/validator/95a8d7d6a0d9c0d2b09962e5bdf21be98d96c50b8172acea2d9b3e9eb9131c68dadebf14646e442d02426d78c51e4945#deposits
К сожалению, по ошибке дважды отправил себе 32 eth. Если статистика не будет исправляться или техподдержка не скажет что всё ок, то буду запускать другую ноду.
В следующих значениях нам желательно видеть цифру больше 80%
Дополнительно
Обновление оператора:
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