Elixir. Гайд по установке ноды
❗️У нас нет приваток, платных статей, рекламы или иных навязчивых способов заработка на аудитории. Поэтому рассчитываю на Вашу поддержку путем подписки на наш ТГ канал Bit.Future и Youtube 👍
- Официальная документация от Elixir по ноде
- Наш видео-гайд: https://youtu.be/OuQ648csWkA
- Elixir Testnet webpage: https://testnet-3.elixir.xyz/
- Discord Elixir
Подготовка кошельков и исходников
Для запуска ноды, нам потребуется 2 кошелька. Один (А) с которого будем запускать ноду, а другой (В) с которого будем минтить тестовые токены MOCK и делегировать их в нашу ноду.
Готовим кошелек (А) для ноды:
Создаем новый EVM кошелек и сохраняем его адрес и приватный ключ.
С сайта документации скачиваем файл validator.env
Сохраняем файл к себе на комп. Путь до папки должен быть простым, без пробелов в названии папок, без кирилицы и т.п. Например:
C:\Programs\Elixir-nodes\Node-2
Открываем скаченный validator.env с помощью блокнота и видим, какие данные нам нужно заполнить
IP_ADDRESS= IP адрес вашего VPS сервера [заполните чуть позже]
DISPLAY_NAME= любое имя вашей ноды
BENEFICIARY= адрес кошелька (А), на котором ставим ноду
PRIVATE_KEY= приватный ключ кошелька (А), на котором ставим ноду.
ВАЖНО: приватный ключ должен быть указан без 0х в начале
После заполнения, получится примерно следующее:
Готовим кошелек (В) для делегации:
Создаем новый EVM кошелек и сохраняем его адрес и приватный ключ. Далее рекомендую работать в Rabby wallet.
Коннектим кошелек на сайт https://testnet-3.elixir.xyz/ после чего у нас сразу добавится сеть Sepolia Testnet
Далее нам нужно воспользоваться любым краном и получить тестовые Sepolia ETH в сумме, желательно, 0,05+ ETH:
- https://cloud.google.com/application/web3/faucet/ethereum/sepolia - предварительно на кошельке должно быть 0,001 ETH в ERC20 (сразу насыпет нужные 0,05+ ETH)
- https://www.sepoliafaucet.io/
- любой другой кран из Гугл-поиска по слову Sepolia faucet.
СПРАВОЧНО: Параметры Sepolia сети chain ID: 11155111 Network name: Sepolia RPC URL: https://rpc.sepolia.org Currency symbol: ETH Block explorer URL: https://sepolia.etherscan.io
После получения тестовых Sepolia ETH, на сайте https://testnet-3.elixir.xyz/ минтим 1000 MOCK. При желании, можно минтить MOCK по 1000 штук сколько угодно раз, но смотрите чтобы не потратить весь тестовый ЕТН на газ.
Делаем Approve и затем Stake наших 1000 MOCK
В появившемся окне вводим кошелька (А) нашей ноды и жмем Delegate. Ничего страшного, что к созданию ноды мы даже еще не приступали.
Установка ноды Elixir
В соответствии с официальной документацией, требования к ноде следующие:
- 8 GB of RAM
- 100+ Mb/s internet
- 100 GB of free storage (без детализации HDD, SDD, NVME и т.п.)
- Кол-во ядер CPU не регламентировано, но 4 хватит более чем.
Нода не очень требовательна к ресурсам, поэтому можно пробовать ставить на виртуальных VPS серверах, вместо чуть более дорогих VDS.
- xorek.cloud VPS сервер DE-R9-8 | 4 CPU + 8 RAM + 120 Gb | 749 р / мес
- hshp VPS сервер MSK-4 | 4 CPU + 8 RAM + 120 Gb | 1100 р / мес
- cloud4box VPS сервер RUS | 4 CPU + 8 RAM + 100 Gb | 935 р / мес
На всех сервисах есть дополнительные скидки при аренде на срок свыше 3 мес.
Я воспользуюсь привычным уже Хорьком, к тому же он и самый дешевый из тех что я нашел. Подробно как заказать сервер на Хорьке, расписывал в гайде по ноде Farcaster.
В конечном счете, после покупки VPS сервера, мы должны получить IP адрес, логин (как правило root) и пароль. Сразу же заполните IP адрес в файл validator.env, который мы скачали ранее.
После работы через PuTTY терминал, он меня реально начал бесить. Поизучав тему, решил перейти на работу с VPS серверами через терминал MobaXterm. Скачивайте и запускайте, реально гораздо удобнее.
После запуска создаем Session, выбираем формат через SSH, вводим выданный нам IP адрес, логин (username), нажимаем ОК и на следующем шаге вводим пароль.
После ввода пароля, рабочая область будет выглядеть следующим образом:
Создаем папку elxnode с помощью команды
mkdir elxnode
Теперь нам нужно перенести ранее скаченный и заполненный файл validator.env с рабочего ПК на удаленный сервер. Открываем Windows консоль, для этого нажимаем WIN+R и пишем cmd
В консоль вставляем команду копирования файла и нажимаем Enter.
scp C:\Programs\Elixir-nodes\Node\validator.env [email protected]:/root/elxnode/
Нас попросит ввести пароль и подтвердить первичное соединение с сервером написав "yes"
а в MobaXterm файл отобразится в папке Elxnode
Устанавливаем Docker, последовательно вводя команды в терминал:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Запустится процесс установки Docker. В процессе нас попросят выбрать сервис для перезагрузки, можно выбрать 7 "none of above":
Проверяем, что Docker установился успешно, с помощью команды
docker version
Появится информация об установленной версии Docker, значит все прошло успешно:
Скачиваем самый актуальный Docker image для Elixir ноды с помощью команды
docker pull elixirprotocol/validator:3.1.0
❗️ Обратите внимание на наличие обновлений в конце данного гайда и Discord Elixir. Возможно последняя актуальная версия Doker Image изменилась.
Если версия Doker Image изменилась, переходи сразу в конец гайда и ставьте последнее обновление.
Теперь требуется установить политики для перезагрузки ноды, для этого последовательно пишем команды:
docker run -d \ --env-file /path/to/validator.env \ --name elixir \ --restart unless-stopped elixirprotocol/validator:3.1.0
Обратите внимание, что путь /path/to/validator.env \ должен содержать путь до файла validator.env на VPS сервере. Т.е. в нашем случае команды будут следующие:
docker run -d \ --env-file /root/elxnode/validator.env \ --name elixir \ --restart unless-stopped elixirprotocol/validator:3.1.0
После этого увидим примерно следующее:
Запускаем ноду Elixir в Docker с помощью команд. Обратите внимание, что я уже указал свой конечный путь до файла validator.env:
docker run -it \ --env-file /root/elxnode/validator.env \ --name elixir \ elixirprotocol/validator:3.1.0
После этого нода запустится, о и увидите такие, постоянно обновляюшиеся логи:
Проверить состояние ноды можно с помощью команды
sudo docker ps
Увидим ID Docker контейнера, версию ноды, когда нода она была создана, сколько времени активна:
Состояние работы (логи) ноды можно также просмотреть с помощью команды:
sudo docker logs elixir -f
Если видите, что нода работает и логи активно обновляются, значит все в порядке.
Можно полностью закрывать терминал, нода продолжит работать.
___________________________________________________________________________________________
❗️ Необходимо зайти в Discord Elixir и следить за ветками
#validator-announcements
#node-operators
Возможно в будущем потребуется обновить ноду, о чем будет сообщено.
Команды для обновления ноды (версия валидатора может быть изменена):
docker kill elixir docker rm elixir docker pull elixirprotocol/validator:3.1.0
docker restart elixir
Теперь можно вернуться на сайт Elixir и подключить Кошелек (А), с которого мы делегировали MOCK в нашу ноду. Мы должны увидеть статус что наши средства успешно делегированы, активную кнопку Undelegate, а также область с наградами.
Награды пока не отображаются, их величина не известная. Возможно часть наград увидит Кошелек (B), с которого делалась делегация MOCK, а также и Кошелек (A), на котором запущена нода. Пока деталей никаких нет, ждем дальнейших анонсов.
На этом установка ноды закончена.
Обновление ноды
Останавливаем и удаляем текущую (старую) Doker сессию Elixir, с помощью поочередного выполнения команд:
docker kill elixir docker rm elixir
(если у вас ошибка при удалении, то посмотрите как у вас назван Докер контейнер с помощью "sudo docker ps". Возможно он назван не Elexir, а как-то иначе (рандомно). Рандомное имя присваиваевается, если вы забыли вписать команду присвоения имени. В этом сучае удаляете контейнер с используемым именем)
Скачиваем самый последний Validator image, указанной в Дискорде::
docker pull elixirprotocol/validator:v3 --platform linux/amd64
Запустится процесс установки крайней актуальной версии Validator image, и увидите примерно следующее:
Запускаем Validator image c помощью команды, указанной в Дискорде:
docker run --env-file <path to env file> --platform linux/amd64 -p 17690:17690 elixirprotocol/validator:v3
Обратите внимание, что <path to env file> надо заменить на путь с вашим validator.env файлом. В нашем примере это был /root/elxnode/validator.env
Помимо замены <path to env file>, я также добавляю флаги (символы в коде):
1. Для запуска контейнера в фоновом (detached) режиме:
-d
2. Для присвоения имени нашему Докер контейнеру "Elexir":
--name elixir
3. Для задания политики автоматического перезапуска контейнера. Docker будет автоматически перезапускать контейнер, если он остановился по любой причине (например, из-за ошибки или перезапуска системы)
--restart unless-stopped
С учетом всех добавлений, моя итоговая команда для запуска будет выглядеть как:
docker run -d --env-file /root/elxnode/validator.env --platform linux/amd64 -p 17690:17690 --restart unless-stopped --name elixir elixirprotocol/validator:v3
Ожидайте запуска 1-2 мин.
Затем проверяем статус ноды с помощью уже привычной команды:
sudo docker ps
sudo docker logs elixir -f
Логи, подтверждающие, что ваш валидатор online и участвует в Elixir protocol network:
После этого можно закрывать терминал.
Через несколько минут можно переходить на сайт Elixir Testnet и подключать кошелек, с которого установлена нода. Вы должны Healthy статус ноды и постоянно увеличивающий UpTime, показывающий время успешной работы ноды.
Аналогичным образом будут делаться все другие обновления, команды которых нужно будет брать из ветки #validator-announcements в Discord Elixir
Запуск ноды в мейннете
Если вы ставите ноду с нуля, то проделываем все шаги до Раздела "Обновление ноды".
Если у вас есть уже работающая в тестнете нода, то останавливаем и удаляем текущую (старую) Doker сессию Elixir, с помощью поочередного выполнения команд:
docker kill elixir docker rm elixir
Теперь нам надо внести корректировку в файл validator.env, который мы ранее загрузили на VDS сервер. Если работаете через MobaXterm, то просто находим его в папке elxnode и открываем с помощью текстового редактора
В первой строке: ENV=testnet-3 заменяем на ENV=prod. В остальной части файл не правим, сохраняем и закрываем.
Далее все шаги идентичны тем, что мы делали в разделе Обновление ноды, за исключением того, что в командах мы убираем слово testnet. Справочно, ниже я распишу подробно:
Скачиваем самый последний Validator image для мейннета, указанный в Дискорде::
docker pull elixirprotocol/validator --platform linux/amd64
Запустится процесс установки крайней актуальной версии Validator image, и увидите примерно следующее:
Запускаем Validator image c помощью команды, указанной в Дискорде:
docker run --env-file <path to env file> --platform linux/amd64 --name elixir -p 17690:17690 elixirprotocol/validator
Обратите внимание, что <path to env file> надо заменить на путь с вашим validator.env файлом. В нашем примере это был /root/elxnode/validator.env
Помимо замены <path to env file>, я также добавляю флаги (символы в коде):
1. Для запуска контейнера в фоновом (detached) режиме:
-d
2. Для присвоения имени нашему Докер контейнеру "Elexir":
--name elixir
3. Для задания политики автоматического перезапуска контейнера. Docker будет автоматически перезапускать контейнер, если он остановился по любой причине (например, из-за ошибки или перезапуска системы)
--restart unless-stopped
С учетом всех добавлений, моя итоговая команда для запуска будет выглядеть как:
docker run -d --env-file /root/elxnode/validator.env --platform linux/amd64 -p 17690:17690 --restart unless-stopped --name elixir elixirprotocol/validator
Ожидайте запуска 1-2 мин.
Затем проверяем статус ноды с помощью уже привычной команды:
sudo docker ps
sudo docker logs elixir -f
После запуска ноды, ждем 5-7 мин.
Закрываем терминал и переходим на сайт https://www.elixir.xyz/validators/
В поиске вводим адрес своей ноды и должны увидеть статус ее работы. Статус должен быть Online.