Ноды
August 31

Установка ноды Elixir

Elixir — это модульная сеть на основе DPoS (Delegated Proof of Stake), разработанная для обеспечения ликвидности на биржах с книгами ордеров.

Elixir поддерживает кросс-чейн взаимодействие и легко интегрируется: он позволяет децентрализованным биржам с книгами ордеров нативно внедрять Elixir Protocol — децентрализованный протокол — в свою основную инфраструктуру для обеспечения ликвидности для торговых пар, а также других интересных применений. Децентрализованная сеть служит важной базовой инфраструктурой, позволяющей биржам и протоколам легко привлекать ликвидность к своим торговым книгам.

Сайт проекта | Документация проекта | Discord | Twitter
Telegram канал сообщества Starnodes

Награды

Пока что TBA

Проект собрал

$ 17.60M

Минимальные требования

CPU 2, RAM 4 GB, SSD 100 GB

Используемые порты:

17690/tcp - метрики

Аренда сервера:

1) Хостинг Hetzner - неплохой хостинг для аренды VPS по соотношению цена-качество, подойдет для большинства нод.

Подготовка сервера

Для начала подготовим сервер и установим нужные пакеты:

sudo apt update && \
sudo apt install -y curl git build-essential jq lz4 unzip tar mc chrony htop ncdu nload screen

Так же установите Docker:

sudo apt install wget jq ca-certificates gnupg -y && \
source /etc/*-release && \
rm -f /usr/share/keyrings/docker-archive-keyring.gpg && \
wget -qO- "https://download.docker.com/linux/${DISTRIB_ID,,}/gpg" | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt update && \
sudo apt install docker-ce docker-ce-cli containerd.io -y

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

1) Для регистрации валидатора предварительно создайте новый адрес EVM кошелька и экспортируйте приватный ключ.

Для этого установите Metamask и следуйте скриншоту ниже.

https://chromewebstore.google.com/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?utm_source=metamask.io

2) На другой кошелек получите немного Sepolia ETH на оплату комиссий.

Мы будем стейкать с него токены на адрес нашего валидатора из шага 1.

https://faucetlink.to/sepolia

PS: почти все краны требуют, чтобы на вашем балансе было не менее 0,001 eth mainnet и гугл почту для авторизации.

Я сам запросил токены с гугл ака здесь:
https://cloud.google.com/application/web3/faucet/ethereum/sepolia

3) Теперь сминтите и делегируйте токены MOCK:

https://testnet-3.elixir.xyz/

Сначала нажимаем на MINT 1000 MOCK вверху:

Дождитесь подтверждения получения токенов "Transaction confirmed".

Теперь апрувните и застейкайте токены MOCK:

Теперь нужно делегировать токены вашему валидатору на кошелек, который мы создали в самом начале в пункте 1:

По итогу должно быть написано: "You have successfully delegated MOCK."

Установка ноды Elixir

На прошлом этапе мы зарегистрировали нашего валидатора.

Теперь установим ноду на сервере.

Создайте рабочий каталог и файл конфигурации в нем:

mkdir ~/.elixir && cd ~/.elixir
mcedit validator.env

В конфигурации укажите параметры ниже:

ENV=testnet-3
STRATEGY_EXECUTOR_DISPLAY_NAME=НИКНЕЙМ
STRATEGY_EXECUTOR_BENEFICIARY=АДРЕС_ДЛЯ_НАГРАД
SIGNER_PRIVATE_KEY=ПРИВАТНИК_ИЗ_ШАГА_1

А теперь запустите ноду командой ниже находясь в каталоге с файлом конфигурации:

docker run -it --env-file ./validator.env --name elixir-node --restart unless-stopped --platform linux/amd64 -p 17690:17690 elixirprotocol/validator:testnet

Правильный лог запуска ноды выглядит так:

Несколько раз нажмите Сtrl + C, чтобы закрыть окно. Нода перезапустится в фоновом режиме автоматически.

Где-то через часик вы можете проверить на тестовом портале, что аптайм вашей ноды растет.

https://testnet-3.elixir.xyz/

Для этого в поле поиска вставьте адрес вашего валидатора.

Полезные команды:

Просмотр логов ноды:

docker logs -f elixir-node

Остановить ноду:

docker stop elixir-node

Запустить ноду:

docker start elixir-node

Посмотреть статус ноды, ответ должен быть OK

curl 127.0.0.1:17690/health | jq

Посмотреть метрики ноды:

curl 127.0.0.1:17690/metrics | jq

Обновление ноды

Если потребуется обновить ноду следуйте инструкции ниже.

Останавливаем и удаляем контейнер с нодой:

docker stop elixir-node && \
docker rm elixir-node

Загружаем новый образ:

docker pull elixirprotocol/validator:testnet --platform linux/amd64

Запускаем ноду:

cd ~/.elixir && \
docker run -it --env-file ./validator.env --name elixir-node --restart unless-stopped --platform linux/amd64 -p 17690:17690 elixirprotocol/validator:testnet

После обновления вы должны видеть такие логи:

Запуск или обновление ноды в сети майннет

Если вы ранее ставили ноду тестнета по этому же гайду, то у вас будет работать две ноды одновременно: майннет и тестнет.

Создаем конфигурацию для ноды в майннете, для этого копируем конфигурацию с тестнета и меняем сеть на новую:

Это делается только один раз!

cd ~/.elixir && \
cp validator.env prod.env && \
sudo sed -i -e "s/^ENV=testnet-3.*/ENV=prod/" ~/.elixir/prod.env

Проверим, что в конфигурации указана сеть ENV=prod

cat ~/.elixir/prod.env 

Если потребуется обновить ноду следуйте инструкции ниже.

Останавливаем и удаляем контейнер с нодой:

docker stop elixir-prod && \
docker rm elixir-prod

Загружаем новый образ:

docker pull elixirprotocol/validator --platform linux/amd64

Запускаем ноду:

cd ~/.elixir && \
docker run -it --env-file ./prod.env --name elixir-prod --restart unless-stopped --platform linux/amd64 -p 17691:17690 elixirprotocol/validator

Через минут 15 можно будет найти себя на сайте в поиске по адресу:

https://www.elixir.xyz/validators

На этом пока все.

Официальную статью по запуску ноды и текущих заданий можно посмотреть тут:

https://docs.elixir.xyz/running-an-elixir-validator

Если нашли ошибки в работе ноды, баг репорт тут:

https://github.com/ElixirProtocol/testnet-3-issue-tracker/issues

@starnodesxyz - наш канал в Telegram с новостями и гайдами по тестнетам.
@starnodes_chat - канал, куда можно обратиться за помощью.