Barfinex

Быстрый старт

Подробное объяснение логов Barfinex Provider

Подробное руководство по логам Barfinex Provider - этапы запуска, типовые сообщения, частые ошибки и быстрые способы диагностики проблем.

🔍 Карта логов Barfinex Provider

При старте Barfinex Provider проходит несколько стадий инициализации: загрузка сертификатов, чтение конфигурации, подключение Redis, проверка Binance и запуск REST/WebSocket API. Каждый этап отражается в логах — зная эту последовательность, можно по первым строкам быстро определить, всё ли прошло успешно и где искать проблему.

Как читать логи Barfinex Provider

Для просмотра:

docker compose logs -f provider

1️⃣ HTTPS включён

✅ HTTPS включён (сертификаты загружены)

Что это значит
Сертификаты успешно найдены и загружены. Сервер доступен по адресу вида:

  • https://localhost:8081
  • или по вашему домену, если настроены боевые сертификаты.

Типовые проблемы

  • ENOENT: no such file or directory, open './cert.pem' — сертификат не найден.
    → проверь путь и имена файлов в конфиге или переменных окружения (SSL_CERT_PATH, SSL_KEY_PATH).

  • Нужен самоподписанный сертификат?
    → сгенерируйте: mkcert localhost и положите файлы в каталог, указанный в docker-compose.yml (./cert/...).


2️⃣ Конфигурация загружена

🧩 Config path resolved to: ...config.json
📄 Loading nested config for "provider": config.provider.json
✅ Configuration successfully loaded.

Что это значит
Основной конфиг и вложенные JSON-файлы найдены и корректно разобраны.

Типовые ошибки

  • File not found
    → нужный JSON-файл отсутствует. Создайте его по шаблону (config.example.provider.json или аналогичный).

  • Error parsing JSON
    → синтаксическая ошибка в JSON. Пройдитесь по:

    • лишним/отсутствующим запятым;
    • кавычкам;
    • незакрытым объектам/массивам.
  • Barfinex Provider key not found
    → в блоке provider.connectors нет нужного коннектора.
    → добавьте объект с key и secret для нужного соединения (например, Binance).


3️⃣ Инициализация модулей NestJS

[Nest] ... LOG [InstanceLoader] ConfigModule dependencies initialized

Что это значит
NestJS-модули успешно проинициализировались, зависимости разрешены.

Типовые ошибки

  • Cannot find module '@barfinex/types'
    → проблема с зависимостями проекта или tsconfig-paths. Проверьте:

    • установки пакетов;
    • настройки paths в tsconfig.
  • Nest can't resolve dependencies
    → отсутствует импорт одного из модулей или нужен forwardRef.
    → проверьте, что все модули импортируются в правильном порядке.


4️⃣ Подключение к Redis

Connecting to Redis on localhost:6379
✅ Connected to Redis successfully!

Что это значит
Barfinex Provider подключился к Redis, события и очереди доступны.

Типовые ошибки

  • ECONNREFUSED 127.0.0.1:6379
    → Redis не запущен или недоступен по указанному адресу.
    → проверьте:

    • запущен ли контейнер redis (docker compose ps);
    • значение REDIS_HOST и REDIS_PORT в .env.
  • Invalid TCP port
    → неверный номер порта. Убедитесь, что порт — число, а не строка с лишними символами.


5️⃣ Инициализация Binance API

🧩 BinanceService initializing...
🔑 connectorKey (truncated): oQ9Ulh...
✅ Binance API initialized successfully

Что это значит
Barfinex Provider нашёл настройки коннектора Binance и успешно создал клиент для API.

Типовые ошибки

СообщениеПричинаЧто сделать
Binance connector not foundНет блока с "connectorType": "binance"Добавить коннектор в конфиг
Binance API credentials missingНе указаны key/secretЗаполнить ключи в конфиге или .env
Invalid Binance time responseBinance не отвечает или вернул некорректный ответПроверить доступ к api.binance.com и сеть

6️⃣ Проверка времени Binance

🕒 Binance time: 2025-10-31 08:53:42, Local: 2025-10-31 08:53:41

Что это значит
Время на стороне Binance и локальное время синхронизированы, разница ≤ 1 секунды.
Это важно для правильной работы подписок и ордеров.

Типовые ошибки

  • FetchError
    → нет доступа к интернету или трафик до Binance блокируется.
    → попробуйте:

    • проверить сеть;
    • использовать VPN;
    • настроить HTTPS_PROXY, если нужен прокси.
  • Error 418 или другие коды блокировки
    → IP-адрес или ключи могли попасть в бан.
    → смените IP/ключи или уменьшите частоту запросов.


7️⃣ Готовность WebSocket и REST API

🚀 Barfinex Provider API is running on: https://localhost:8081/api
📑 Documentation: https://localhost:8081/docs
🔌 WebSocket (Socket.IO) at: https://localhost:8081/ws

Что это значит
Barfinex Provider полностью поднят:

  • REST API доступен по /api;
  • Swagger-документация — по /docs;
  • WebSocket (Socket.IO) — по /ws.

