Требуется разработать микросервис (желательно на Laravel, так как существующие сервисы уже на нем реализованы) позволяющий создавать и управлять криптоботами ‣ пользователям нашего проекта
Passivbot - это бот для торговли криптовалютами, написанный на Python и предназначенный для того, чтобы требовать минимального вмешательства пользователя. Замечено, что цены на рынке будут колебаться вверх и вниз, создавая возможности для извлечения прибыли. Цель бота - автоматизировать извлечение прибыли.
Он работает на спотовых или фьючерсных рынках, прослушивая поток реальных сделок websocket, автоматически создавая и отменяя лимитные ордера на покупку и продажу.
Поскольку поведение passivbot в реальном времени детерминировано, оно может быть смоделировано на исторических ценовых данных с использованием включенного обратного теста. Также включен оптимизатор, который находит лучшие конфигурации, повторяя тысячи обратных тестов с различными кандидатами.
Стратегия интегрирована - для запуска боту требуется только предопределенная конфигурация.
Разработчики бота также собрали docker-образ приложения, что для нас является ключевым.
На текущий момент имеются несколько микросервисов: OAuth Provider, OAuth Proxy и App Service. Также о сервисах написано тут
BitBot.postman_collection.json
OAuth Provider - интернал сервис, поставщик данных о пользователе. Работает с учетными записями и токен-парами для доступа к сервисам.
OAuth Proxy - экстернал сервис, позволяющий контроллировать доступ к эндпойнтам микросервисов посредством проверки легитимности представленного токена, а также установкой требуемого уровня доступа для области применения (scope). На каждый эндпойнт ставится нужный scope, либо не ставится, если он открыт для неавторизованных пользователей. Для микросервисов прокси передает X-User заголовок в котором содержится информация о токене: время жизни, id-пользователя и т.п - нас интересует id-пользователя что преимущественно.
App Service - сервис, поставщик данных о кошельках пользователя. Позволяет вносить кошельки, удалять, получать. Получать данные по аналитике и т.д.
Основная логика:
По итогу разрабатываемый сервис должен уметь: