Прозрачности не было

Я майню GPU-нодами в пуле Gonka. Блокчейн работает, награды начисляются, всё честно на уровне протокола. Но инвесторы видят только общие цифры пула — сколько заработала вся ферма за неделю. Какой именно доход принесла их конкретная нода? Сколько токенов пришло за последнюю эпоху? Непонятно.

Классическая проблема коллективного майнинга: есть технология, есть результаты, но нет интерфейса для инвестора. Блокчейн-эксплореры показывают транзакции, но не привязывают их к участникам пула. Можно руками парсить explorer, искать свой адрес, складывать цифры в Excel. Но кто этим будет заниматься каждый день? Нужен был трекер.

Первые 33 коммита

Решил сделать простой дашборд. Задача: взять данные из блокчейна Gonka, отфильтровать по адресам участников, показать в понятном виде. Никакого AI, никаких сложных фич — только отображение того, что уже есть on-chain.

Начал с базы. Первые коммиты: configurable fetch для работы с тремя нодами API (node1.gonka.ai, node2.gonka.ai, node3.gonka.ai). Если одна нода не отвечает, переключаемся на следующую. Параметры запросов вынес в конфиг — разные эндпоинты требуют разных лимитов и таймаутов. Ротация нод оказалась критичной: node2 иногда лежал по полдня, без fallback дашборд просто переставал обновляться.

Следующий шаг — кэширование. Блокчейн-ноды не любят частые запросы, а инвесторы хотят обновлять дашборд каждые пять минут. Поднял Redis, настроил TTL на час для балансов и на сутки для исторических данных эпох. Нагрузка на ноды упала в разы. Эпохи после завершения не меняются — можно кэшировать навсегда.

UI собрал на React. Ничего необычного: таблица с адресами, колонки для текущего баланса, наград за эпохи, статуса ноды. Никакого дизайна, чистый функционал. Главное — чтобы цифры обновлялись и были корректными.

PoC: tracking confirmation

Критичный момент — PR #1, tracking confirmation PoC. Нужно было доказать, что on-chain данные можно надёжно привязать к конкретным участникам пула. Парсил транзакции rewards из блокчейна, сопоставлял адреса с внутренним реестром инвесторов.

Сложность была в формате данных. Gonka использует Cosmos SDK, награды приходят как MsgWithdrawDelegatorReward транзакции. Каждая содержит адрес валидатора и адрес делегатора. Мне нужно было связать делегатора (инвестор) с конкретной нодой в пуле. Написал маппинг: словарь {адрес → инвестор}, обновляемый при добавлении новых участников.

Работало. Каждая нода получает награды на свой адрес, эти адреса известны, транзакции публичны. Связал одно с другим — получился персональный трекер доходов. Не приблизительно, не "по доле в пуле", а точные суммы для каждого адреса из блокчейна.

Выкатил release v0.1.0. Первый работающий прототип. Определение "готово" для этого этапа: показывает балансы, награды за эпохи, статус нод (активна/неактивна). Инвесторы могут зайти, ввести свой адрес, увидеть цифры. 33 коммита от пустого репозитория до релиза.

Пивот после прототипа

После v0.1.0 понял главное: трекер решает одну задачу (показать доходы), но инвесторам нужна платформа. Учитывать сделки — сколько вложили, по какой цене продали, какой ROI. Управлять группами нод — одна ферма, несколько инвесторов, каждый владеет набором адресов на разных серверах. Получать алерты — упала нода, задержка в наградах, нода попала в jail.

Трекер стал отправной точкой. Не финальным продуктом, а первым модулем будущего GonkaHub — полноценной инвестиционной платформы для GPU-майнинга. Все 33 коммита не пропали: кэширование в Redis, API-клиент с ротацией нод, логика парсинга транзакций — всё это переедет в новую архитектуру.

Собрал прототип, показал инвесторам, получил фидбек. Оказалось, что прозрачность — это стартовая точка, а не конечная цель. Контроль, аналитика, автоматизация — вот что реально нужно. Трекер это не даёт.

Что дальше

Работающий трекер v0.1.0 за 33 коммита — результат первого спринта. Главная ценность не в коде, а в понимании: какой продукт действительно нужен участникам GPU-майнинга.

Теперь делаю GonkaHub. Трекер станет одним из модулей вместе с учётом сделок, управлением портфелем нод, системой уведомлений. Архитектуру меняю: Django REST + PostgreSQL вместо простого React-бэкенда. Но фундамент — работа с блокчейном Gonka, кэширование, маппинг адресов — остаётся тем же.

Прототип показал, что задача решаема. Данные есть, технология работает. Осталось обернуть всё это в платформу, которая закроет реальные потребности инвесторов.