Gonka - настройка на RTX 5090. Или как потратить неделю реального времени. PART_1

Gonka - настройка на RTX 5090. Или как потратить неделю реального времени. PART_1


типо Я
Всё оглавление кликабельно

0) Введение

1) Запуск как задумали разработчики

2) Зависимости

2.2) Nvidia - драйвера и компоненты

2.3) Docker - и все что с ним связано

2.4) Hugginface - модели для Gonka.ai

2.5) FRP - если нет белого IP

3) Gonka - создаем ключ и тд

3.1) Gonka - качаем исходники с github

3.2) Настройка /gonka/deploy/join/config.env

3.3) Настройка node-config

3.4) Настройка /gonka/deploy/join/.inference/config/config.toml

3.5) Настройка docker-compose.mlnode.yml для RTX 5090 (sm120)

3.6) Создаем warm-key и регистрация


типичный бот в крипто чате



0) Введение

Давай не будем завышать ожидания, ок? У тебя с вероятностью 90%, что-то пойдет "не так". Ты будешь пропускать эпохи, проходить все 5 стадий принятия и злиться что, ни кто не может помочь с проблемой.
Эпоха - это типо окно в 24 часа (+- 2-3) когда твой сервер попадает в список участвующих в майнинге/инференсе и т.п = начисляются монетки. Если в нужный час X - у тебя что то случилось с сервером. Включаешь ждуна до следующего окна PoC.
Весь проект на данный момент 06.01.2026 - это просто набор контейнеров, работа которых завязана друг на друга. Соответственно 8 контейнеров = 8 возможных затыков, которые будут завязываться в узел проблем и ошибок.

микро "база"

0) Желательно иметь под рукой chat-GPT или любой другой ИИ-помощник.
1) Можно любое количество карт, главное чтобы общее кол-во VRAM >= 40Gb(но это не точно, можно и меньше по факту).
2) Минимально и без проблем, заработает на 2x RTX 3090. Желательно в PCI-E x16 (3.0, 4.0).
3) Обязательно "белый" ip(DNS), либо проброшенный тоннель до сервера (FRP)
4) Нужен многопоточный проц. Так как контейнер "node" жрет ресурсы в фоне(при синхронизации).
5) Оперативка(кусок дефицита) - x1.5 от объема VRAM.
6) Карты должны быть в одном "домене", чтобы свободно обмениваться данными. Т.е двухголовые xeon, не будут нормально работать из коробки.
Или серверный платы на эпиках, через Slim-SAS и прочие варианты райзеров, иногда разделяют карты таким образом, что их PCI-E линии, вообще ни как не связаны. Контейнер "mlnode" будет падать из за этого постоянно. Так как не сможет "нарезать" модель по картам.
7) Интернет соединение - чем быстрее тем лучше. Минимум от 100 мбит/с. - качать придется много. Очень.
8) Хотя-бы 1 Тб NVMe SSD - Контейнеры Gonka = 40-80 гигов; Нейросетка - от 16 до 430 Гб; Еще куча памяти уходит на всякий кэш. У меня от 1 Тб осталось 230 Гб свободных. окак

Мои спеки:
Система - hiveos с ядром 6.6.0-hiveos
Motherboard - H12SSL-i Supermicro (2.7 10/25/2023)
CPU - 48 × AMD EPYC 7352 24-Core Processor AES
Disk Model - Samsung SSD 980 1TB 1000GB
GPU - 3x RTX 5090 (PCI-e X16 4.0)
Nvidia driver - 580.82.07 


1) Запуск как задумали разработчики

Пойти на сайт Gonka.ai и ознакомиться с "быстростартом". Попробовать развернуть по их гайду, вдруг получится с первого раза. Тут, как раз пригодится ИИ-помощник(чатик).

https://gonka.ai/host/quickstart/


2) Зависимости

apt update && apt upgrade

apt install -y nano screen curl ca-certificates gnupg lsb-release python3 python3-pip

