Десктопное приложение для диагностики качества подключения к майнинг-пулам без нагрузки на GPU
🇬🇧 English | 🇷🇺 Русский
Возможности • Установка • Использование • Документация • FAQ
StratumTester — это десктопное приложение для Windows и macOS, предназначенное для диагностики качества подключения к майнинг-пулам без нагрузки на GPU. Программа эмулирует клиенты Stratum V1/V2, измеряет сетевую задержку и задержку на уровне приложения, а также генерирует подробные цветные отчёты, помогающие выявить проблемы с подключением до того, как они повлияют на вашу майнинг-ферму.
Майнеры часто сталкиваются с проблемами устаревших шар и потери прибыльности из-за нестабильного подключения к пулу. Традиционная диагностика крайне затруднена, так как:
- Неточность пинга: Стандартный ICMP ping часто не отражает реальную задержку протокола Stratum и не показывает проблемы на уровне приложения.
- DPI и блокировки: В современных реалиях всё чаще возникают сетевые проблемы, вызванные работой систем DPI (Deep Packet Inspection) и «белыми списками». Такие ограничения могут избирательно влиять на Stratum-трафик, что невозможно заметить обычными средствами.
- Скрытые проблемы: Многие сетевые аномалии носят плавающий характер и выявляются только при длительном непрерывном тестировании (от нескольких часов до суток).
- Сложность тестов: Полноценное тестирование обычно требует запуска майнера с полной нагрузкой на оборудование, что неудобно для быстрой диагностики.
StratumTester позволяет не только выбрать оптимальный сервер, но и объективно сравнить различные маршруты подключения и способы обхода блокировок (VPN, прокси и т.д.), находя наиболее стабильный вариант для вашей фермы.
Для решения этих задач StratumTester предоставляет:
- ✅ Эмуляцию клиента Stratum V1/V2 без вычислительной нагрузки
- ✅ Двойной мониторинг: сетевой ping + задержка на уровне приложения
- ✅ Длительное тестирование (до 24 часов) с подробным логированием
- ✅ Визуальные отчёты с оценкой качества и рекомендациями
- ✅ Сравнение нескольких пулов (тестирование до 10 пулов одновременно)
- Полная поддержка протокола Stratum V1 (mining.subscribe, mining.authorize, mining.notify)
- Поддержка протокола Stratum V2 с бинарным фреймингом
- Автоматический keep-alive для поддержания сессии
- Интеллектуальное автопереподключение с экспоненциальной задержкой
- Комплексное логирование событий подключения
- ICMP Ping: Сетевое время отклика (каждую 1 секунду)
- Задержка Stratum: Измерение времени отклика на уровне приложения
- Расчёт min/avg/max/jitter для обеих метрик в реальном времени
- Отслеживание потери пакетов
- TCP Ping: Резервный метод мониторинга при блокировке ICMP
- Простая настройка пула (адрес, порт, имя воркера, пароль)
- Выбор протокола (Stratum V1 / V2)
- Гибкая длительность теста (от 1 минуты до 24 часов)
- 8 предустановленных длительностей + пользовательский вариант
- Валидация ввода с понятными сообщениями об ошибках
- Индикатор статуса подключения в реальном времени
- Отображение текущего ICMP ping и задержки Stratum
- Таймер теста (прошло / осталось)
- Счётчик задач (полученных от пула)
- Счётчик разрывов соединения с классификацией
- Процент аптайма сессии
- Живой график задержки (Chart.js) с двумя линиями
- Кнопка остановки теста для досрочного завершения
Различает разные типы разрывов подключения:
- 🔴 Сетевые ошибки - Реальные проблемы с подключением (влияют на рейтинг)
- 🟡 Таймаут простоя пула - Ожидаемое поведение при отсутствии отправки шар (нейтрально)
- 🔵 Запрос пула - Плановые переподключения, инициированные пулом (нейтрально)
Это обеспечивает точность диагностики - таймауты простоя не снижают оценку качества подключения.
- Расчёт времени обработки сервером (Stratum response - ICMP RTT)
- Определение возможностей протокола (mining extensions, vardiff и т.д.)
- Идентификация программного обеспечения сервера
- Оценка производительности независимо от качества вашей сети
- Цветные оценки качества (Отлично/Хорошо/Приемлемо/Плохо)
- Общий балл подключения (0-100)
- Детальная разбивка метрик:
- Качество сети (ICMP ping, потеря пакетов, jitter)
- Производительность сервера (время обработки, возможности протокола)
- Стабильность подключения (аптайм, классифицированные разрывы)
- График задержки за весь период с маркерами разрывов
- Подробный лог разрывов соединения с временными метками и классификацией
- Форматы экспорта: PDF, PNG, HTML
- Тестирование до 10 пулов одновременно
- Таблица сравнения в реальном времени
- Общий ICMP пингер (эффективное использование ресурсов)
- Батчинг обновлений UI (500мс) для плавной работы
- Адаптивное управление памятью для 24-часовых тестов
- Сравнительный отчёт с рейтингом пулов и рекомендациями
Настройка параметров теста и выбор пула
Мониторинг метрик в реальном времени с графиком двойной задержки (ICMP и Stratum)
Подробный цветной отчёт о качестве подключения с оценками
Одновременное тестирование нескольких пулов с таблицей сравнения
- ОС: Windows 10/11 (64-bit), Linux (Ubuntu 22.04+), macOS 10.15+
- RAM: 256 МБ минимум, 512 МБ рекомендуется для мультипул-тестов
- Диск: 50 МБ свободного места
- Сеть: Активное интернет-подключение
- Привилегии:
- Windows: Права администратора (для ICMP ping)
- Linux: Не требуются (автоматический TCP fallback), опционально CAP_NET_RAW для ICMP
- macOS: sudo для ICMP или автоматический TCP fallback
- Скачайте последний релиз с Releases
- Извлеките
StratumTester.exeв любую папку - Запустите от имени администратора (ПКМ → "Запуск от имени администратора")
Из-за ограничений Apple по безопасности (требование платной подписи кода), мы не предоставляем автоматические сборки для macOS в релизах. Однако, вы можете легко и бесплатно собрать приложение самостоятельно на своем Mac.
Вам понадобятся стандартные инструменты разработчика:
-
Xcode Command Line Tools: Откройте приложение "Терминал" и введите команду:
xcode-select --install
Следуйте инструкциям в появившемся окне.
-
Rust (язык программирования): Введите в Терминале:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Node.js (для интерфейса): Скачайте и установите версию LTS с официального сайта nodejs.org.
Выполните следующие команды в Терминале (копируйте по одной):
# 1. Скачайте код
git clone https://github.com/Spiceman161/Stratum-tester.git
cd Stratum-tester
# 2. Установите зависимости
npm install
# 3. Запустите сборку
npm run tauri build☕ Сборка займет 5-10 минут.
После завершения сборки ваше приложение будет находиться по адресу:
src-tauri/target/release/bundle/macos/StratumTester.app
Вы можете перетащить этот файл в папку «Программы» (Applications).
- Найдите
StratumTesterв папке Программы. - Кликните по иконке ПРАВОЙ кнопкой мыши (или Ctrl+клик).
- Выберите Открыть в контекстном меню.
- В появившемся окне нажмите Открыть еще раз. Это нужно сделать только один раз. В дальнейшем приложение будет открываться как обычно.
Официальная поддержка предоставляется для Ubuntu 22.04 LTS и новее.
StratumTester автоматически использует TCP ping fallback если ICMP недоступен. Это означает, что вы можете запускать приложение без прав администратора:
# 1. Клонировать репозиторий
git clone https://github.com/Spiceman161/Stratum-tester.git
cd Stratum-tester
# 2. Установить зависимости (один раз)
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential \
curl wget file libssl-dev libgtk-3-dev \
libayatana-appindicator3-dev librsvg2-dev
# 3. Запустить dev сервер (БЕЗ sudo!)
./dev.shПримечание: TCP ping измеряет время TCP соединения вместо ICMP Echo. Разница составляет ~2-5ms, что несущественно для диагностики пулов.
Для более точных измерений через ICMP используйте скрипт настройки capabilities:
# 1. Собрать проект
cd src-tauri
cargo build --release
cd ..
# 2. Установить capabilities (требует sudo ОДИН раз)
sudo ./setup-icmp-linux.sh
# 3. Запустить БЕЗ sudo
./dev.shcargo build нужно повторно запускать setup-icmp-linux.sh.
# Сборка .deb и AppImage
npm run tauri build
# Готовые файлы в:
# src-tauri/target/release/bundle/deb/
# src-tauri/target/release/bundle/appimage/📚 Полная документация: docs/LINUX-SETUP.md - устранение проблем, различия ICMP/TCP, настройка для других дистрибутивов.
-
Запуск приложения
- Запустите
StratumTester.exeот имени администратора
- Запустите
-
Настройка теста
- Адрес пула: Введите hostname или IP пула (например,
eu.stratum.slushpool.com) - Порт: Порт пула (по умолчанию: 3333 для V1, 3336 для V2)
- Воркер: Имя вашего воркера (формат:
wallet.workerилиusername.worker) - Пароль: Обычно "x" (опционально, значение по умолчанию предоставлено)
- Протокол: Выберите Stratum V1 или V2
- Длительность: Выберите от 1 мин до 24 часов
- Адрес пула: Введите hostname или IP пула (например,
-
Запуск теста
- Нажмите "Start Test"
- Следите за метриками в реальном времени на дашборде
- График показывает ICMP (синий) и Stratum (красный) задержку
- События разрыва отмечены красными вертикальными линиями
-
Просмотр отчёта
- Тест завершается автоматически или нажмите "Stop Test"
- Изучите цветной отчёт с оценками качества
- Экспортируйте в PDF/PNG/HTML для отправки
- Переключитесь на вкладку "Multi-Pool"
- Добавьте до 10 конфигураций пулов
- Нажмите "Start All" для одновременного тестирования
- Сравните результаты в таблице реального времени
- Сгенерируйте сравнительный отчёт с рейтингом пулов
| Пул | Stratum V1 | Stratum V2 |
|---|---|---|
| Braiins Pool | stratum+tcp://stratum.braiins.com:3333 |
stratum+tcp://stratum.braiins.com:3336 |
| ViaBTC | stratum+tcp://btc.viabtc.com:3333 |
N/A |
| F2Pool | stratum+tcp://btc.f2pool.com:3333 |
N/A |
| Antpool | stratum+tcp://stratum.antpool.com:3333 |
N/A |
| Метрика | Отлично | Хорошо | Приемлемо | Плохо |
|---|---|---|---|---|
| Задержка | < 50мс | 50-100мс | 100-200мс | > 200мс |
| Потеря пакетов | 0% | < 0.5% | 0.5-1% | > 1% |
| Jitter | < 10мс | 10-20мс | 20-50мс | > 50мс |
| Аптайм | > 99.9% | 99-99.9% | 95-99% | < 95% |
Эта метрика показывает, насколько быстро отвечает сервер пула, независимо от качества вашей сети:
- < 20мс (Отлично): Быстрый сервер, низкая нагрузка
- 20-50мс (Хорошо): Нормальная работа
- 50-100мс (Приемлемо): Сервер под нагрузкой
- > 100мс (Плохо): Перегруженный или медленный сервер
- 🔴 Сетевая ошибка: Реальная проблема с подключением - проверьте ваш интернет/провайдера
- 🟡 Таймаут простоя пула: Ожидаемо - пул отключает майнеров, не отправляющих шары
- 🔵 Запрос пула: Плановое переподключение - обслуживание пула или балансировка нагрузки
Примечание: Только сетевые ошибки влияют на оценку стабильности.
Подробная документация доступна в директории docs/:
- PRD.md - Полные требования к продукту
- TESTING-GUIDE.md - Покрытие тестами и результаты
- API-INDEX.md - Индекс документации модулей
- modules/ - Детальная документация модулей
- Frontend: HTML5 + Vanilla JavaScript + Chart.js 4.4.0
- Backend: Rust с асинхронным runtime Tokio
- Фреймворк: Tauri 2.0 (безопасные, легковесные десктопные приложения)
- Протоколы: Stratum V1 (JSON-RPC), Stratum V2 (бинарный + Noise шифрование)
- Тестирование: 658+ юнит и интеграционных тестов (92%+ покрытие)
О: Это ожидаемое поведение. Так как StratumTester не отправляет шары (результаты майнинговых вычислений), большинство пулов отключают простаивающих воркеров примерно через ~600 секунд (10 минут) для экономии ресурсов. Это классифицируется как таймаут простоя пула (🟡 жёлтый) и НЕ влияет на оценку качества вашего подключения.
О: Нет. Вы можете использовать любое валидное имя воркера (например, test.worker1). StratumTester не отправляет шары, поэтому адрес кошелька не важен для диагностики.
О (Windows): Права администратора требуются для создания raw ICMP сокетов для функциональности ping. Без прав администратора ICMP ping не будет работать (graceful degradation - мониторинг задержки Stratum всё равно работает).
О (Linux): На Linux можно запускать без sudo! Приложение автоматически использует TCP ping fallback, который не требует специальных прав. Для включения ICMP используйте скрипт setup-icmp-linux.sh (см. docs/LINUX-SETUP.md).
О: Да! Используйте вкладку Multi-Pool для одновременного тестирования до 10 пулов. Приложение эффективно использует общие ресурсы (единый ICMP сокет, батчинг обновлений UI) для низкого потребления CPU и памяти.
О: Да. Пароли:
- Хранятся только в памяти во время тестовой сессии
- Никогда не записываются на диск
- Скрыты в логах (показываются как
[REDACTED]) - Передаются только на пул, который вы настроили
О:
- ICMP Ping: Сетевое время отклика (layer 3) - самый точный метод
- TCP Ping (fallback): Время установки TCP соединения - добавляет ~2-5ms к измерению
- Задержка Stratum: Время отклика на уровне приложения, включая обработку сервером пула
Разница между ping (ICMP или TCP) и Stratum показывает время обработки сервером.
Linux: По умолчанию используется TCP ping (не требует прав). ICMP можно включить через capabilities.
О: StratumTester - это только инструмент диагностики. Он не выполняет настоящий майнинг и не управляет оборудованием. Используйте его для тестирования качества пула перед настройкой ваших майнеров.
Причины:
- Не запущено от имени администратора
- ICMP заблокирован файрволом или пулом
Решения:
- Запустите от имени администратора
- Проверьте настройки Windows Firewall
- Если пул блокирует ICMP, мониторинг задержки Stratum всё равно работает
Причины:
- Неправильный адрес пула/порт
- Пул недоступен или не работает
- Файрвол блокирует исходящие соединения
Решения:
- Проверьте правильность адреса пула и порта
- Убедитесь что пул онлайн (проверьте сайт пула)
- Временно отключите файрвол для теста
Причины:
- Неправильный формат имени воркера
- Пул требует специфический формат воркера
Решения:
- Проверьте документацию пула для формата имени воркера
- Попробуйте формат:
username.workerилиwallet.worker - Убедитесь что пароль правильный (обычно "x")
Ожидаемое поведение: StratumTester использует адаптивное прореживание:
- 0-1 час: интервалы 1 секунда
- 1-6 часов: интервалы 10 секунд
- 6-24 часа: интервалы 60 секунд
Лимит памяти: 512 МБ всего. При превышении вы увидите предупреждение.
- Шифрование Stratum V2 Noise: В настоящее время заглушено (режим plaintext). Полное шифрование Noise Protocol запланировано на будущий релиз.
- Пресеты пулов: Требуется ручной ввод. Встроенный список пулов запланирован на v1.1.
- Платформа:
- Windows 10/11: Полностью поддерживается, готовые сборки доступны в релизах
- Linux (Ubuntu 22.04+): Поддерживается, автоматические сборки через GitHub Actions
- macOS: Поддерживается, требуется ручная сборка (см. инструкцию в README)
Безопасность использования StratumTester обеспечена несколькими ключевыми факторами:
- Открытый исходный код: Вы скачиваете приложение напрямую с GitHub. Весь код прозрачен, и любой пользователь может проверить отсутствие троянов, бэкдоров или иных уязвимостей.
- Никакого "мусорного" ПО: В отличие от многих бесплатных утилит для майнинга, StratumTester не содержит назойливой рекламы, скрытых установщиков или сторонних надстроек. Вам не нужно сверять хеш-суммы, если вы берете бинарные файлы из официальных релизов репозитория.
- Проверка комьюнити и LLM: Если вы не обладаете глубокими техническими знаниями, вы можете проанализировать исходный код этого репозитория с помощью современных LLM (например, Claude или ChatGPT), чтобы убедиться в его безопасности.
- VirusTotal: Мы следим за результатами сканирования скомпилированных версий. На данный момент приложение определяется как «подозрительное» всего 3 антивирусами из 72 на портале virustotal.com. Для софта, эмулирующего работу майнера (что часто триггерит ложноположительные срабатывания), это является отличным показателем чистоты кода.
Вклад приветствуется! Пожалуйста:
- Форкните репозиторий
- Создайте feature-ветку (
git checkout -b feature/amazing-feature) - Закоммитьте ваши изменения (
git commit -m 'Add amazing feature') - Запушьте в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
См. PRD.md для понимания архитектуры проекта.
Управляйте вашими ASIC Whatsminer удалённо через Telegram
Бот, который вдохновил этот проект! Получайте диагностику пулов, мониторинг хешрейта и удалённое управление вашими майнерами через простой интерфейс Telegram.
Возможности:
- Мониторинг хешрейта в реальном времени
- Управление резервными пулами
- Оповещения о температуре и ошибках
- Удалённая перезагрузка и настройка
- Дашборд нескольких майнеров
Этот проект распространяется под лицензией PolyForm Noncommercial 1.0.0.
✅ Вы можете:
- Свободно использовать программу для личных целей
- Изучать и модифицировать исходный код
- Делиться программой с друзьями и коллегами
- Использовать для тестирования и диагностики ваших майнинг-ферм
- Создавать производные работы для некоммерческих целей
- Использовать в образовательных и исследовательских целях
❌ Вы НЕ можете:
- Продавать программу или её модификации
- Использовать в коммерческих сервисах без разрешения
- Включать в платные продукты
- Предоставлять как коммерческую услугу (SaaS)
Для коммерческого использования свяжитесь с автором для получения отдельной лицензии.
Полный текст лицензии: LICENSE | PolyForm Project
StratumTester разработан и поддерживается командой StratumTester.
- Архитектура и дизайн: На основе спецификаций Bitcoin Stratum V1/V2
- Вдохновлено: 2miners/stratum-ping
- Создано с помощью: Tauri, Rust, Chart.js
Особая благодарность майнинг-сообществу за отзывы и тестирование.
- Проблемы: GitHub Issues
- Документация: docs/
- Сообщество: Присоединяйтесь к майнинговым форумам и делитесь опытом
Сделано с ❤️ для Bitcoin майнинг-сообщества
Поставьте ⭐ этому репозиторию, если StratumTester помог вам оптимизировать вашу майнинг-ферму!