ВступлениеНа днях я наткнулся на проект братьев Либерманов - децентрализованную инфраструктуру ИИ под названием Gonka. Признаюсь, их идея меня зацепила. ИИ сегоВступлениеНа днях я наткнулся на проект братьев Либерманов - децентрализованную инфраструктуру ИИ под названием Gonka. Признаюсь, их идея меня зацепила. ИИ сего

Децентрализованный ИИ Gonka: Мой опыт запуска ноды для майнинга на арендованном сервере

Вступление

На днях я наткнулся на проект братьев Либерманов - децентрализованную инфраструктуру ИИ под названием Gonka. Признаюсь, их идея меня зацепила. ИИ сегодня - это новое электричество, новый интернет, даже новая гравитация. Он проникает во все сферы жизни: где-то плавно и незаметно, где-то резко и стремительно, но всё более неотвратимо.

Как инженер-разработчик в этой области, я постоянно слежу за тем, что происходит на переднем крае. Если кратко - это чистое безумие. Новости о новых моделях, устройствах для инференса, подходах к обучению или готовых приложениях выходят буквально каждый день. Утром пьёшь кофе - «корейская нейросеть обогнала ChatGPT по бенчмаркам, имея в сотни раз меньше параметров». Вечером смотришь сериал - «вышло устройство размером с десктоп, способное запускать большие языковые модели локально». Ночью видишь сон с вашей любимой актрисой - «Google добавили ризонинг в Google Earth». Динамика поражает.

Вернёмся к проекту Gonka. Не могу сказать, что именно он «выстрелит» и принесёт ранним инвесторам x100. Не могу этого сказать и о любом другом стартапе в этой сфере. Однако уверен почти на сто процентов: сама идея и способ, которым братья предлагают изменить сложившуюся ситуацию с дорогими GPU-ресурсами, имеют право на жизнь. Для подробного ознакомления с проектом gonka советую прочитать эту статью на хабре.

Если кратко, Gonka - это децентрализованная AI-инфраструктура, предлагающая альтернативу дорогим облачным вычислениям для обучения и инференса моделей. Вместо расчёта хэшей (как в Bitcoin) система использует вычислительные мощности GPU для решения реальных задач ИИ. Хосты получают вознаграждение в токенах Gonka, а разработчики - доступ к более дешёвым ресурсам для развертывания приложений.

Важный дисклеймер:
Я не рекламирую проект, не призываю в нём участвовать и не даю финансовых прогнозов. Всё, что описано ниже, - это эксперимент, трата денег под вашу ответственность и очень рискованное мероприятие. Если у вас есть сумма, которую не жалко потерять, - добро пожаловать. Если же вы надеетесь быстро разбогатеть, вкладываете последнее или страдаете «криптолихорадкой», пожалуйста, закройте статью. Это может быть вредно для вашего кошелька и нервной системы.

Дисклеймер от DeepSeek:

Скрытый текст

Эта статья — исключительно личный опыт и технический эксперимент автора. Она не является:

  • Инвестиционной рекомендацией, советом или призывом к участию в проекте Gonka или любом другом криптовалютном/майнинговом проекте.

  • Финансовым, юридическим или техническим руководством к действию.

  • Гарантией доходности. Описанные действия с высокой вероятностью приведут к потере средств, а не к заработку.

Автор статьи:

  • Не призывает вас вкладывать деньги. Все действия вы совершаете под свою полную и единоличную ответственность.

  • Не дает никаких прогнозов относительно будущего проекта Gonka, стоимости его токенов или успешности технологии.

  • Не является экспертом в области блокчейна, криптоинвестиций или финансового регулирования.

Криптовалюты и майнинг связаны с чрезвычайно высокими рисками, включая, но не ограничиваясь:

  • Полной потерей вложенных средств из-за волатильности рынка, технических сбоев, мошенничества или закрытия проекта.

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

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

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

  1. Четко понимать, что рискуете деньгами, которые готовы безвозвратно потерять.

  2. Провести собственное глубокое исследование (DYOR — Do Your Own Research).

  3. Проконсультироваться с финансовым и юридическим специалистами.

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

  1. Аренда и настройка сервера (включая оплату и подключение).

  2. Запуск узлов (node) сети Gonka.

  3. Выбор моделей для инференса и получение вознаграждения.

Будет немного технических деталей (я постарался их сократить), упрощений для новичков и, конечно, иллюстраций. Я не эксперт в блокчейне и криптовалютах, поэтому могу в чём-то ошибаться. Все замечания, поправки и советы прошу оставлять в комментариях - буду искренне благодарен за обратную связь.

Поехали!

Что потребуется для майнинга Gonka
Для участия в децентрализованной сети Gonka вам понадобится много видеопамяти. Точнее - современная видеокарта (или несколько) от NVIDIA. Дело в том, что большие языковые модели (LLM) состоят из миллиардов параметров, которые для ускорения расчётов должны полностью помещаться в память GPU. Поэтому минимальный комфортный объём - от 40 ГБ видеопамяти. Это может быть одна серверная карта или связка из нескольких игровых.

В этой статье я расскажу о конфигурации на базе двух RTX 4090. Почему именно она? Во-первых, такую систему проще и дешевле арендовать. Во-вторых, теоретически подобный стенд можно собрать и локально - например, на даче или в домашней мастерской.

Аренда сервера

Выбор провайдера
У меня самого нет под рукой двух RTX 4090 (ну типа), поэтому я начал с поиска сервисов для аренды серверов с видеокартами. Основными критериями были цена за GPU в час и возможность оплаты из России. Сообщество Gonka оказалось довольно активным, и в нём я нашёл сводную таблицу с провайдерами, ценами и условиями.

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

Название

Способ оплаты

Цена
(H100 usd/h)

Регистрация

Gcore

кредитной картой

1,67 (от 8 GPU)

- (не пробовал)

Spheron

кредитной картой / криптовалютой

2,2

+ (нужно использовать запрещенное Слово из Трех Букв)

Lambda

не указаны способы оплаты.

2,19

+ (СизТБ)

Hyperstack

оплата кредитной картой/ через Stripe

1,95

+ (СизТБ)

Hyperbolic

оплата картой

1,99

+ (СизТБ)

Tensordock

кредитной картой / через Stripe

1,99

+ (СизТБ)

Мой выбор пал на Spheron AI, потому что сервис позволяет оплачивать услуги через Web3-кошелёк (USDC), а в интернете уже есть наглядные инструкции по настройке сервера и запуску нод Gonka именно на этой платформе.

Давайте разберём процесс подробнее. (И ещё раз: это не призыв к майнингу и не реклама Spheron.ai).

Регистрация на сайте и аренда сервера
Заходим на сайт Spheron.ai, нажимаем Sign Up в правом верхнем углу, указываем email (я использовал Gmail) и придумываем пароль. Всё стандартно.

Рис. 1. Форма регистрации на Spheron
Рис. 1. Форма регистрации на Spheron

После подтверждения почты и заполнения анкеты вы попадёте в личный кабинет. Здесь нужно выполнить два ключевых действия: 1. пополнить баланс и 2. добавить публичный SSH-ключ (id_ed25519.pub или id_rsa.pub).

Пополнение баланса

Я решил пополнять баланс криптовалютой, чтобы избежать потенциальных проблем с российскими картами. Если у вас уже есть криптокошелёк с USDC, этот раздел можно пропустить. Вам достаточно нажать Deposit, выбрать Crypto, указать сумму и подтвердить транзакцию.

Рис. 2. Внесение депозита через криптовалюту
Рис. 2. Внесение депозита через криптовалюту

Теперь подробнее для тех, кто с криптой пока не знаком. (Спойлер: пока я разбирался, какие монеты и в какой сети нужны, я потратил около 1 тысячи рублей на комиссии - плата за опыт.)

Для пополнения баланса на Spheron вам понадобится поддерживаемый кошелёк. Я изучил все варианты и остановился на Metamask. Кстати, при попытке оплаты сайт сам предложит его скачать - как расширение для браузера, так и мобильное приложение.

Рис. 3. Список поддерживаемых кошельков на Spheron
Рис. 3. Список поддерживаемых кошельков на Spheron

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

