cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
MarketMaking.app

Предложение: Современный графический веб-интерфейс для ADAMANT TradeBot

Контекст

Текущий веб-интерфейс в основном текстовый, основан на ответах на команды в стиле мессенджера. Данное предложение описывает современный графический интерфейс с графиками, стаканами заявок, балансами, открытыми ордерами, формами параметров торговли и панелями управления с учётом модулей. Ключевое архитектурное правило — веб-интерфейс никогда не подключается напрямую к биржам; все данные должны поступать через API бота.

Модели развертывания

Предложены две модели развертывания. Первая — частный, самостоятельно размещаемый веб-интерфейс, предлагаемый как разовая покупка. В этой модели оператор запускает веб-интерфейс за HTTPS через обратный прокси-сервер. Веб-интерфейс ведёт реестр ботов, используя общий private_webui_secret_key для подписи JSON Web Token (JWT) после входа оператора, включая локальных пользователей и двухфакторную аутентификацию. Сервер веб-интерфейса взаимодействует с каждым ботом через прямые HTTP-запросы к эндпоинтам /api/v1/*, что позволяет одному адресу веб-интерфейса управлять несколькими ботами через вкладки.

Вторая модель — публичный веб-интерфейс по подписке. Пользователи проходят аутентификацию через внешний сервис оплаты и аутентификации, затем размещают лицензионный токен в конфигурации своего бота. Бот устанавливает исходящее соединение с публичным реле, устраняя необходимость во входящем порте бота. Запросы из браузера проходят через публичный веб-интерфейс и реле к боту через одно-к-одному API-туннель. Область действия лицензии ограничена одной биржей и одной парой на лицензию.

Минимально жизнеспособный продукт

Минимально жизнеспособный продукт (MVP) ориентирован на сценарий частного размещения. Он предполагает создание нового стека на основе Vite и React 18 без поддержки устаревшего веб-интерфейса. Реализация включает слой абстракции транспорта, начиная с DirectHttpTransport, а затем RelayWsTransport. Интерфейс инициализируется запросом GET /bot, при этом возможности бота определяют отображаемые блоки интерфейса. Параметры управляются через события WebSocket params:updated наряду с REST. Рыночные и учётные данные полагаются на опрос через REST с начальным интервалом около 10 секунд, с последующим переходом на отправку данных из кэша бота.

Что не входит в планы

В данном обсуждении намеренно исключены детали реализации оплаты и биллинга, а также проектирование API бота, что рассматривается в отдельном обсуждении. В репозитории adamant-tradebot-webui будет создан отслеживаемый issue с ссылкой на это предложение.