Основні функції
Створено для професійного майнінгу — безпечно, масштабовано, без простоїв
Повністю зашифрований тунель
Проблема
Stratum-трафік від майнерів до пулу передається відкритим текстом і легко блокується провайдерами. Існують реальні загрози перехоплення та викрадення хешрейту.
Рішення
HashRelay вставляє шар шифрування між майнерами та пулами. Клієнт інкапсулює Stratum-трафік у тунель TLS 1.3 або QUIC перед відправленням на сервер-ретранслятор.
Технічні деталі
- 1TLS 1.3 із сертифікатом (рекомендовано для продакшену)
- 2TCP + AES-256-GCM для середовищ без сертифіката
- 3TCP + ChaCha20-Poly1305 для пристроїв без апаратного AES
- 4QUIC для транскордонних/слабких мереж (мінімальна затримка)
Паралельне перенаправлення в кілька пулів
Проблема
Традиційні ферми, що добувають кілька монет, змушені підтримувати окремі проксі — складне керування, хаотичні порти.
Рішення
Статичні маппінги портів дозволяють одному екземпляру HashRelay одночасно перенаправляти кілька монет у різні пули без змін на майнерах.
Прив’язки портів
+ Створити| Порт | Пул | Протокол | Агр. | Статус |
|---|---|---|---|---|
| 3333 | F2Pool · BTC | TCP+TLS | Увімк | Активно |
| 3334 | AntPool · BTC | QUIC | Увімк | Активно |
| 4444 | Poolin · LTC | TCP+TLS | Вимк | Активно |
| 5555 | Luxor · KAS | QUIC | Увімк | Активно |
| 6666 | Foundry · BCH | TCP+TLS | Вимк | Пауза |
Технічні деталі
- 1Протокол-незалежне прозоре перенаправлення для будь-яких Stratum-монет
- 2Кожен маппінг налаштовується незалежно з адресою пулу та агрегацією
- 3Зміни конфігурації надсилаються клієнтам у реальному часі
- 4Stratum-парсинг можна вмикати/вимикати для кожного пулу
Агрегація запитів
Проблема
На великих фермах тисячі майнерів відкривають окремі тунельні з'єднання, створюючи величезне навантаження та ризик блокування пулом.
Рішення
Вбудований рушій агрегації розбирає Stratum на стороні клієнта та об'єднує тисячі запитів майнерів у кілька вихідних з'єднань.
Прив’язки портів
+ Створити| Порт | Пул | Протокол | Агр. | Статус |
|---|---|---|---|---|
| 3333 | F2Pool · BTC | TCP+TLS | Увімк | Активно |
| 3334 | AntPool · BTC | QUIC | Увімк | Активно |
| 4444 | Poolin · LTC | TCP+TLS | Вимк | Активно |
| 5555 | Luxor · KAS | QUIC | Увімк | Активно |
| 6666 | Foundry · BCH | TCP+TLS | Вимк | Пауза |
Технічні деталі
- 1Підтримка Stratum V1, V1-Ethash і Stratum V2
- 2miners_per_conn керує співвідношенням; за замовчуванням 500 майнерів/з'єднання
- 3Розбиття простору extranonce2 забезпечує унікальність пошуку
- 4Перемаппінг JSON-RPC ID запобігає колізіям
Єдина панель експлуатації та сповіщення
Проблема
Доводиться стрибати між Bitmain, MicroBT, Canaan та іншими — картина розрізнена, реакція повільна. Майнер офлайн годинами непомітно; reject rate дивитесь вручну на сайті пулу.
Рішення
HashRelay збирає хешрейт, аптайм, reject rate і стан заліза на одній панелі. Дзеркальний розбір Stratum асинхронно — без впливу на затримку ретрансляції. Пороги → Email, Telegram, Webhook миттєво.
Історія та статистика
Технічні деталі
- 1Вся ферма на одному екрані — без зоопарку додатків
- 2Офлайн майнера: реакція за секунди
- 3Високий reject: алерт при ≥30% (мін. 10 шар)
- 4Падіння хешрейту: ковзне вікно, push у кілька каналів
Гаряча відправка конфігурації
Проблема
Традиційні проксі вимагають перезапуску при кожній зміні конфігурації пулу — короткочасне відключення майнерів.
Рішення
Адміністратор змінює маппінги через дашборд або API; сервер фіксує зміну в транзакції БД і негайно надсилає потрібним клієнтам через постійне з'єднання.
Прив’язки портів
+ Створити| Порт | Пул | Протокол | Агр. | Статус |
|---|---|---|---|---|
| 3333 | F2Pool · BTC | TCP+TLS | Увімк | Активно |
| 3334 | AntPool · BTC | QUIC | Увімк | Активно |
| 4444 | Poolin · LTC | TCP+TLS | Вимк | Активно |
| 5555 | Luxor · KAS | QUIC | Увімк | Активно |
| 6666 | Foundry · BCH | TCP+TLS | Вимк | Пауза |
Технічні деталі
- 1Типи подій: CREATED, UPDATED, ENABLED, DISABLED, DELETED
- 2Клієнт гарячо оновлює локальні слухачі без перезапуску
- 3Атомарне виконання БД + відправки гарантує узгодженість
- 4Зміни набувають чинності менш ніж за секунду
Подвійний протокол TCP + QUIC
Проблема
Високі втрати пакетів на транскордонних каналах обвалюють пропускну здатність TCP. Деякі мережі блокують UDP, роблячи QUIC недоступним.
Рішення
HashRelay одночасно слухає TCP і QUIC. Оберіть протокол у файлі конфігурації залежно від умов мережі. Обидва готові для продакшену.
Технічні деталі
- 1QUIC: найкращий вибір для транскордонних/слабких мереж
- 2TCP + сертифікат TLS: максимальна сумісність для стабільних ЦОД
- 3TCP + ChaCha20: внутрішні мережі без сертифіката та слабкий CPU
- 4Обидва протоколи активні одночасно; клієнт обирає при розгортанні
Розумне автоматичне перепідключення
Проблема
Мережеві коливання розривають з'єднання і змушують майнери зупинятися — втрата доходу від хешрейту.
Рішення
Клієнт має вбудоване необмежене перепідключення з інтервалом за замовчуванням 5 секунд. Локальний Stratum-слухач залишається активним під час перепідключення.
Технічні деталі
- 1Пульс: інтервали Ping/Pong 60 с
- 23 пропущених пульси (~180 с) запускають перепідключення
- 3Майнери продовжують надсилати шари на локальний порт під час відновлення
- 4Мінімізує втрати хешрейту при нестабільності мережі
API керування
Проблема
Ручне керування в масштабі ненадійне й повільне. Командам потрібен програмний контроль.
Рішення
Повний RESTful JSON API на /api/v1/ дозволяє скриптам, CI/CD і стороннім системам автоматизувати керування всіма ресурсами HashRelay.
Технічні деталі
- 1Керування пулами: повні CRUD-операції
- 2Керування маппінгами портів із живим статусом
- 3Керування вузлами-клієнтами та генерація токенів
- 4Ендпоінти статистики та подій сповіщення
Продуктивність і стабільність Rust
Проблема
Ретранслятор працює 24/7 під величезним навантаженням. Скрипти та змішані стеки дають GC-паузи, витоки й джиттер — на масштабі ферми це критично.
Рішення
Ядро HashRelay написане на Rust з нуля — безпека пам'яті, zero-copy і мінімальне навантаження на CPU при мільйонах майнерів.
Технічні деталі
- 1Повний стек Rust: ретрансляція, статистика, адмінка
- 2Zero-copy: дані по можливості не покидають ядро
- 3Без GC-пауз: низька затримка під навантаженням
- 4Безпека пам'яті на етапі компіляції
Телеметрія заліза та історія
Проблема
Перегрів і дрейф споживання спливають пізно. У кожного виробника свій формат — єдиних трендів немає.
Рішення
Періодичний збір температури, потужності, обертів вентиляторів. Єдине сховище з вибіркою за часом для швидкого аналізу.
Апаратна телеметрія
ЗібраноТехнічні деталі
- 1Автозбір без ручного обходу
- 2Температура, потужність, вентилятори
- 3Повна історія для порівняння трендів
- 4Зв'язка з панеллю та сповіщеннями
Віддалений доступ до веб-UI майнера
Проблема
Веб-інтерфейс майнера лише в LAN. Віддалена бригада не може зайти — лише виїзд або VPN на кожен риг.
Рішення
HashRelay пробрасовує веб-порт майнера через зашифрований тунель. Налаштування, логи й діагностика — ніби ви на фермі.
Воркери
1024 майнерів| Статус | Воркер | Пул | Hash 5m | Reject |
|---|---|---|---|---|
| Онлайн | farm-a-01 | F2PoolBTC | 118.2 TH | 0.08% |
| Онлайн | farm-a-02 | F2PoolBTC | 117.9 TH | 0.11% |
| Онлайн | farm-b-07 | AntPoolBTC | 96.4 TH | 0.22% |
| Офлайн | farm-b-12 | AntPoolBTC | — | — |
| Онлайн | rack-c-03 | PoolinLTC | 8.6 GH | 0.05% |
| Онлайн | rack-c-09 | LuxorKAS | 12.1 TH | 0.14% |
Технічні деталі
- 1Біла IP на майнері не потрібна
- 2Зашифрований тунель до веб-UI
- 3Діагностика з будь-якої точки
- 4Доступ контролюється платформою
Єдиний моніторинговий екран
Проблема
Ферма на різному залізі — N програм моніторингу, метрики й алерти розкидані. Ефективність падає.
Рішення
Екран HashRelay: хешрейт, аптайм, reject, телеметрія — аномалії підсвічуються й пушаться. Одна платформа замість N утиліт виробників.
- Воркер farm-a-12 офлайн > 5m00:42
- Сплеск reject на :333301:18
- Клієнтський вузол edge-03 перепідключається02:05
Технічні деталі
- 1KPI всієї ферми на одному екрані
- 2Автопідсвітка та сповіщення
- 3Єдиний вигляд незалежно від бренду
- 4Готово для екрана в диспетчерській