F
Fand_igor

Криптовалютная торговая платформа

Развивал и глубоко кастомизировал крупную криптовалютную платформу, которая объединяла в одном продукте биржевую торговлю, пользовательские кошельки, транзакционный контур, P2P, инвестиционные модули, KYC, уведомления, API-доступ, CRM-функции и административное управление всей системой. Это не отдельная страница обмена, а большая модульная платформа с двумя фронтендами, собственным backend-движком на TypeScript, realtime-логикой, очередями фоновых задач, широкой доменной моделью и отдельной расчётной средой для торговых операций.

Сильная сторона проекта в том, что он охватывал сразу несколько уровней:

  • пользовательский контур с торговлей, кошельками и личным кабинетом;
  • административный контур с управлением рынками, транзакциями, правами, KYC, контентом и системными настройками;
  • серверный контур с API, WebSocket, очередями, кэшированием и фоновыми обработчиками;
  • предметный контур с большим числом финансовых и инфраструктурных сущностей.

Контекст проекта

  • Проект развивался как полноценная криптофинансовая платформа, а не как отдельный обменник или лендинг.
  • В системе были выделены отдельные фронтенды для административной панели и пользовательского кабинета.
  • Архитектура была рассчитана на расширение через отдельные модули и дополнительные продуктовые блоки.
  • Платформа совмещала в себе биржевой контур, кошельки, инвестиционные продукты, P2P-направление, расширения экосистемы и инструменты сопровождения.
  • Для торгового контура использовалась отдельная среда расчётов и исполнения, которая подменяла прямые обращения к binance.com.

Что было реализовано

  • Развивал платформу с двумя отдельными фронтендами: www как административный и основной продуктовый контур на Next.js 14, React 18, TypeScript, и www_users как пользовательский кабинет и exchange-интерфейс на Next.js, React, TypeScript, Redux.
  • Реализовал собственный backend-контур на TypeScript с HTTP- и WebSocket-обработкой.
  • Использовал uWebSockets.js как высокопроизводительную основу для сервера.
  • Построил собственную систему роутинга, middleware, обработки запросов и ответов.
  • Реализовал аутентификацию через токены, сессии, Redis и API-ключи.
  • Добавил role-based и permission-based доступ как для обычных пользователей, так и для интеграционного доступа по API-ключам.
  • Реализовал rate limit, CSRF-проверки и защиту операций с повышенным риском.
  • Построил доменную модель на Sequelize и MySQL с большим набором сущностей.

Основные продуктовые контуры

Биржа и торговля

  • Реализован торговый контур для spot/exchange-операций.
  • Поддержаны торговые пары, рынки, ордера, watchlist, тикеры и графики.
  • В более раннем слое платформы также были подтверждены отдельные сущности под buy, sell, stop limit, условные покупки и продажи, избранные торговые пары и избранные книги ордеров.
  • В пользовательском кабинете реализован exchange-dashboard с выбором пары, книгой ордеров и обновлением данных в реальном времени.
  • Поддержан realtime-контур для торговых событий и обновления стакана через WebSocket.
  • Со стороны backend прорабатывал отдельный слой запросов и интеграции между платформой и внешней расчётной средой, которая заменяла прямую работу с API binance.com.
  • Сам вычислительный торговый контур был написан отдельным разработчиком на C++, а я реализовывал и развивал серверную логику взаимодействия платформы с этой средой.
  • В административной панели есть управление провайдерами биржи, маркетами, комиссиями, балансами, ордерами и служебной аналитикой.

Кошельки и финансовые операции

  • Реализован кошелёчный контур с пользовательскими балансами и типами кошельков.
  • Поддержаны пополнение, вывод, внутренние переводы и история операций.
  • Есть управление валютами, способами пополнения, способами вывода и gateway-настройками.
  • Реализованы отдельные административные сценарии согласования и обработки операций вывода.
  • Присутствует расчёт и очистка PnL, а также отдельные фоновые процессы по работе с балансами.