Регистрируемся в Metamask, создаём аккаунт и выбираем сеть Ethereum Mainnet. Важный момент: после установки Metamask может долго подключаться к блокчейн сети (Ethereum Mainnet). Не пугайтесь, если он не заработает мгновенно. В моём случае всё пришло в норму примерно через 30 минут.

Пополняем баланс Metamask
(Скорее всего, есть много способов это сделать, но опишу свой - возможно, не самый оптимальный.) Я завёл для этого криптокошелёк в Telegram и купил монеты через раздел «Пополнить» → «P2P Экспресс».

Рис. 4. Интерфейс кошелька в Telegram
Рис. 4. Интерфейс кошелька в Telegram

В Telegram-кошельке нельзя сразу купить USDC (поправьте в комментариях, если это не так), поэтому покупаем либо Ethereum (ETH), либо USDT. Обе можно перевести в Metamask. Возвращаемся в Metamask. Выбираем сеть Ethereum, нажимаем «Получить». Кошелёк покажет ваш адрес (реквизиты кошелька) и QR-код - он понадобится для перевода.

Рис. 5. Интерфейс Metamask (раздел получения средств)
Рис. 5. Интерфейс Metamask (раздел получения средств)
Рис. 6. QR-код для быстрого копирования адреса
Рис. 6. QR-код для быстрого копирования адреса

Теперь в кошельке Telegram: выбираем Ethereum, нажимаем 1.«Отправить», затем 2.«Вставить» (сканируем QR-код). После сканирования нужно 3. удалить префикс ethereum: из адреса, подтвердить, ввести сумму и отправить.

Рис. 7. Последовательность шагов для перевода ETH из Telegram-кошелька
Рис. 7. Последовательность шагов для перевода ETH из Telegram-кошелька

Можно отправить и USDT - разница лишь в том, что при сканировании нужно выбрать стандарт ERC20. Комиссия будет списана в любом случае.

После первого перевода (~5000 рублей в ETH) баланс в Metamask не обновился сразу. Я не запаниковал и отправил ещё ~2000 рублей, но уже в USDT. Баланс всё равно не менялся... Вот тут я начал нервничать. «Всегда знал, что с криптой работают одни жулики», - подумал я. Жена (до этого не обращавшая на меня никакого внимания), словно почувствовав что-то, спросила с дивана: «Наигрался со своей криптой?». Не ответив, я грустно пошёл проходить Duolingo.

Но не успел я обыграть Оскара в шахматы, как баланс в Metamask наконец обновился. Победа!

Рис. 8. Первый ненулевой баланс в Metamask
Рис. 8. Первый ненулевой баланс в Metamask

Далее нажимаем Swap (обмен одной криптовалюты на другую прямо внутри кошелька) и меняем ETH на USDC. Замечу, что у меня своп сработал только в мобильном приложении - в браузерном расширении постоянно появлялась ошибка «Нет доступных котировок».

Финальный шаг - пополнение баланса на Spheron

Нажимаем в личном кабинете Deposit → Crypto, вводим нужную сумму в USDC и жмём «Купить кредиты». После этого откроется окно выбора сети и кошелька. Выбираем Ethereum Mainnet, подключаем кошелёк Metamask и подтверждаем транзакцию. Если возникают проблемы, попробуйте оплатить через QR-код, используя мобильное приложение Metamask.

Рис. 9. Выбор сети блокчейна для оплаты
Рис. 9. Выбор сети блокчейна для оплаты

Генерация ssh-ключей и настройка доступа

Второй шаг - добавление публичного SSH-ключа на сайт (на примере Ubuntu). Открываем терминал и выполняем команду генерации ключей. Spheron рекомендует указать в комментарии тот email, который вы использовали при регистрации:

ssh-keygen -t ed25519 -C "[email protected]"

ssh-keygen запросит имя файла и пароль. Оставляем значения по умолчанию, трижды нажимая Enter. Если в терминале появилась рандомизированная ASCII-графика - ключи успешно созданы.

Рис. 10. Результат успешной генерации SSH-ключей
Рис. 10. Результат успешной генерации SSH-ключей

Теперь выводим содержимое публичного ключа и копируем его (правой кнопкой мыши):