Типовые ошибки

  • EADDRINUSE: address already in use :8081
    → порт уже занят другим процессом.
    → освободите порт или измените его в .env и docker-compose.yml.

  • Cannot read property 'use' of undefined
    → ошибка в middleware или конфигурации main.ts.
    → проверьте кастомные фильтры, интерсепторы и middleware.


🧠 Best Practices для мониторинга

ПрактикаОписание
Логировать ключевые стадииModuleInit, Config Loaded, Redis Connected, API Ready
Цветное логированиеИспользовать nestjs-pino, winston или аналог
Health-endpoint/api/health должен проверять Redis и Binance-пинг
Auto-retry RedisДелать несколько попыток подключения с backoff
Pre-startup validationПроверять ключи и структуру конфига до NestFactory.create()

🧩 Пример успешного запуска

✅ HTTPS включён (сертификаты загружены)
🧩 Config path resolved to: ...config.json
✅ Configuration successfully loaded.
✅ Connected to Redis successfully!
🔑 connectorKey (truncated): oQ9Ulh...
✅ Binance API initialized successfully
🕒 Binance time: 2025-10-31 08:53:42, Local: 2025-10-31 08:53:41
✅ BinanceService ModuleInit complete
🚀 Barfinex Provider API is running on: https://localhost:8081/api
📑 Documentation: https://localhost:8081/docs
🔌 WebSocket (Socket.IO) at: https://localhost:8081/ws

Если все строки со значком и без ошибок — Barfinex Provider готов к работе.


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

# Проверить доступность Redis
redis-cli ping

# Проверить доступ к Binance
curl https://api.binance.com/api/v3/time

# Проверить валидность JSON-конфига
jq . config/config.provider.json

# Посмотреть, кто занял порт 8081 (Windows)
netstat -ano | find "8081"

# Локальный запуск Barfinex Provider в dev-режиме (если поддерживается)
npm run start:provider:dev

🧰 Troubleshooting Summary

СимптомВозможная причинаРешение
Barfinex Provider key not foundНет ключа в connectorsДобавить ключи Binance в конфиг
ECONNREFUSED RedisRedis не запущенdocker compose up redis
API not initializedBinanceService не успел стартоватьПроверить ключи и сетевое подключение
Invalid JSONОшибка синтаксиса в конфигеПроверить через jq и редактор
✅ Всё зелёноеОшибок нетСервис полностью готов

📘 Резюме по логам

  • Каждый лог соответствует стадии запуска Barfinex Provider.
  • Метки , 🧩, 🕒, 🚀 помогают визуально понять статус.
  • Ошибки Redis, конфигурации или Binance находятся и устраняются за минуты.
  • Рекомендуется сохранять логи старта в CI/CD, чтобы автоматически контролировать успешность деплоя.

📊 Регистрация Barfinex Provider в Studio Barfinex

Зачем регистрировать Barfinex Provider в Studio

Даже если Barfinex Provider уже запущен и работает, важно подключить его к Studio Barfinex:

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

  • Мониторинг данных в реальном времени
    Графики, таблицы, события — вы сразу видите, что Barfinex Provider реально отдаёт данные.

  • Диагностика и отладка стратегий
    Можно убедиться, что сигналы, ордера и события проходят так, как вы ожидаете.

  • Единая панель управления
    Если у вас несколько Barfinex Provider-экземпляров (testnet, prod, разные биржи) — Studio позволяет управлять ими из одного места.


Общая схема подключения

  1. Поднимите Barfinex Provider по инструкции из раздела «Быстрый запуск Barfinex Provider».
  2. Убедитесь, что API Barfinex Provider доступен по HTTPS (например, https://your-domain.com/api).
  3. Зайдите в https://studio.barfinex.com под своей учётной записью.
  4. Перейдите в раздел, отвечающий за управление провайдерами (например, «Источники данных» или «Barfinex Providers»).
  5. Создайте новый Barfinex Provider:
    • укажите имя (например, Binance Spot Prod);
    • добавьте URL API (базовый адрес Barfinex Provider);
    • при необходимости добавьте описание и теги (testnet/prod и т.п.).
  6. Сохраните настройки и убедитесь, что статус Barfinex Provider стал «Online» (или аналогичный индикатор).

⚠️ Конкретные названия разделов и полей могут отличаться в зависимости от версии Studio.
Этот раздел отвечает за зачем и в общих чертах как, а детальная «кликабельная» инструкция со скриншотами может быть вынесена отдельно.


Что вы увидите после подключения

После регистрации Barfinex Provider в Studio:

  • в интерфейсе появится карточка вашего Barfinex Provider с текущим статусом;
  • будут доступны базовые метрики (аптайм, последние ошибки, версия сервиса);
  • появится возможность просматривать ленты данных и события, генерируемые Barfinex Provider;
  • станет проще понимать, где проблема — в стратегии, подключении к бирже или в инфраструктуре.

Итог по интеграции со Studio

  • Barfinex Provider без Studio — это «чёрный ящик» на сервере.
  • Barfinex Provider, подключённый к Studio — это прозрачный, наблюдаемый компонент в общей экосистеме Barfinex.
  • Рекомендуется регистрировать каждый экземпляр Barfinex Provider (dev/stage/prod, разные биржи) для удобного мониторинга и поддержки.

Давайте свяжемся

Есть вопросы или хотите присоединиться к Barfinex? Напишите нам.