2.2) Nvidia - драйвера и компоненты

Для начала выполняем эти команды:

nvidia-smi && nvcc -V


типо указал куда обратить внимание, ок? Наверху тоже

Если версия драйверов ниже 580.82.07 и CUDA ниже 13.0 

А nvcc вообще ничего не вывел, то выполни по очереди:

nvidia-driver-update 580.82.07 --force
apt install nvidia-cuda-toolkit

Когда закончишь с установкой, выполни apt update и повтори первую команду из начала раздела.

к началу статьи


2.3) Docker - и все что с ним связано

У тебя установлен и настроен docker? Тогда выполни команду:

docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

Она скачает тестовый образ и если в твоей консоли будет такой вывод, как на картинке ниже, то переходи к пункту 2.4) Hugginface - модели для Gonka.ai

Если у тебя установлен docker но не настроен доступ к картам, то выполни:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

А затем попробуй команду из начала

Если у тебя не установлен docker, для начала попробуй установить из офф источника через .deb файл. Или качаешь последнюю версию:

sudo apt-get remove -y docker docker-engine docker.io docker-compose docker-compose-plugin containerd runc || true
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io || true
sudo rm -rf /var/lib/docker /var/lib/containerd

Добавь официальный GPG-ключ Docker

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Подключаешь официальный репозиторий Docker

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Установка Docker Engine + Compose plugin

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверка, что Docker работает

docker --version
docker compose version
sudo systemctl status docker --no-pager

Запусти тестовый контейнер

docker run hello-world

Если вывод совпадает с изображением, то подключаем к docker доступ к видеокартам

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

После этого выполняем первую команду из начала раздела

к началу статьи | к началу раздела


2.4) Hugginface - модели для Gonka.ai

Для того чтобы получать/майнить монеты Gonka(#GNK). Нужно чтобы твои карты держали в VRAM одну из поддерживаемых ИИ-моделей. Для того чтобы к тебе на серв прилетали запросы от "сервиса/пользователя", а получали ответ от ИИ-модели(инференс). Ты же, за это получаешь награду согласно количеству сгенерированных токенов. А так же, за генерацию "weght" для поддержания блокчейна. Я не особо в это вдавался, если интересна токеномика - https://gonka.ai/tokenomics.pdf


О чем это Я? По хорошему, перед тем как разворачивать контейнеры сервиса Gonka. Надо бы скачать "веса" пары моделей, ну на всякий случай. Список поддерживаемых сейчас(06.01.2026)

Qwen/Qwen2.5-7B-Instruct
Qwen/Qwen3-235B-A22B-Instruct-2507-FP8
Qwen/Qwen3-32B-FP8
Qwen/QwQ-32B
RedHatAI/Qwen2.5-7B-Instruct-quantized.w8a16

Я скачал Qwen/Qwen2.5-7B-Instruct, Qwen/Qwen3-32B-FP8, Qwen/QwQ-32B
Суммарно они сожрали около 135 Гб. Однако надо выбирать исходя из того, какое количество VRAM доступно на твоем сервер. Себе сейчас оставил только - Qwen/Qwen3-32B-FP8 (3 RTX 5090 = 96 Гб VRAM, Модель в работе жрет 80 Гб).

Качать модели нужно с а-ля гитхаба для ИИ - https://huggingface.co/

Регистрироваться там не обязательно, но наличие токена аккаунта, не режет скорость скачивания. Регистрируешься любым удобным способом, затем создай токен как показано на скринах ниже:

Задал имя и права. больше ничего не трогай и крути вниз
*тык*
Сохрани, потом его больше не посмотреть

Когда получил токен, приступаем к установке cli для скачивания. Предварительно у тебя должен был установиться python, на самом первом шаге. Если нет, то выполни:

apt update
apt install -y python3 python3-pip

Устанавливаем cli

pip3 install --upgrade huggingface-hub

Проверка

hf --help
Работающий hf_CLI

Логин и качаем модель

hf auth login

Далее надо вставить токен который получали ранее. Вводимые данные не будет видно в терминале во имя конспирации(наверное). Дальше если увидел свой username с сайта - все ок.

Создаем папку, которую будет видеть config.env который будем делать позже.

export HF_HOME=/mnt/shared/hf_cache
mkdir -p "$HF_HOME"
echo 'export HF_HOME=/mnt/shared/hf_cache' >> /root/.bashrc
source /root/.bashrc

Проверяем

echo "$HF_HOME"
ls -la "$HF_HOME"

Если директория создалась и индексируется, качаем нужную модель. Я советую качать в сессии screen, чтобы можно было закрыть на время.

screen -S hf_download

hf download Qwen/Qwen3-32B-FP8 --cache-dir "$HF_HOME"

Выходим из screen через комбинацию - Ctrl+A+D

Зайти в сессию можно через команду - screen -r hf_download

Лог будет примерно такой по завершении

cache-dir "$HF_HOME" Fetching 17 files: 100%|█████████████████████████████████████████████| 17/17 [06:51<00:00, 24.21s/it] Download complete: 100%|█████████████████████████████████████████| 4.88G/4.88G [06:51<00:00, 222MB/s]/mnt/shared/hf_cache/models--Qwen--Qwen3-32B-FP8/snapshots/aa55da1ecc13d006e8b8e4f54579b1ea8c3db2df Download complete: 100%|████████████████████████████████████████| 4.88G/4.88G [06:51<00:00, 11.8MB/s]


У ребят из gonka вообще есть раздел с бенчмарком для подбора лучшего конфига модели и параметров для твоего сервера. Но есть нюанс, чтобы тестировать, все равно нужна скачанная модель. Для ознакомления вот ссылка - https://gonka.ai/host/benchmark-to-choose-optimal-deployment-config-for-llms/#4-compare-performance-results-across-configurations_1

к началу статьи | к началу раздела


2.5) FRP - если нет белого IP