P2P и расширенные финансовые сценарии

  • Реализован P2P-контур с офферами, трейдами, escrow, комиссиями, dispute-сценариями, отзывами и платёжными методами.
  • Присутствуют отдельные пользовательские и административные экраны для P2P-механики.
  • В платформе реализованы бинарные ордера и отдельные интерфейсы для binary-торговли.
  • Добавлен futures-контур с отдельными рынками, позициями и торговыми экранами.
  • В платформе также прослеживается отдельный referral и affiliation-контур с бонусной логикой, историей начислений и сетевыми сценариями.

Инвестиционные и расширяемые модули

  • В платформе присутствуют модули общих инвестиций, AI investment, forex, staking и ICO.
  • Для каждого направления есть собственные планы, длительности, логи, аналитика и административные разделы.
  • Реализованы фоновые процессы обработки активных инвестиций, начислений, завершения периодов и постобработки результатов.
  • Поддержана модульная активация дополнительных направлений через extensions.

Экосистема и on-chain контур

  • Реализован отдельный ecosystem-контур.
  • В нём предусмотрены market, token, UTXO, private ledger, master wallet и custodial wallet.
  • На серверной стороне есть работа с адресами, сетями, blockchain explorer API и смарт-контрактами.
  • Для части сценариев депозитов и выводов система переключается на ecosystem-маршруты и отдельную бизнес-логику.

CRM, безопасность и пользовательский контур

  • Реализован пользовательский кабинет с профилем, KYC, уведомлениями, историей операций и настройками.
  • Поддержаны регистрация, логин, восстановление доступа, email verification, Google login, wallet login и OTP/2FA-сценарии.
  • Есть KYC-профили, шаблоны, уровни проверки и административная обработка заявок.
  • Реализованы API-ключи с набором разрешений для интеграционного доступа к торговым и финансовым операциям.
  • В административной панели присутствуют модули пользователей, ролей, разрешений, support ticket и KYC-management.

Контент и сервисные блоки

  • Внутри платформы есть CMS-контур: страницы, посты, категории, теги, слайдеры, медиа, авторы и комментарии.
  • Реализованы FAQ, анонсы, шаблоны уведомлений и mailwizard-кампании.
  • Есть storefront/ecommerce-контур с товарами, заказами, скидками, доставкой, wishlist и review-механикой.
  • Для части покупок и инвестиционных сценариев задействованы ограничения по KYC и балансу кошелька.
  • По дампу также подтверждаются кастомные страницы, landing-блоки, мультиязычность, переводы и отдельные публичные контентные сущности для маркетингового контура платформы.

Что было важно технически

  • Серверная часть построена не на типовом Express-стеке, а на собственной обвязке поверх uWebSockets.js, что даёт более серьёзный уровень контроля над производительностью, роутингом и WebSocket-коммуникацией.
  • Один из ключевых технических контуров проекта заключался в том, что торговые расчёты и исполнение были вынесены в отдельную среду, заменяющую прямые обращения к внешней бирже.
  • С моей стороны был проработан backend-слой запросов, маршрутизации, интеграции и обмена данными между платформой и этим расчётным торговым контуром.
  • Сам низкоуровневый торговый движок был реализован отдельно на C++, а моя зона ответственности лежала в интеграции этой среды с веб-платформой и прикладной бизнес-логикой.
  • Для фоновых задач использованы Bull и BullMQ с Redis.
  • Реализован набор cron/worker-процессов для обновления курсов и валют, обработки pending orders, обработки pending deposits и withdrawals, расчёта wallet PnL, очистки старых PnL-записей, а также обработки staking, forex, ICO, investment, AI investment и mail campaigns.
  • В модели доступа совмещены роли, permissions и отдельные разрешения для API-ключей.
  • Backend-контур поддерживает как пользовательские запросы, так и интеграционные вызовы с отдельной картой разрешений на операции торговли, futures, пополнения, вывода и переводов.
  • Используется Redis для сессий, токенов, rate limiting и кэширующих сценариев.
  • По более раннему слою базы также подтверждаются таблицы очередей, OAuth/personal access tokens, activity logs и WebSocket statistics, что усиливает эксплуатационный и интеграционный контур проекта.
  • На ORM-уровне предусмотрена большая расширяемая модель данных с десятками сущностей и связей.
  • В административной панели реализован полноценный управленческий слой, а не только технические формы: управление пользователями, ролями и разрешениями, управление KYC, управление контентом, управление рынками и валютами, управление кошельками и транзакциями, управление ордерами по разным типам торгового контура, управление ICO, staking, forex, P2P, affiliate, ecosystem и mailwizard, а также системные функции вроде cron-monitoring, backup, migration, restore, logs, updates и extension management.

