Крипта
October 16

Nodes gang-bang: 3 in 1

Телеграм канал о нодах и тестнетах: Kopeyka DAO

Эта статья открывает серию гайдов по нодам, которые можно с легкостью установить на один сервер.

Сегодня у нас:

1) Waku 2) Gaianet 3) Unichain

Рекомендуемые характеристики сервера:

8 CPU
16 RAM
150 SSD

Сервера можно купить здесь:

  1. Play2Go - советуем брать именно этот тариф:
  1. Spacecore
  2. Serv.host
  3. Hosting-vds
  4. 4vps

Главное, чтобы не Contabo, потому что по нашему экспертному мнению (от опытных юзеров) он плохой.

По всем вопросам можете обращаться в чат


Подготовка к установке

Для установки Waku & Unichain нам потребуется тестовый эфир сети Sepolia, поэтому начнем с подготовки кошелька.

Создаем кошелек, записываем сидку и идем по кранам:

1) Googel Faucet - ничего не надо, просто лутаем эфир.

2) ETH Sepolia Faucet - ставим галочку, как на скрине и жмем внизу "Continue". Линкуем свой гитхаб и получаем токены.

3) Multi-Chain Faucet - нужно иметь 0.001 ETH в мейннете.

4) Infura Faucet - надо зарегаться

5) Alchemy Faucet - надо зарегаться

Если хотите убедиться, точно ли получили свои токены, можно сделать это на Etherscan.

‼️ Важно ‼️

Следующей командой проверяем версию докера

docker -v

Если версия меньше 27.0.0, то в обязательном порядке обновляем докер, следуя инструкции:

1. Удаляем все старые версии докера

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

2. Устанавливаем собственно докер при помощи следующего скрипта

curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh

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

Перед установкой самой ноды еще нужно сделать один шаг. Вспоминаем сидку от кошелька с тестовым эфиром и идем регистрироваться на Infura.

На главной странице в API Keys нажимаем на My First Key

Видим доступные сети, ставим галочки для сети Ethereum, как на скрине

Переходим в Active Endpoints, копируем ссылку тестнета Sepolia и сохраняем себе.

Теперь переходим в консоль. Первой командой клонируем репозиторий и переходим в папку.

git clone https://github.com/waku-org/nwaku-compose
cd nwaku-compose

Делаем копию файла с именем .env

cp .env.example .env

Потом вводим команду:

nano .env

Далее вставляем скопированную в Infura ссылку, приватный ключ от кошелька, на который наливали токены и придумываем пароль.

Выходим с помощью CTRL/CMD X + Enter + Y + Enter

Регистрируемся в сети

./register_rln.sh

После выполнения команды всё должно выглядеть так, как на скрине

Если вылезает ошибка SIGSEGV: Illegal storage access. (Attempt to read from nil?), то пишем команду ниже и возвращаемся на шаг назад.

rm -rf keystore

Запуск ноды

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

docker-compose up -d

Можно посмотреть логи, чтобы убедиться, что всё работает правильно

docker-compose logs -f nwaku


Мониторинг ноды


Чтобы мониторить статистику ноды, копируем ссылку и на выделенное место вставляем IP вашего сервера

http://<ip вашего сервера>:3001/d/yns_4vFVk/nwaku-monitoring

На сайте будет отображаться что-то подобное

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

cd nwaku-compose
git stashgit pull
git stash pop
docker compose down
docker compose up -d

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

1. Для начала не забываем установить и обновить необходимые пакеты

sudo apt update -y sudo apt upgrade -y

2. Загружаем и выполняем последнюю версию скрипта установки ноды GaiaNet

curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash

3. Переподключаемся к серверу

4. Инициализируем кофигурацию GaiaNet

gaianet init --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/qwen2-0.5b-instruct/config.json

5. И наконец запускаем ноду

gaianet start

Если нода долго не запускается и при подключении на сайте выдаёт ошибку

При этом в результате выполнения команды gaianet info показывает Node ID и Device ID корректно, то следует выполнить следующую команду:

curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v 0.13.5 --noavx


Нода запущена, и нам остаётся привязать ноду к аккаунту и настроить скрипт для автоматического общения с ботом.

Привязка ноды к аккаунту

1. Копируем ссылку на нашу ноду

2. Следующей командой мы получаем Node ID и Device ID — сохраняем, они понадобятся далее

gaianet info

3. Отправляемся на сайт GaiaNet в раздел My Node и привязываем EVM-кошелёк.

4. В профиле привязываем все аккаунты социальных сетей

5. Нажимаем на кнопку Connect new node и вставляем раcнее сохранённые Node ID и Device ID

6. Если вы всё сделали правильно — нода добавлена успешно. Спустя какое-то время в этом же разделе мы увидим статус нашей ноды, также начнут капать поинты за её работу.

Нода привязана. Как бы то странно не звучало, с нодой можно общаться: перейдя по ссылке, полученной ранее в терминале, следует нажать на кнопку Chat with this node, в которой собственно и ведётся чат с ботом. Судя по слухам, за это также начисляются поинты.


Управление нодой

  • Запуск ноды — gaianet start
  • Остановка ноды — gaianet stop
  • Справка по ноде — gaianet help


Установка скрипта для автоматического общения с ботом внутри ноды


1. Запускаем скрипт, который разворачивает docker-контейнер

cd ~/gaianet && bash <(curl -s https://raw.githubusercontent.com/KopeykaDAO/Nodes/main/gaianet/gaia_chat.sh)

2. Вставляем Node ID, который сохраняли ранее

3. Ждём, пока пойдут логи. Смотрим на наличие ошибок

Пример ошибки:

Нужно проверять, работает ли нода и правильно ли введён адрес.

4. Выходим из логов при помощи сочетания клавиш CTRL + C

Команда для просмотра логов скрипта:

docker exec -it gaianet_chat tail -f -n 20 chat_log.txt

Наслаждаемся капающими поинтами!

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

Клонируем папку Unichain

git clone https://github.com/Uniswap/unichain-node

Меняем директорию

cd unichain-node

Открываем .env.sepolia файл

nano .env.sepolia

Изменяем OP_NODE_L1_ETH_RPC и OP_NODE_L1_BEACON

OP_NODE_L1_ETH_RPC = https://ethereum-sepolia-rpc.publicnode.com
OP_NODE_L1_BEACON = https://ethereum-sepolia-beacon-api.publicnode.com

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

docker-compose up -d

Используем команду, чтоб понять синхронизировалась нода или нет. Если рядом с "result" true, то нода синхронизировалась. Если false, то нет.

curl -d '{"id":1,"jsonrpc":"2.0","method":"eth_syncing"}' \                               
  -H "Content-Type: application/json" http://localhost:8545 | jq


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

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

docker compose down

Проверить логи unichain-node-op-node-1

docker logs unichain-node-op-node-1

Проверить логи unichain-node-execution-client-1

docker logs unichain-node-execution-client-1

Посмотреть приватный ключ ноды

cat geth-data/geth/nodekey

Сказать спасибо:

0x6dcA295A841E017bB48bd495dD1826E9895780B1