cat ~/.ssh/id_ed25519.pub

Заходим на сайт Spheron: Settings → SSH Keys → Add SSH Key. Вводим произвольное имя ключа, вставляем скопированный текст в поле Public Key и сохраняем.

Рис. 11. Интерфейс добавления SSH-ключа на Spheron
Рис. 11. Интерфейс добавления SSH-ключа на Spheron

На сайте также есть подробная инструкция на английском, включая вариант для пользователей Windows. Отлично. Теперь можно запускать сервер.

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

Переходим к выбору конфигурации. Я буду использовать сервер с двумя RTX 4090. На сайте Spheron:

  1. Выбираем Deploy GPUs.

  2. В поиске находим RTX4090 (на момент написания было доступно 21 машина).

  3. В Instance Configuration выбираем x2 «Multi GPU».

  4. Выбираем ОС Ubuntu 22.04 (как рекомендуют разработчики Gonka) и драйвер NVIDIA 570.

  5. Нажимаем Next.

Цена конфигурации составила около 1$ в час.

Рис. 12. Выбор инстанса и конфигурации GPU
Рис. 12. Выбор инстанса и конфигурации GPU

Меня немного смущал объём оперативной памяти - всего 24 ГБ против рекомендованных для Gonka 64 ГБ. Но для теста решил попробовать имеющийся вариант.

На финальном шаге выбираем заранее загруженный SSH-ключ и нажимаем Deploy Instance.

Рис. 13. Запуск инстанса
Рис. 13. Запуск инстанса

После этого в разделе Instances появится наш инстанс со статусом Running(1). По правилам провайдера, остановить или завершить работу инстанса можно только через 20 минут после запуска - это сделано для стабильности системы.

Рис. 14. Список запущенных инстансов
Рис. 14. Список запущенных инстансов

Ждём, пока статус сменится с Deploying на Running (обычно около минуты). Выбираем наш инстанс, и справа откроется панель с детальной информацией. Нам нужны данные для подключения: IP-адрес сервера и команда SSH.

Подключаемся к серверу командой вида:

ssh -i <путь_к_вашему_приватному_ключу> [email protected]

После успешного подключения можно приступать к запуску Docker-контейнеров с сетевыми и ML- нодами Gonka.

Настройка зависимостей и запуск нод

Немного теории

Для участия в сети Gonka необходимо запустить два узла (node): сетевой узел и узел машинного обучения.

  • Сетевой узел - это сервис, состоящий из двух компонентов: узла цепочки (chain node) и узла API. Он обеспечивает всю коммуникацию в сети. Узел цепочки подключается к блокчейну, а узел API управляет запросами пользователей.

  • Узел машинного обучения (ML-узел) - это сервис, который выполняет инференс больших языковых моделей (LLM) на GPU. Для подключения к сети вам потребуется хотя бы один такой узел.

Запуск нод осуществляется через Docker-контейнеры. Контейнеры должны взаимодействовать с блокчейн-сетью через следующие порты:

  • 5000 - для P2P-связи Tendermint

  • 26657 - для Tendermint RPC (запросы к блокчейну, трансляция транзакций)

  • 8000 - для службы приложений

Это значит, что эти порты должны (всегда) быть открыты на тех устройствах где запущены ноды.

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

  • 9100, 9200 — внутренний API сетевого узла

  • 5050 - API логического вывода LLM (ML Node)

  • 8080 — API ML Node

Важный момент: если ноды (контейнеры) запущены на разных физических серверах, эти порты необходимо открыть, что потенциально небезопасно. Для обеспечения безопасности рекомендуется, чтобы все хосты находились в одной локальной сети или ноды были запущены на одном хосте. Самый простой и безопасный вариант - запустить все Docker-контейнеры (ноды) на одной машине. В этом случае вам необходимо изменить параметры в файлах «gonka/deploy/join/docker-compose.*».

docker-compose.yml (сетевой узел):

api: ports: - "127.0.0.1:9100:9100" - "127.0.0.1:9200:9200"

docker-compose.mlnode.yml (ML узел):

ports: - "127.0.0.1:${PORT:-8080}:8080" - "127.0.0.1:${INFERENCE_PORT:-5050}:5000"