Как упоминалось в самом начале, для работы Gonka нужен белый/публичный ip адрес, для входящих запросов на инференс и PoC. А еще надо отрыть 3 порта:

  • 5000 - Tendermint P2P communication
  • 26657 - Tendermint RPC (querying the blockchain, broadcasting transactions)
  • 8000 - Application service (configurable)

Если у тебя есть публичный ip - красава, иди к следующему разделу, потому что. У меня нет публичного ip и я не умею пробрасывать порты в роутерах и NAT. По этому воспользовался крутой штукой, которую когда то подсказал дядя @Shatll
А именно - FRP . Все предельно просто: арендуем VPS за три сухарика, ставим туда FRP Service, ставим Client на свой сервер где будет работать Gonka, прописываем порты. Вуаля! У нашего сервера появляется публичный ip

Себя я ставил на VPS с таким конфигом: Ubuntu 24.04, 1 Core, 1 Gib RAM, 10 GiB HDD - за 2$ в месяц.

В терминале VPS

sudo apt update
sudo apt install -y curl wget tar ca-certificates ufw nano

Открываем нужные порты

sudo ufw allow OpenSSH
sudo ufw allow 7000/tcp
sudo ufw allow 5000/tcp
sudo ufw allow 26657/tcp
sudo ufw allow 8000/tcp
sudo ufw enable
sudo ufw status

Скачиваем frps

