Ноды
October 11

Ritual. Гайд на установку ноды

Yamataka — гайди на ноды, теснеты, аирдропи

Ritual — выделила пять ключевых направлений деятельности: создать свою стимулирующую сеть, которая соединяет распределенные вычислительные устройства для хостинга, совместного использования. Собрали они инвеста на сумму 25млн$ от Balaji Srinivasan, Polychain, Accel и так далее

  • Для установки ноды нам понадобится сервер который можем купить на XorekCloud за 1400 рублей в месяц с подходящими характеристиками. Выбирайте Ubuntu 22.04
  • Рекомендованные характеристики к нашей ноды — 4CPU/16RAM/500SSD + нужно будет докупить 260 GiB, а это еще 780 рублей к стоимости

Устанавливаем ноду

  • Устанавливаем необходимые пакеты
sudo apt update && sudo apt upgrade -y
  • Устанавливаем Build Tools
sudo apt -qy install curl git jq lz4 build-essential screen
  • Устанавливаем Nano
sudo apt-get update
sudo apt-get install nano
  • Устанавливаем Docker
sudo apt install docker.io
  • Устанавливаем Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • Устанавливаем Docker Compose CLI Plugin
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
  • Делаем плагин исполняемым
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
  • Делаем вереф установки
docker compose version
  • Добавляем пользователя в Docker Group
sudo usermod -aG docker $USER
  • После этой команды у вас вылетит из сервера потом зайдите обратно
sudo reboot
  • Проверяем всё ли норм
docker run hello-world
  • Устанавливаем репозиторий
git clone https://github.com/ritual-net/infernet-container-starter 
cd infernet-container-starter
  • Устанавливаем Screen
screen -S ritual
  • Делаем деплой
project=hello-world make deploy-container
После выходим, для этого нажимаем — CTRL + A + D
  • Переходим в конфиг
nano ~/infernet-container-starter/deploy/config.json
  • И нам нужно будет заменить данные

RPC URL: https://mainnet.base.org/
Private Key: ваш приватник в начале адреса добавляем “0x
Registry: должен быть 0x3B1554f346DFe5c482Bb4BA31b880c1C18412170
sleep: 5
batch_size: 1800

Cохраняем и выходим нажимая Cntr+X, Y, Enter
Eщё один важный момент, используем только кошелек где нет средств, но нужно будет пополнить 10–20 баксов в $ETH в сети Base. Так как нода будет немного использовать $ETH в сети Base
  • Заходим в следующий конфиг и заменяем всё так само как и в предыдущем
nano ~/infernet-container-starter/projects/hello-world/container/config.json
Cохраняем и выходим нажимая Cntr+X, Y, Enter
  • Теперь уже заходим в 3-конфиг и тут меняем только Register_address на этот 0x3B1554f346DFe5c482Bb4BA31b880c1C18412170
nano ~/infernet-container-starter/projects/hello-world/contracts/script/Deploy.s.sol
Cохраняем и выходим нажимая Cntr+X, Y, Enter
  • Заходим в 4-конфиг меняем RPC и приватник с добавлением 0x вначале
nano ~/infernet-container-starter/projects/hello-world/contracts/Makefile
Cохраняем и выходим нажимая Cntr+X, Y, Enter
  • Заходим в 5-конфиг и меняем версию на 1.2.0
nano ~/infernet-container-starter/deploy/docker-compose.yaml
Cохраняем и выходим нажимая Cntr+X, Y, Enter
  • Инициализация конфигурации
docker restart infernet-anvil
docker restart hello-world
docker restart infernet-node
docker restart deploy-fluentbit-1
docker restart deploy-redis-1
  • Проверяем существующие контейнера
docker ps
  • Проверяем логи контейнера
docker logs "CONTAINER ID"
  • Например давайте проверим этот
docker logs infernet-node
  • Если у вас такие логи, то все окей
  • Устанавливаем Foundry
cd
mkdir foundry
cd foundry
curl -L https://foundry.paradigm.xyz | bash
  • Делаем update
source ~/.bashrc 
foundryup
  • Заходим в контейнер
cd ~/infernet-container-starter/projects/hello-world/contracts
  • Устанавливаем библиотеку forge-std
forge install --no-commit foundry-rs/forge-std
  • Устанавливаем infernet-sdk
forge install --no-commit ritual-net/infernet-sdk
cd ../../../
  • Если у вас такие ошибки то решаем следующим образом
rm -rf projects/hello-world/contracts/lib/forge-std
forge install --no-commit foundry-rs/forge-std
cd ~/infernet-container-starter/projects/hello-world/contracts
rm -rf lib/forge-std
forge install --no-commit foundry-rs/forge-std
ls lib/forge-std
foundryup
cd ~/infernet-container-starter/projects/hello-world/contracts
rm -rf lib/infernet-sdk
forge install --no-commit ritual-net/infernet-sdk
ls lib/infernet-sdk
  • Делаем деплой
cd ~/infernet-container-starter
project=hello-world make deploy-contracts
  • Пойдут блоки и хеши
  • Далее смотрите журналы и проверьте, по какому адресу был развернут ваш контракт SaysGM
  • Далее нам нужно поменять данные в файле CallContract.s.sol, вставив контракт в SaysGM saysGm = SaysGM(контракт)который нам выдали ранее после запуска деплоя
nano ~/infernet-container-starter/projects/hello-world/contracts/script/CallContract.s.sol
  • Инициируйте новый запрос для узла Infernet
project=hello-world make call-contract

Работаем с контрактом

  • Заходим в контракт и коннектим кошелек, который мы создали и пополнили $ETH в сети Base
  • Зарегистрируйте ноду, введя адрес своего кошелька в ветке Register Node, нажав Write и подтвердите транзакцию в сети Base
  • После этого ждем 1 час, как прошел заходим в ветку Activate Node и нажимаем Write подтверждаем транзакцию
  • После этого сможете увидеть свою транзакцию в Basescan и кошельке, но может быть такое что не будет транзакции более суток, это норма

Дополнительные команды

  • Рестарт контейнера
docker compose -f infernet-container-starter/deploy/docker-compose.yaml down
docker compose -f infernet-container-starter/deploy/docker-compose.yaml up
  • Проверить логи
docker logs infernet-node
  • Нормальные логи

Обновляем ноду до версии 1.4.0

  • Стопаем контейнер
docker compose -f infernet-container-starter/deploy/docker-compose.yaml down
  • Открываем конфиг
nano ~/infernet-container-starter/deploy/docker-compose.yaml

Меняем версию из 1.2.0 на 1.4.0

  • Запускаем контейнер
docker compose -f infernet-container-starter/deploy/docker-compose.yaml up

Готово !