Ноды
July 4, 2024

ALLORA - ОТРАБАТЫВАЕМ $35kk ИНВЕСТА ПО ПОЛНОЙ

Всем здарова, сегодня рассмотрим свежий проект и поставим для него ноду - речь идёт про Allora. Опять же, если вы новичок, для начала крайне советую усвоить базу - вот вам наш онбординг-гайд по нодам!

С чем вы вообще имеем дело? Allora — это новая децентрализованная AI сеть с упором на Community, то есть с поставленной нодой ревардами нас, скорее всего, не обделят. Поинты, которые мы будем фармить, в будущем будут сконвертированы в токены:)
Что по ИНВЕСТУ? $35kk от серьёзных дядь на Polychain Capital, Delphi Ventures и других. Проект очень свежий, и такой инвест - это уровень. TwitterScore тут тоже не хромает и составляет 35 балла (у Nubit например 16)

TwitterScore, вполне неплохо!

Начало положено, идём дальше:

1. ЧТО НАМ ПОНАДОБИТЬСЯ?

> Сервер (5.5€/месяц)
> Операционка Ubuntu 22.04
> Немного усилий - нода ставиться несложно

Теперь перейдем к характеристикам нашего сервака. Минимальные требование для ноды:

> 2 CPU
> 4 GB RAM
> 50 GB свободного SSD-хранилища

Подходящий нам сервер можно найти на SpaceCore, там он стоит 5.5€ в месяц, что вполне бюджетно. Сейчас наглядно покажу как его купить!

2. АРЕНДА СЕРВЕРА

Идём сюда, клацаем вверху "Полное меню" -> "Виртуальные серверы" -> "Заказать" -> Видим "Конфигуратор" и жмем "Заказать".

Всё наглядно и понятно

Далее выставляем нужные нам параметры как на скрине, а именно: CPU: 2 - RAM: 4 GB - Хранилище: 50 GB - OS (операционка): Ubuntu 22.04

Выставляем всё как показано
А тут ничего не трогаем - оставляем как есть. Нам подходит!
Оплачиваем

Проводим оплату и ждём, пока наш сервер будет готов. Автопродление можете оставить/выключить на своё усмотрение. В способе оплаты советую выбирать Cryptomus - через него можно оплатить практически любой криптой, в том числе многими любимой соланой)
Как только сервак готов - продолжаем!

3. ПЕРЕХОДИМ К УСТАНОВКЕ ПО

Для начала скачиваем кошелёк Keplr, если у вас его нету. Сидку надёжно сохраняем , она ещё понадобится. Далее идём сюда и коннектим наш кошелёк.
Далее качаем MobaXterm (ПОшка) по ссылке

Качаем

Мини-гайд как зайти на сервак через Мобу: > Качаем, архив извлекаем в удобную вам папку. После этого в папке видим такой файл:

Клацаем!

> Запускаем его. В самой проге для начала непросто разобраться, поэтому показываю. Кликаем на верхней панели Session -> SSH. Вводим IP от сервера и username "root" (может быть другой, смотрите данные после покупки сервера) Подробнее на скринах:

Кликаем
Вписываем всё как показано

Также, у Ubuntu есть особенность - мы не видим ввода пароля, пароль вставляется на колёсико мыши, и жмём Enter.

Как установили и зашли на сервер - идём строчить команды. Тут их будет относительно немного, поэтому не пугайтесь 😎

> Устанавливаем необходимые пакеты: sudo apt update && sudo apt upgrade -y sudo apt install ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev curl git wget make
> Устанавливаем Python: sudo apt install python3 python3 --version sudo apt install python3-pip pip3 --version
(везде прокликиваем Y для подтверждения) > Устанавливаем Docker, опять же жмём Y: 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 version
> Далее качаем Docker-Compose:
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 version
> Даем разрешения Docker для пользователей:
sudo groupadd docker sudo usermod -aG docker $USER
> Качаем GO:
sudo rm -rf /usr/local/go curl -L https://go.dev/dl/go1.22.4.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.bash_profile source .bash_profile go version
> Теперь устанавливаем Allorad Wallet:
git clone https://github.com/allora-network/allora-chain.git cd allora-chain && make all allorad version

Далее небольшой перерыв от копипасты команд. Нам понадобится сидка от нашего Kelpr кошелька, о котором я писал в начале статьи. Если ещё не сохранили её, в самом кошельке можно посмотреть - справа вверху жмём на иконку профиля, далее видим три точки, клацаем на них, и потом на View Recovery. Вводим пароль и видим нашу сидку!
Нагляднее на скрине

Достаем сидку из кеплера

Продолжаем! > Подключаем кошелёк к ноде: allorad keys add testkey --recover
Нас просит сидку от кошелька - жмём Enter и вводим её.
Далее переходим на этот сайт, видим снизу зеленую кнопку, клацаем на неё, апруваем и добавляем тестовую сеть Allora в наш кошелёк.
Теперь нужно включить эту сеть в кошельке - делаем все по инструкции как на скрине:

Делаем как показано
Тут также все прокликиваем

После того как включили эту сеть, копируем свой адрес и идём в кран получать тестовые токены. Вставляем адрес и нажимаем Request Token.
Подробнее на скрине:

Копируем Allora-адрес
Запрашиваем токены с крана

Теперь приступаем к финальному шагу - запускаем саму ноду! (воркера)

4. РАНИМ НОДУ

> Приступаем к установке:
cd $HOME && git clone https://github.com/allora-network/basic-coin-prediction-node

cd basic-coin-prediction-node

mkdir worker-data mkdir head-data
> Создаем ключ:
sudo docker run -it --entrypoint=bash -v ./head-data:/data alloranetwork/allora-inference-base:latest -c "mkdir -p /data/keys && (cd /data/keys && allora-keys)"
> Создаем воркера:
sudo docker run -it --entrypoint=bash -v ./worker-data:/data alloranetwork/allora-inference-base:latest -c "mkdir -p /data/keys && (cd /data/keys && allora-keys)"
> Получаем ключ:
cat head-data/keys/identity
Копируем head-id который видим на экране и сохраняем, он нам пригодится. > Удаляем файл docker-compose.yml и создаем новый:
apt install nano

rm -rf docker-compose.yml && nano docker-compose.yml
Осталось совсем немного. Откроется блокнот - строку head-id измените на тот, что вы сохранили, а Wallet_Seed_Phrase на сидку от вашего кошелька. > Вставляем весь этот текст в терминал (не пугайтесь его размеров xD), предварительно заменив все указанное выше на свои значения, и прожимаем на клавиатуре CTRL X — Y — Enter:
version: '3' services: inference: container_name: inference-basic-eth-pred build: context: . command: python -u /app/app.py ports: - "8000:8000" networks: eth-model-local: aliases: - inference ipv4_address: 172.22.0.4 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/inference/ETH"] interval: 10s timeout: 5s retries: 12 volumes: - ./inference-data:/app/data updater: container_name: updater-basic-eth-pred build: . environment: - INFERENCE_API_ADDRESS=http://inference:8000 command: > sh -c " while true; do python -u /app/update_app.py; sleep 24h; done " depends_on: inference: condition: service_healthy networks: eth-model-local: aliases: - updater ipv4_address: 172.22.0.5 worker: container_name: worker-basic-eth-pred environment: - INFERENCE_API_ADDRESS=http://inference:8000 - HOME=/data build: context: . dockerfile: Dockerfile_b7s entrypoint: - "/bin/bash" - "-c" - | if [ ! -f /data/keys/priv.bin ]; then echo "Generating new private keys..." mkdir -p /data/keys cd /data/keys allora-keys fi # Change boot-nodes below to the key advertised by your head allora-node --role=worker --peer-db=/data/peerdb --function-db=/data/function-db \ --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \ --private-key=/data/keys/priv.bin --log-level=debug --port=9011 \ --boot-nodes=/ip4/172.22.0.100/tcp/9010/p2p/head-id \ --topic=1 \ --allora-chain-key-name=testkey \ --allora-chain-restore-mnemonic='WALLET_SEED_PHRASE' \ --allora-node-rpc-address=https://allora-rpc.edgenet.allora.network/ \ --allora-chain-topic-id=1 volumes: - ./worker-data:/data working_dir: /data depends_on: - inference - head networks: eth-model-local: aliases: - worker ipv4_address: 172.22.0.10 head: container_name: head-basic-eth-pred image: alloranetwork/allora-inference-base-head:latest environment: - HOME=/data entrypoint: - "/bin/bash" - "-c" - | if [ ! -f /data/keys/priv.bin ]; then echo "Generating new private keys..." mkdir -p /data/keys cd /data/keys allora-keys fi allora-node --role=head --peer-db=/data/peerdb --function-db=/data/function-db \ --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \ --private-key=/data/keys/priv.bin --log-level=debug --port=9010 --rest-api=:6000 ports: - "6000:6000" volumes: - ./head-data:/data working_dir: /data networks: eth-model-local: aliases: - head ipv4_address: 172.22.0.100 networks: eth-model-local: driver: bridge ipam: config: - subnet: 172.22.0.0/24 volumes: inference-data: worker-data: head-data:
> Далее запускаем наш воркер:
docker compose build docker compose up -d
> Теперь заходим в докер:
docker ps
Видим контейнер node-worker, слева копируйте ваш container ID.
> И последнее - вводим команду и заменяем container ID на наш:
docker logs -f ВАШ_COINTERID

Твоя нода готова, красава!

ДОП ИНФА

> Проверить статус ноды:

curl --location 'http://localhost:6000/api/v1/functions/execute' \ --header 'Content-Type: application/json' \ --data '{ "function_id": "bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm", "method": "allora-inference-function.wasm", "parameters": null, "topic": "1", "config": { "env_vars": [ { "name": "BLS_REQUEST_PATH", "value": "/api" }, { "name": "ALLORA_ARG_PARAMS", "value": "ETH" } ], "number_of_nodes": -1, "timeout": 2 } }'

> Проверить ноду на обновления:

curl http://localhost:8000/update

> Проверить вывод ноды:

curl http://localhost:8000/inference/ETH

На этом всё, ты молодец!
Для доп. ресерча оставлю соцсети проекта:

> Discord
> Twitter
> Website

Удачи!
Ссылка на канал — https://t.me/cryptonixxnft