При создании нового узла генерируется несколько ключей безопасности. Самый важный из них - холодный ключ (cold key), или ключ аккаунта. Он никогда не должен находиться на сервере. Горячий (тёплый) ключ (ML-ключ) используется для подписания транзакций в сети, его можно относительно легко заменить, и он не предоставляет доступ к вашим средствам.

Далее я намеренно опущу некоторые технические детали, чтобы не усложнять процесс запуска. Кроме того, некоторые параметры в конфигурационном файле config.env мы оставим по умолчанию. Более тонкая настройка возможна, если вы специалист и хорошо разбираетесь в вопросе. Всю дополнительную информацию можно найти на официальном сайте проекта и в инструкции от Spheron.ai.

Настройка локального компьютера и сервера

Локальный компьютер
Сначала необходимо скачать Inferenced CLI и создать холодный ключ (cold key). В процессе сохраните сид-фразу (seed phrase) и публичный ключ аккаунта (ACCOUNT_PUBKEY). Подробная инструкция по созданию ключа и привязке кошелька к аккаунту доступна по ссылке.

Сервер (установка библиотек)

Подключаемся к серверу по SSH (понадобится ваш приватный SSH-ключ) и выполняем следующие шаги.

1. Обновляем систему

sudo apt update -y sudo apt upgrade -y

Обновление может занять от 15 минут до часа.

2. Устанавливаем Git, Docker и Docker Compose

sudo apt install git docker.io -y sudo apt install docker-compose -y

2.1 Для тех кто настраивает локальный хост

Установите драйвер nvidia и nvidia-cuda-toolkit

ubuntu-drivers devices sudo apt install nvidia-driver-580 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-9

Установите Docker

# Add Docker's official GPG key: sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: sudo tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: https://download.docker.com/linux/ubuntu Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") Components: stable Signed-By: /etc/apt/keyrings/docker.asc EOF sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo groupadd docker sudo usermod -aG docker $USER

3. Устанавливаем NVIDIA Container Toolkit (для поддержки GPU в контейнерах)

sudo apt install nvidia-container-toolkit -y sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker

4. Проверяем доступ к GPU из контейнера

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

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

Рис. 15. Проверка доступности видеокарт из Docker-контейнера
Рис. 15. Проверка доступности видеокарт из Docker-контейнера

Если вывод не появился, продолжать нет смысла - проблема с доступом к GPU.

Примечание для домашних серверов:
Даже если nvidia-smi работает, это не гарантирует, что вы сможете присоединиться к сети Gonka. Необходимо убедиться, что фреймворк машинного обучения (использующий библиотеку PyTorch) видит видеокарты:

import torch print(torch.cuda.is_available())

Проблема может быть вызвана слабым процессором или другими ограничениями. Дополнительно можно проверить возможность запуска больших моделей с помощью Ollama или Jan - скачайте программу, загрузите модель, которая помещается в вашу видеопамять, и протестируйте работу.

5. Клонируем репозиторий Gonka

Создаём каталог для весов моделей Hugging Face:

mkdir -p /mnt/shared

Флаг -p позволяет создать все родительские директории, если они не существуют. Именно в эту папку позже нужно будет сохранить модель (например, Qwen2.5-7B).

Клонируем репозиторий Gonka:

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

Копируем шаблон конфигурационного файла:

cp config.env.template config.env

Редактирование конфигурационных файлов

1.Настраиваем основной конфигурационный файл

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

nano config.env

В файле вы увидите следующие параметры:

Рис. 16. Шаблон конфигурационного файла
Рис. 16. Шаблон конфигурационного файла

где:

  • export KEY_NAME= - имя локального ML-ключа (придумайте любое).

  • export KEYRING_PASSWORD= - локальный пароль (придумайте надёжный пароль).

  • export PUBLIC_URL= - публичный URL вашего узла (адрес сервера и порт 8000).

  • export P2P_EXTERNAL_ADRESS= - TCP-адрес сервера (порт 5000).

  • export ACCOUNT_PUBKEY= - публичный ключ аккаунта, полученный на локальном компьютере (формат: pubkey: {"@type": "...", "key": "oweur2oWr9wfju93..."}).

  • export HF_HOME= - каталог для кэша Hugging Face (можно оставить по умолчанию или изменить).

