Univex — Обзор проекта¶
Что такое Univex¶
Univex — криптовалютная биржа для торговли цифровыми активами в режиме реального времени. Платформа поддерживает несколько блокчейн-сетей, включает встроенные механизмы AML/KYC-проверки и предоставляет как публичный REST API для клиентских приложений, так и административный интерфейс для операторов биржи.
Система разработана как набор независимых микросервисов с чётким разделением ответственности: торговое ядро изолировано от бизнес-логики, а все внешние интеграции (блокчейны, compliance-провайдеры, уведомления) вынесены в специализированные сервисы.
Архитектура верхнего уровня¶
Проект состоит из двух репозиториев, которые работают совместно:
Exchange Engine¶
- Язык: Go 1.25
- Назначение: торговое ядро биржи — матчинг ордеров, стакан заявок (orderbook), управление балансами на уровне блокчейна, интеграции с сетями BTC, ETH и TRON.
- Интерфейсы: HTTP REST API (Echo) для публичных торговых операций, gRPC Admin API для управления платформой.
- Сервисы:
engine,api,admin,hotmanager(btc/evm/tron),topupscan(btc/evm/tron + processor + aml-poller + elliptic_check + refund-processor),txprocessor(btc/evm/tron),migrator.
Univex Monorepo¶
- Язык: Go 1.23.2
- Назначение: 10 микросервисов, реализующих бизнес-логику платформы: идентификация пользователей, p2p-торговля, учёт и хранение балансов, KYC, уведомления и интеграции.
Микросервисы монорепозитория¶
| Сервис | Протокол | Назначение |
|---|---|---|
| gateway | HTTP (Fiber v2) | Шлюз для основного фронтенда. Маршруты: авторизация, торговля, депозиты, p2p, фиат, переводы, уведомления, адресная книга, фандированные коды, API-ключи |
| admin-gateway | HTTP (Fiber v2 + Casbin RBAC) | Шлюз для административной панели. Маршруты: аккаунты, блокчейн, горячие кошельки, транзитные кошельки, AML, активы, тикеры, тиры, операции, p2p-споры, фиат, категории риска, управление администраторами |
| univex-id | gRPC (95+ RPC) | Основной identity-сервис: авторизация, сессии, 2FA (Google/TOTP), управление аккаунтами, KYC, блокировки, ограничения, профили администраторов, роли, уведомления, заметки о пользователях. |
| ledger | gRPC (26 RPC) | Учёт и хранение балансов: операции с балансами, фиатные операции, переводы, замороженные активы, фандированные коды, выводы средств. Контроль целостности данных через хеширование операций. |
| p2p | gRPC (43 RPC) | Peer-to-peer торговля: объявления, ордера со state machine, споры, мессенджер, платёжные методы, отзывы, чёрный список. |
| exchange-integration | gRPC (60 RPC) | Прокси к Exchange Admin gRPC: авторизация, аккаунты, балансы, API-ключи, горячие кошельки, транзитные кошельки, блокчейн-операции, AML, активы, тикеры, категории риска |
| trades-aggregator | gRPC (2 RPC, streaming) | Агрегация торговых данных: информация по тикерам, изменения за 24 часа. |
| gRPC + AWS SQS | Email-сервис: отправка сообщений через SMTP. PostgreSQL для хранения. | |
| sms-gate | gRPC + AWS SQS | SMS-шлюз: отправка, повторная отправка, получение статуса. AWS SNS + Telegram как fallback. |
| sumsub-integration | gRPC + HTTP (Fiber webhooks) | KYC-интеграция: получение токена доступа, информации о заявителе, изображения документа. Обработчик webhook для терминального статуса. |
Точки входа в API¶
Платформа предоставляет три независимых точки входа:
| Точка входа | Протокол / Фреймворк | Назначение |
|---|---|---|
| gateway | HTTP REST (Fiber v2) | Основной шлюз для фронтенда |
| admin-gateway | HTTP REST (Fiber v2 + Casbin) | Шлюз для административной панели |
| Exchange HTTP API | HTTP REST (Echo) | Публичный торговый API |
Ключевые возможности¶
Многоблокчейновая поддержка¶
Платформа нативно интегрирована с сетями Bitcoin (BTC), Ethereum (ETH) и TRON, что позволяет обрабатывать депозиты и выводы средств в каждой из этих сетей непосредственно через торговое ядро.
Стакан заявок (Orderbook)¶
Встроенный механизм матчинга ордеров в Exchange Engine обеспечивает обработку торговых заявок с минимальными задержками. Поддерживаются лимитные и рыночные ордера.
P2P-торговля¶
Отдельный сервис p2p реализует полноценный marketplace для peer-to-peer сделок: объявления, state machine ордеров, встроенный мессенджер, система споров и отзывов.
AML и KYC¶
Соответствие регуляторным требованиям обеспечивается через интеграцию с двумя провайдерами:
- Elliptic — мониторинг транзакций и AML-скоринг (через topupscan и elliptic_check в Exchange Engine).
- Sumsub — верификация личности пользователей KYC/KYB (через sumsub-integration).
Учёт и хранение балансов¶
Сервис ledger централизованно управляет всеми операциями с балансами: учёт средств, переводы, фиатные операции, фандированные коды и выводы. Контроль целостности данных обеспечивается через хеширование операций. Temporal-оркестрация гарантирует выполнение долгосрочных процессов.
Identity и авторизация¶
Сервис univex-id: 95+ gRPC-методов, двухфакторная аутентификация (Google Authenticator/TOTP), ролевая модель, сессионное управление.
RBAC для административной панели¶
admin-gateway использует Casbin для ролевого управления доступом, что позволяет гибко разграничивать права между операторами с разными уровнями привилегий.
Уведомления¶
Специализированные сервисы email и sms-gate обрабатывают отправку уведомлений через AWS SQS-очереди с поддержкой повторных попыток и отслеживания статусов.
Надёжность и оркестрация¶
Долгосрочные бизнес-процессы (верификация, обработка платежей, расчёты) реализованы через Temporal.io в сервисах univex-id, ledger и p2p.
Инфраструктура¶
PostgreSQL (10 баз данных с PgBouncer), Redis, Temporal.io, AWS SQS/SNS, S3-совместимое объектное хранилище, Prometheus.
Навигация по документации¶
- Технологический стек — полный список технологий по категориям.
- Архитектура — диаграммы: контекст системы и контейнеры.