cd ~
FRP_VER=$(curl -s https://api.github.com/repos/fatedier/frp/releases/latest | grep tag_name | cut -d'"' -f4)
wget -O frp.tar.gz https://github.com/fatedier/frp/releases/download/${FRP_VER}/frp_${FRP_VER#v}_linux_amd64.tar.gz
tar xzf frp.tar.gz
cd frp_*_linux_amd64
sudo install -m 755 frps /usr/local/bin/frps
sudo mkdir -p /etc/frp

Конфиг и сервис для frps

nano /etc/frp/frps.ini

Заполняем

[common]
bind_port = 7000
token = ТУТ_ПРИДУМАЙ_ПАРОЛЬ
tls_enable = true

Теперь создаем sysmctl для автономной работы

nano /etc/systemd/system/frps.service

Заполняем

[Unit]
Description=frps (FRP Server)
After=network.target
[Service]
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=always
RestartSec=3s
[Install]
WantedBy=multi-user.target

Сохранить - CTRL+S Выйти - CTRL+X

Запуск

sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo systemctl status frps --no-pager

Теперь идешь на сервер на котором будешь поднимать Gonka и качаешь клиент

cd ~
FRP_VER=$(curl -s https://api.github.com/repos/fatedier/frp/releases/latest | grep tag_name | cut -d'"' -f4)
wget -O frp.tar.gz https://github.com/fatedier/frp/releases/download/${FRP_VER}/frp_${FRP_VER#v}_linux_amd64.tar.gz
tar xzf frp.tar.gz
cd frp_*_linux_amd64
sudo install -m 755 frpc /usr/local/bin/frpc
sudo mkdir -p /etc/frp

Конфиг для frpс (замени VPS_IP и тот же token)

nano /etc/frp/frpc.ini

Заполняем

[common]
server_addr = VPS_IP
server_port = 7000
token    = SUPER_SECRET_ПАРОЛЬ
tls_enable = true

[ssh] type = tcp 
local_ip = 127.0.0.1 
local_port = 22 
remote_port = 2222

[gonka_p2p]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000

[gonka_rpc]
type = tcp
local_ip = 127.0.0.1
local_port = 26657
remote_port = 26657

[gonka_api]
type = tcp
local_ip = 127.0.0.1
local_port = 8000
remote_port = 8000

Сохранить - CTRL+S Выйти - CTRL+X

Теперь создаем sysmctl для автономной работы

nano /etc/systemd/system/frpc.service

Заполняем

[Unit]
Description=frpc (FRP Client)
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
Restart=always
RestartSec=3s
[Install]
WantedBy=multi-user.target

Сохранить - CTRL+S Выйти - CTRL+X

Запуск

sudo systemctl daemon-reload
sudo systemctl enable --now frpc
sudo systemctl status frpc --no-pager

Быстрый тест:

На сервере подними временный HTTP на 8000

python3 -m http.server 8000 --bind 127.0.0.1

Теперь с любого места (компа/терминала - не сервер)

curl -I http://VPS_IP_ВПИШИ_СЮДА:8000

Должен прийти 200 OK (или 200/301 — главное, чтобы ответ есть)

А ТЕПЕРЬ СРОЧНО СЮДА - https://t.me/secret_guid/35


к началу статьи | к началу раздела


3) Gonka - создаем ключ

"Легкие" шаги закончились, приступаем к "средним".

Гонка использует двух-ступенчатую систему ключей/адресов.

cold_key - Получает награду и является "лицом" твой ноды.

warm_key - Работает в контейнере и подписывает транзакции твоей ноды.

Разработчики настоятельно рекомендуют создавать cold_key на сторонней машине, не на той где будешь разворачивать основное ПО.

Я генерировал в WSL2, не знаю может и под винду есть бинарь. Идешь по ссылке - https://github.com/gonka-ai/gonka/releases

Ищешь актуальный релиз

Выбирай тот что с надписью latest
Вот что я себе качал под WSL2

Скачал - распаковал. Затем дай права бинарю

chmod +x inferenced
./inferenced --help

Должен вылезти перечень CLI команд

Start inference node

Usage:

 inferenced [command]

Available Commands:

 comet            CometBFT subcommands

 completion         Generate the autocompletion script for the specified shell

 config           Utilities for managing application configuration

 create-client        Add a key to the keychain and then add a participant

 debug            Tool for helping with debugging your application


Создаем cold_key. gonka-account-key - можно назвать как хочешь, это имя кошелька

./inferenced keys add gonka-account-key --keyring-backend file

Ожидаемый лог

❯ ./inferenced keys add gonka-account-key --keyring-backend file
Enter keyring passphrase (attempt 1/3):
Re-enter keyring passphrase:

- address: gonka1rk52j24xj9ej87jas4zqpvjuhrgpnd7h3feqmm
 name: gonka-account-key
pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Au+a3CpMj6nqFV6d0tUlVajCTkOP3cxKnps+1/lMv5zY"}'
type: local

**Important** write this mnemonic phrase in a safe place
It is the only way to recover your account if you ever forget your password.

pyramid sweet dumb critic lamp various remove token talent drink announce tiny lab follow blind awful expire wasp flavor very pair tell next cable

Запиши: address, "key" и seed фразу. Частично они нам понадобится далее.

к началу статьи | к началу раздела


3.1) Gonka - качаем исходники с github

