Как работает Barfinex
Типичные проблемы и решения
Частые проблемы при запуске Barfinex: Provider/Detector не поднимаются, нет данных в Studio, mixed content, нет сигналов в Telegram, Redis и Docker сеть.
Provider или Detector не поднимаются
- Проверить инфраструктуру: Redis и (при необходимости) QuestDB должны быть запущены и доступны. Сначала поднимите инфраструктуру (например
docker compose -f docker-compose-infra.yml up -dили аналог из вашего репозитория), затем слой приложений. См. Установка и запуск Provider и Разбор docker-compose для Provider. - Переменные окружения: в
.envзадайтеREDIS_HOST,REDIS_PORT(в Docker частоREDIS_HOST=redis). Для Provider — порты, образ, при необходимости ключи биржи (BINANCE_API_KEY,BINANCE_API_SECRET). - Конфиги: проверьте наличие и корректность
config.provider.json,config.detector.jsonи т.д. в каталоге конфигурации вашего развёртывания. - Логи:
docker logs -f provider,docker logs -f detector— смотрите ошибки подключения к Redis, бирже, QuestDB. Часто причина — неверный хост/порт или контейнер не в общей сети (напримерbarfinex-network). Подробнее: Объяснение логов Provider.
Нет данных в Studio
- WebSocket: данные в реальном времени идут через Provider
/ws. Убедитесь, что Studio подключается к правильному URL (напримерwss://<provider-host>/ws) и что CORS/HTTPS настроены (CORS_ORIGINS). См. Работа с API — единый шлюз. - Redis и WS Bridge: Provider подписан на каналы Redis и транслирует их в WebSocket. Если Redis недоступен или Provider не подписался — в Studio не будет событий. Проверьте логи Provider на ошибки Redis.
- Прокси: если Studio обращается к Advisor/Inspector/Detector через Provider, проверьте, что приложения зарегистрированы в App Registry (heartbeat) и что в Provider заданы
ADVISOR_API_URL,INSPECTOR_API_URL,DETECTOR_API_URLи соответствующие*_APP_KEY. См. Архитектура платформы.
Ошибки mixed content
Если Studio открыта по HTTPS, а API вызывается по HTTP — браузер блокирует mixed content. Решение: поднимать API (или reverse proxy перед ним) по HTTPS и использовать один origin. См. Настройка локальных сертификатов и настройку SSL в вашем развёртывании.
Нет сигналов в Telegram
- Переменные: задайте
TELEGRAM_BOT_TOKEN,TELEGRAM_CHAT_ID. Для Detector отдельно:DETECTOR_TELEGRAM_ENABLED,DETECTOR_TELEGRAM_CHAT_ID, при необходимостиDETECTOR_TELEGRAM_MIN_INTERVAL_MS,DETECTOR_TELEGRAM_DEDUP_WINDOW_MS. Подробнее: Уведомления в Telegram. - Логика: сигналы в Telegram исходят от Detector (и при необходимости от Inspector). Убедитесь, что Detector генерирует события: подключён к Redis, получает данные от Provider, стратегия/плагин включён. Проверьте логи Detector и Inspector.
Проблемы с Redis и сетью Docker
- Подключение: все приложения должны использовать один и тот же
REDIS_HOSTиREDIS_PORT. В Docker Compose сервисы должны быть в одной сети (barfinex-network), имя сервиса Redis должно совпадать сREDIS_HOST(напримерredis). - Проверка Redis:
docker exec -it redis redis-cli PING— должен ответитьPONG. Из контейнера приложения проверьте, чтоREDIS_HOSTрезолвится (в той же сети имя видаredis). - Таймауты и разрывы: при нестабильной сети можно настроить повторные подключения (в коде provider-ws-bridge используются переменные вроде
REDIS_KEEP_ALIVE_MS,REDIS_CONNECT_TIMEOUT_MS,REDIS_RECONNECT_*). Логи Provider/Detector/Advisor/Inspector покажут предупреждения о переподключении к Redis.
QuestDB: предупреждения vm.max_map_count
При запуске QuestDB на Linux может потребоваться увеличение vm.max_map_count на хосте (например sysctl -w vm.max_map_count=262144). В Windows при использовании WSL скрипт запуска инфраструктуры (например run-infra.ps1) может выставлять это значение перед стартом. См. документацию QuestDB и скрипты вашего репозитория.
Детектор в режиме только чтения
Если Detector не открывает и не закрывает позиции, проверьте переменную DETECTOR_READONLY. При DETECTOR_READONLY=true детектор сознательно не исполняет ордера (только логирование). Уберите или установите false для реального исполнения.
Полезные разделы документации
- Установка и запуск Provider — подготовка и запуск
- Разбор docker-compose для Provider — сервисы и переменные
- Объяснение логов Provider — разбор логов
- Установка детектора — подключение Detector
- Настройка терминала и Регистрация Provider в Studio
- Архитектура платформы — поток данных и реестр приложений
- Работа с API — единый шлюз и WebSocket
- Уведомления в Telegram — настройка бота и chat_id