KEYRING_PASSWORD — это passphrase для «keyring-backend file», который прменяется в момент создания ML Operational Key (горячий ключ) внутри api контейнера. Понадобится для генерации warm_key.

Все значения в угловых скобках <...> необходимо заменить на свои.

Важно:
Если вы запускаете майнинг на домашнем сервере, вам потребуется публичный (белый) IP-адрес либо инструмент для туннелирования (например, ngrok).

Пример заполненного конфигурационного файла (вымышленный):

export KEY_NAME=My_GNK_Server_For_Free_AI export KEYRING_PASSWORD=488As2KF8yoeS1 export API_PORT=8000 export API_SSL_PORT=8443 export PUBLIC_URL=http://111.111.111.114:8000 export P2P_EXTERNAL_ADRESS=tcp://111.111.111.114:5000 export ACCOUNT_PUBKEY=oweur2oWr9wfju93OskwQ9382Lfjjje ...

При желании можно также изменить SEED_NODE и RPC_SERVER (например, для подключения к тестовой сети или другому узлу).

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

source config.env

Это добавит все переменные (включая HF_HOME) в окружение.

После редактирования config.env необходимо настроить файл node-config.json, где указывается, какая модель (LLM) будет использоваться для инференса.

2. Конфигурационный файл инференса

Открываем файл node-config.json для редактирования:

nano node-config.json

Пример конфигурации для одной карты H100:

[ { "id": "node1", "host": "inference", "inference_port": 5000, "poc_port": 8080, "max_concurrent": 500, "models": { "Qwen/Qwen2.5-7B-Instruct": { "args": [ "--quantization", "fp8", "--gpu-memory-utilization", "0.9" ] } } } ]

Для двух RTX 4090 (24 ГБ каждая) рекомендуется модель Qwen/Qwen3-32B-FP8 (~35 ГБ). Конфигурация будет следующей:

[ { "id": "node1", "host": "inference", "inference_port": 5000, "poc_port": 8080, "max_concurrent": 500, "models": { "Qwen/Qwen3-32B-FP8": { "args": [ "--quantization", "fp8", "--tensor-parallel-size", "2", "--max-model-len", "32768", "--gpu-memory-utilization", "0.90" ] } } } ]

Скачивание модели и запуск контейнеров

Важно: Скачивание модели может занять много времени (десятки гигабайт). Лучше сделать это заранее на локальном компьютере, а затем перенести модель на сервер с помощью scp (копирование по SSH). Это сэкономит время аренды сервера.

Если скачиваете непосредственно на сервер:

1.Установите CLI Hugging Face:

sudo apt update && sudo apt install -y python3-pip sudo apt install -y pipx pipx install huggingface_hub[cli] pipx ensurepath export PATH="$HOME/.local/bin:$PATH"

2.Скачайте модель (например, Qwen/Qwen2.5-7B-Instruct): (перед этим шагом лучше залогиниться, так скорость скачивания будет быстрее)

hf download Qwen/Qwen2.5-7B-Instruct

Примечание: Официальный сайт Gonka приводит следующий список поддерживаемых моделей:

Рис. 17. Список поддерживаемых моделей (неполный)
Рис. 17. Список поддерживаемых моделей (неполный)

Это не исчерпывающий список, так как в дашбордах участники майнинга используют и другие модели. Все их можно скачать с Hugging Face. Наименьшая из рекомендуемых - Gemma-3-27B (~55 ГБ), затем Qwen3-32B (>65 ГБ)

Совет по скачиванию:
Для ускорения загрузки на локальный компьютер лучше использовать Git LFS (Large File Storage). Установите git lfs, а затем скачайте репозиторий:

GIT_LFS_SKIP_SMUDGE=1 git clone https://USERNAME:[email protected]/google/gemma-3-27b-it --depth 1 cd gemma-3-27b-it git lfs pull

Скорость при таком способе может достигать ~11 МБ/с против ~0.25 МБ/с (Wi-Fi)

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

