Задача

Нам было поручено создание торговой площадки для обмена криптовалютами он-лайн. Создание такой платформы - это проект повышенной сложности и большой ответственности, где одна ошибка может легко привести к потерям огромных средств, хранящихся в депозитарии проекта. Именно поэтому жизненно важно иметь профессиональную команду с экспертизой как в технологии криптовалют, так и цифровой безопасности

Выполненные задачи:
Разработать проект с высоким уровнем сложности и кастомизации
Реализовать функциональный, интуитивно понятный интерфейс пользователя
Дать клиентам актуальную информацию в реальном времени
Выполнить интеграцию с самой популярной криптовалютой
Спроектировать масштабируемую систему, устойчивую к высоким нагрузкам
Создать систему, устойчивую к умышленным атакам

Результат

Клиентский интерфейс

  • Регистрация/авторизация, верификация электронной почты
  • Профиль, смена пароля
  • Аутентификация

          KYC  подтверждение личности с помощью загрузки документов. KYC используется для расширения прав доступа, например, без KYC нельзя выполнять определённые действия, такие как вывод средств

          Google Authenticator (Two-Factor Authentication)  дополнительная безопасность работы обеспечивается механизмом двухфакторной авторизации с использованием мобильного приложения

          SMS TFA (SMS Two-Factor Authentication)  подтверждение номера телефона с помощью OTP

  • Уведомления пользователям по различным каналам, таким как SMS и email. Журналирование денежных операций пользователя, статистика по регистрациям пользователей, трэйдингу на бирже и валютным операциям пользователей.
  • Форма заявления для ввода fiat-валюты в систему и вывода fiat-валюты из системы на собственные счета - интерфейс для возможности оставлять заявки на ввод, вывод средств со стороны пользователя, и подтверждение выполнения этих заявок на стороне администратора, с последующей ручной обработкой.
  • Ввод различных криптовалют в систему (депозит), вывод криптовалюты из системы на личные кошельки. (Управление пополнением и выводом средств BTC происходит с помощью сервиса BitGo, который представляет собой cloud-based кошелек. По сути - это онлайн-клиент BTC-кошелька).
  • Wallets. Текущий список доступных кошельков:

          BTC кошелек

          USD кошелек

          KZT кошелек

  • Exchange. Покупка и продажа введённой в систему валюты. Текущий список доступных обменников:

          BTC / USD

          BTC / KZT

  • История депозитов, заказов, сделок, выводов
  • Торговый интерфейс - выбор рынков, тикеты, график рынка, активные ордера, список операций, ордера пользователя, форма создания ордеров
  • Моментальный расчёт комиссии
  • Система матчинга ордеров (Система, осуществляющая сопоставление пары встречных ордеров (покупка - продажа) по запрошенным ценам. Может осуществлять частичное закрытие заявок, а также собирать на один крупный ордер несколько встречных ордеров, а не только 1:1. Подбор осуществляется по общепринятым правилам трейдинга.)

Система администрирования

  • Dashboard, который позволяет посмотреть сводную информацию по бирже:

          Сводная таблица валют, торгуемых на бирже

          Таблица статусов работающих демонов

          Таблица с общей статистикой

    • Управление пользователями
    • Управление администраторами и их правами
    • Управление депозитами
    • Управление выводом средств
    • Верификация пользователей

    Обеспечение проекта

    • Документация администратора
    • Документация пользователя
    • Техническая документация - установка, настройка, деплоймент, описание архитектуры проекта
    • Автоматизированные тесты

              Частичное покрытие разработки автоматизированными тестами

              Реализация автоматизированных acceptance-тестов для основных функций биржи

              Benchmarking - проверка скорости работы механизма матчинга и определение скоростных показателей работы трейдинга

    Стек технологий, использованных при разработке

    WebServer

      • Nginx
      • Unicorn
      • Rails Application

    BackEnd

        • RabbitMQ
        • Eye
        • BitGod (RPC)

      Data Storage

        • MySQL
        • Redis

      WebSocket Server

        • Slanger

      Интеграция

        • Интеграция с BitGo (Hot wallet)  для управления пополнением и выводом средств BTC.

      Communication Server

        • MandrillApp (email notification)
        • Plivo (SMS-notification)
        • Mailchimp (email marketing)

      Mixpanel (Web Analytics)