Переходим к терминалу нашей машины. Если у тебя hive_os, то наверное лучше всего все исходники качать прям в корень. Просто выполни в терминале

cd

чтобы у тебя был примерно такой путь: root@hive39384:~#

Клонируем репозиторий проекта

git clone https://github.com/gonka-ai/gonka.git -b main && \
cd gonka/deploy/join

Копируем исходный config

cp config.env.template config.env

После этого проверь наличие файлов в директории, через команду

ls

config.env - переменные для Network ноды

node-config.json - конфигурация сервера

docker-compose.yml - файл сборки основного стека контейнеров

docker-compose.mlnode.yml - файл сборки, который будет запускать ИИ модели

к началу статьи | к началу раздела


3.2) Настройка /gonka/deploy/join/config.env

Открыть файл для редактирования

nano config.env

Разработчики предлагают менять только эти параметры: 1) Идентификация и ключи

  • KEY_NAME — вручную задайте уникальный идентификатор (имя) вашей ноды.
  • KEYRING_PASSWORD — задайте пароль для шифрования ML Operational Key, который хранится на сервере в keyring backend (в файловом хранилище keyring).

2) Доступ к API (порт и публичный адрес)

  • API_PORT — укажите порт, на котором нода будет доступна на машине (по умолчанию 8000).
  • PUBLIC_URL — укажите публичный URL, по которому ваша нода будет доступна извне (например, http://your-domain.com:8000 или http://your-ip:8000).

3) P2P-сеть (внешний адрес)

  • P2P_EXTERNAL_ADDRESS — укажите внешний P2P-адрес вашей ноды (например, tcp://your-domain.com:5000 или tcp://your-ip:5000).

4) Ключ аккаунта

  • ACCOUNT_PUBKEY — используйте публичный ключ из Account Key, созданного ранее (значение после "key": — без кавычек).

5) Кэш моделей Hugging Face

  • HF_HOME — путь, куда будут кэшироваться модели Hugging Face. Укажите локальную директорию с правами на запись (например, ~/hf-cache).

Ты можешь поменять так как это предлагают они. Я же, приведу как изменил у себя

export KEY_NAME=my_cool_node
export KEYRING_PASSWORD=123456
export API_PORT=8000
export API_SSL_PORT=8443
export PUBLIC_URL=http://VPS_IP:8000
export P2P_EXTERNAL_ADDRESS=tcp://VPS_IP:5000
export ACCOUNT_PUBKEY=Ap8.....................Jb
export NODE_CONFIG=./node-config.json
export HF_HOME=/mnt/shared
export SEED_API_URL=http://node3.gonka.ai:8000
export SEED_NODE_RPC_URL=http://node3.gonka.ai:26657
export SEED_NODE_P2P_URL=tcp://node3.gonka.ai:5000
export DAPI_API__POC_CALLBACK_URL=http://api:9100
export DAPI_CHAIN_NODE__URL=http://node:26657
export DAPI_CHAIN_NODE__P2P_URL=http://node:26656
export RPC_SERVER_URL_1=http://node3.gonka.ai:26657
export RPC_SERVER_URL_2=http://node1.gonka.ai:26657
export PORT=8080
export INFERENCE_PORT=5050
export KEYRING_BACKEND=file

Пару пояснений

"ACCOUNT_PUBKEY=" надо указать свой "key" из генерации cold_key

VPS_IP - поменяй на адрес ip через который мы пробросили FRPS

"KEYRING_PASSWORD" это passphrase для “keyring-backend file”, который применяется в момент создания ML Operational Key (warm key) внутри api контейнера. Понадобится при генерации warm_key

http://node3.gonka.ai - тут надо будет поиграться. Когда я первый раз запускал, node2 была недоступна. В момент написания статьи, node3 не доступна. А node2 прекрасно работает. Но это нужно для первого запуска, потом все будет подтягиваться самостоятельно.

к началу статьи | к началу раздела


3.3) Настройка node-config

Вот тут начинаются сложности и веселуха. Я не могу подсказать что конкретно тебе, на конкретно твоем железе тут прописать. Именно тут указано, какую модель должен подхватить mlnode контейнер и какие какие именно запросы может принимать твой сервер. По хорошему есть полезный раздел с бенчмарками:
https://gonka.ai/host/benchmark-to-choose-optimal-deployment-config-for-llms/#4-compare-performance-results-across-configurations_1

Так же есть отличный телеграм канал https://t.me/gonka_docs с постами, где автор хорошо расписал с примерами, какие параметры за что отвечают и какие конфиги бывают.

Начинать читать от сюда - https://t.me/gonka_docs/8

Для своего сервера, я подобрал такой конфиг

"id": "node1",
"host": "inference",
"inference_port": 5000,
"poc_port": 8080,
"max_concurrent": 600,
"models": {
"Qwen/Qwen3-32B-FP8": {
"args": [
"--tensor-parallel-size", "1",
"--pipeline-parallel-size", "3",
"--max-model-len", "8192",
"--gpu-memory-utilization", "0.80"

  к началу статьи | к началу раздела


3.4) Настройка /gonka/deploy/join/.inference/config/config.toml

В идеале этот файл лучше не трогать и переходить к следующему пункту. Config.toml - отвечает за работу node и синхронизацию с блокченом. Так что если в результате запуска, ты обнаружишь что у тебя застопорилась синхронизация, 2-4 ребута с нуля не помогли... В таком случае качаешь мой вариант файла и далее либо редактируешь свой, переписывая частично те или иные параметры. Либо копируешь с заменой и смотришь на результат.

Открыть свой файл

nano /gonka/deploy/join/.inference/config/config.toml

мой вариант файла https://disk.yandex.ru/d/ProdKsG5R1H_OQ

к началу статьи | к началу раздела


3.5) Настройка docker-compose.mlnode.yml для RTX 5090 (sm120)

Чтобы сэкономить тебе 3 недели, а именно столько я потратил на то чтобы понять. Что, ни один базовый образ mlnode, не будет работать с 5000й линейкой карт. Надо просто подтянуть мой кастомный образ mlnode из dockerhub.

кто все эти скачивания делал? лол.
nano nano docker-compose.mlnode.yml

Параметры которые я отметил в скрине, обязательны для работы моей сборки mlnode

Строчки для копирования

image: vasyagun/gonka:mlnode-3.0.11-sm120-post8
  hostname: mlnode-308
  volumes:
   - /mnt/shared/hf_cache:/root/.cache/hub
  environment:
   - HF_HOME=/root/.cache
   - HUGGINGFACE_HUB_CACHE=/root/.cache/hub
   - VLLM_ATTENTION_BACKEND=FLASHINFER
   - TRANSFORMERS_CACHE=/root/.cache/hub
   - PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
   - NVIDIA_DRIVER_CAPABILITIES=compute,utility

Сохранить - CTRL+S Выйти - CTRL+X

Теперь мы можем подтянуть все наши docker образы и пробовать запуститься.

В директории cd ~/gonka/deploy/join выполни команду

docker compose -f docker-compose.yml -f docker-compose.mlnode.yml pull

Когда образы будут скачаны, переходи к следующему шагу.

к началу статьи | к началу раздела



3.6) Создаем warm key и регистрация