Что подтверждается по модели данных

  • В базе явно присутствуют пользователи, кошельки, адреса кошельков, swap-история, депозиты, выводы, транзакции и уведомления.
  • Есть роли пользователей, 2FA-поля, настройки push/email notifications и история кошельков.
  • Отдельно подтверждаются activity logs, OAuth access tokens, personal access tokens, jobs, websocket statistics, affiliation-контур, membership-контур и таблицы для заранее рассчитанных торговых графиков по таймфреймам.
  • В кодовой модели дополнительно присутствуют exchangeOrder, futuresMarket, p2pTrade, p2pOffer, p2pEscrow, stakingPool, stakingLog, investment, forexSignal, forexAccount, icoProject, ecosystemPrivateLedger, ecosystemCustodialWallet, apiKey, supportTicket, permission, rolePermission и многие другие сущности.
  • Это показывает, что платформа была рассчитана не на один сценарий обмена, а на большую экосистему финансовых и сервисных модулей.

Что показывает проект

  • Умение работать с большим продуктом, где есть одновременно frontend, backend, realtime, безопасность, очереди, финансовая логика и сложная доменная модель.
  • Опыт проектирования и развития крупной модульной платформы, а не только отдельных экранов.
  • Умение строить и поддерживать финансовый backend с ордерами, кошельками, транзакциями, API-ключами и ограничениями доступа.
  • Опыт интеграции веб-платформы с отдельной вычислительной торговой средой, а не только с публичным API внешней биржи.
  • Опыт построения административной панели с очень широкой зоной ответственности.
  • Опыт работы с WebSocket, background jobs, Redis, ORM, токенами, KYC и permission-системой.
  • Опыт сборки продукта, где торговля, кошельки, контент, CRM и системное администрирование находятся в одной архитектуре.

Технологии

  • TypeScript
  • Node.js
  • Next.js
  • React
  • Redux
  • uWebSockets.js
  • WebSocket
  • Redis
  • Bull
  • BullMQ
  • Sequelize
  • MySQL
  • Tailwind CSS
  • Pusher / realtime-обновления
  • ORM-модели и собственный API-слой

Моя роль

Моя роль в этом проекте была связана с глубокой разработкой и кастомизацией самой платформы: серверной архитектуры, пользовательского и административного контуров, торговой и финансовой логики, ролей и разрешений, realtime-сценариев, фоновых задач, кошельков, транзакций, KYC, API-ключей, расширяемых модулей и инструментов сопровождения. Отдельно с моей стороны был полностью проработан backend-слой запросов и интеграции с внешней расчётной торговой средой, которая заменяла прямую работу с binance.com. Сам торговый движок в этой среде разрабатывался отдельным специалистом на C++, а моя ответственность лежала в серверной связке, обмене данными и прикладной логике со стороны платформы. Это тот тип проекта, где ценность была не в одной функции, а в способности держать в голове и развивать целую большую систему.

Практическая ценность проекта

Этот кейс показывает сразу несколько сильных сторон:

  • работа с большой и насыщенной доменной областью;
  • развитие платформы, а не одной фичи;
  • сочетание backend, frontend, realtime и фоновой обработки;
  • умение строить permission-based и role-based систему доступа;
  • опыт с финансовыми модулями, транзакциями, кошельками и торговыми сценариями;
  • интеграция веб-платформы с отдельной торговой средой и проработка backend-слоя запросов вместо прямой зависимости от публичного API биржи;
  • опыт проектирования крупной админки с большим числом управляемых подсистем;
  • умение удерживать архитектуру сложного продукта и развивать её дальше.