После того как модель загружена на сервер, перейдите в директорию gonka/deploy/join (проверьте командой pwd) и выполните:

1.Загрузка образов Docker:

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

на этом этапе контейнеры должны скачаться, во время скачивания вы должны увидить в терминале примерно такую картину:

Рис. 18. Скачивание docker-образа
Рис. 18. Скачивание docker-образа

2.Запуск основных служб:

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

  • tmkms - генерирует ключ консенсуса, необходимый для регистрации валидатора, и обеспечивает его безопасное хранение.

  • node - подключается к блокчейну и предоставляет RPC-эндпоинт для получения ключа консенсуса.

Теперь нужно сгенерировать warm_key и дать контейнерам права на подписание транзакций.

3.Запуск API-контейнера и вход в его терминал:

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

API-контейнер намеренно не запускался на предыдущем (2-ом) шаге, так как внутри него необходимо создать операционный ключ машинного обучения (ML-ключ).

3.1 Создание рабочего ML-ключа и регистрация ноды

Внутри контейнера API создадим рабочий (тёплый) ML-ключ. Выполните команду:

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

Пример успешного вывода:

Рис. 19. Результат генерации ML-ключа
Рис. 19. Результат генерации ML-ключа

Сохраните информацию о ключе - она понадобится на следующем шаге (понадобится address).

Затем, оставаясь внутри контейнера, выполните регистрацию нового участника сети. Для этого просто скопируйте и выполните следующую команду:

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

Ожидаемый результат в терминале:

Рис. 20. Подтверждение доступности ML-ноды
Рис. 20. Подтверждение доступности ML-ноды

Локальный компьютер: предоставлкние прав ML-ноде

На защищённом локальном компьютере (где был создан холодный ключ) выполните команду:

./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 http://node2.gonka.ai:8000/chain-rpc/

Замените <ml-operational-key-address-from-step-3.1> на адрес рабочего ML-ключа, полученного на шаге 3.1. Эта операция предоставляет вашей ноде права на предоставление Proof of Compute.

Вернитесь на сервер

Завершающий запуск на сервере

Вернитесь на сервер и запустите все ноды одной командой:

source config.env && docker compose -f docker-compose.yml -f docker-compose.mlnode.yml up -d

Всё! Нода должна быть запущена и подключена к сети.


Важно понимать, что на этом этапе проблемы по поддержанию ноды не заканчиваются, а наоброт — только начинаются. Разрабы постоянно выкатывают обновления, которые нужно применять на работающие ноды. Вся информация доступна в дисскоррде. Сейчас подключение к сети и вовсе временно приостановлено. Да и с двумя 4090 нода не пройдёт требование к модели (сейчас требуют, чтобы нода могла поддерживать Qwen-235B). Сам я не в состоянии постоянно следить и поддерживать работоспособность ноды, поскольку занят фулл тайм на основной работе. Но если тебя не останавливают все эти сложности, если ты смелый, ловкий, умелый, то желаю удачи!

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

Проверка контейнеров:

docker logs -f --tail=200 node docker logs -f --tail=200 join-mlnode-308-1

Проверить актуальный блок сети:

curl -sS http://node1.gonka.ai:8000/chain-rpc/status | jq -r '.result.sync_info.latest_block_height'

Проверить блок на котором ваша нода:

curl -sS http://127.0.0.1:26657/status | jq -r '.result.sync_info.catching_up, .result.sync_info.latest_block_height'

Проверить видит ли тебя сеть как кандидата/участника:

curl -s http://node2.gonka.ai:8000/v1/participants/gonka19c58vpkdx4gyh6jqzwuhdt7mky534c939fhqg3 | jq

Полезные ссылки:

  • gonka.ai — главная точка входа в проектную информацию и обзор экосистем.

  • Whitepaper — техническая документация, описывающая архитектуру, консенсус-модель, Proof-of-Compute и т.д.

  • Быстрый старт - для хостов

  • GitHub — доступ к исходному коду проекта, репозиториям, деятельности в области разработки и вкладам с открытым исходным кодом.

  • Токеномика — обзор токеномики проекта, включая поставки, распределение, стимулы и экономический дизайн.

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.