Все в той же директории cd ~/gonka/deploy/join выполни команду

source config.env && \
docker compose up tmkms node -d --no-deps

Это стартанет блокчейн часть стека. Например в контейнере node, можно будет увидеть начало синхронизации.

Нода начнет подтягивать чанки

посмотреть логи ноды, можно через команду (Выйти CTRL+C)

docker logs -f --tail=200 node


Пока идет синхронизация, а нода не подана в participants. Нужно сгенерировать warm_key и дать контейнерам права на подписание транзакций.

Нужно зайти в контейнер api. Для этого выполни

docker compose run --rm --no-deps -it api /bin/sh

Через вставку с помощью ПКМ(правой кнопки мыши), выполни

printf '%s\n%s\n' "$KEYRING_PASSWORD" "$KEYRING_PASSWORD" | inferenced keys add "$KEY_NAME" --keyring-backend file

Ожидаем вот такой вывод

~ # printf '%s\n%s\n' "$KEYRING_PASSWORD" "$KEYRING_PASSWORD" | inferenced keys add "$KEY_NAME" --keyring-backend file

- address: gonka1gyz2agg5yx49gy2z4qpsz9826t6s9xev6tkehw
name: node-702105
pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ao8VPh5U5XQBcJ6qxAIwBbhF/3UPZEwzZ9H/qbIA6ipj"}'
type: local


**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.

again plastic athlete arrow first measure danger drastic wolf coyote work memory already inmate sorry path tackle custom write result west tray rabbit jeans

Сохрани себе: address, key, seed


Сразу же в этом контейнере, следующей командой, выполни "регистрацию" своего сервера

inferenced register-new-participant \
$DAPI_API__PUBLIC_URL \
$ACCOUNT_PUBKEY \
--node-address $DAPI_CHAIN_NODE__SEED_API_URL

Должен будешь получить что то вроде такого вывода

Должный совпасть параметры

Account Address: твой cold адрес кошелька
 Account Public Key: твой cold "key"
 Validator Consensus Key: "key" из warm кошелька

Выходи из контейнера через команду

exit

Можешь сразу проверить опубликовался твой сервер или нет, на агрегаторе https://gonka.gg/

Просто вбей там свой cold address и выбери первый пункт participants

Помнишь в шаге 3) создаем ключ мы генерировали cold_key на отдельной машине? Возвращаемся туда где лежит скачанный бинарь .inferenced
Нужно выдать права warm_key с помощью команды

./inferenced tx inference grant-ml-ops-permissions \
  gonka-account-key \
  <ml-operational-key-address-from-step-3.1> \
  --from gonka-account-key \
  --keyring-backend file \
  --gas 2000000 \
  --node <seed_api_url from server's config.env>/chain-rpc/

Только замени в команде строчки
<ml-operational-key-address-from-step-3.1> - address из пункта 3.6

seed_api_url from - то что прописал у себя в config.env в поле SEED_API_URL=

Должен в ответ получить такой вывод

Transaction sent with hash: FB9BBBB5F8C155D0732B290C443A0D06BC114CDF43E8EE8FB329D646C608062E
Waiting for transaction to be included in a block...
Transaction confirmed successfully!
Block height: 174

к началу статьи | к началу раздела

К СОЖАЛЕНИЮ ВСЕ НЕ УМЕСТИЛОСЬ В ЭТУ СТАТЬЮ, ДЛЯ ПРОДОЛЖЕНИЯ - СЮДА

Report Page