R50 660e650ba1cadf19d642f41ba5ad8434
Outstaff manager

MoonHub

Добавлено 02 авг 2023 в 11:26
  1. О проекте:
Платформа для сбора данных по торгам с криптобирж, анализа данных и построения графиков, ранжирования, принятия решений на основе результатов аналитических вычислений в режиме реального времени.

MoonHub собирает и объединяет новостные данные по криптовалюте, с возможностью в режиме реального времени просматривать всю информацию по криптовалюте на одном экране, от постов в твиттере до влияния их на капитализацию и построение японских свечей.

  1. Стек технологий:
NodeJS, React, PostgreSQL, Redis, Tarantool, NATS, AWS, Docker

  1. Задача
    Клиент разбирался в криптовалюте и имел связи в мире криптобирж. Он понимал, что существующие продукты не позволяют получить всю информацию в одном месте и пришел к нам с идеей информационного ресурса, который будет агрегировать всю открытую информацию по криптовалютам. А благодаря функционалу соц. сетей можно не только видеть аналитическую информацию, но и обсуждать ее с другими пользователями ресурса.
  1. Процесс работы:
  1. Разработка ТЗ. На этом этапе идея была оформлена в описание технической реализации. Были разработаны математические модели и изучены интеграции со сторонними системами.
  2. Разработка дизайна
  3. Разбивка работы на этапы, формирование более детальных спецификаций в рамках каждого этапа, в том числе уточнение следующих этапов на основе обратной связи и тестирование предыдущих

  1. Процесс работы:
  1. В рамках каждого отдельного этапа была произведена разработка, тестирование и запуск в тестовую эксплуатацию части проекта.
  2. Бета-тестирование функционала на предрелизном окружении, внесение изменений в UX, математические модели, отсев ненадежных источников данных и формирование пула работ на следующий этап

  1. Результаты:

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


Немного технических деталей: Мы реализовали несколько типов хранилищ данных:

  • краткосрочное копирующее для быстрого доступа к текущим расчетам
  • краткосрочное оперативное (до 48 часов) с совмещением хранилищем и сервером приложений
  • долгосрочное на основе временных рядов с возможностью настраивать время хранения и сжатия данных
  • бд общего назначения для хранения конфигурации, пользователей, результатов расчетов
Tarantool по веб сокетам получал данные из различных источников, раскладывал их по хранилищу и производил расчет зависимых значений, фоновые задачи обрабатывали полученные данные по цепочке расчетов и плавающему временному окну и складывали результаты вычислений как в текущее хранилище, так и во внешние хранилища. Была применена кластеризация хранилища.


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


Кроме того, было реализовано несколько сервисов по обслуживанию хранилища временных рядов: первичное заполнение, очистка, сжатие, поиск и заполнение пустот в случае сбоев в наполнении данных.


В результате пользователь получал обновляемые в режиме реального времени японские свечи, агрегированные курсы валют, аналитическую информацию по объемам торгов по биржам, активам, всему рынку в разрезе от 5 минут до 2х недель с глубиной просмотра информации до 10 лет


Применение различных типов хранилищ позволило выбирать наиболее оптимальные технологии для хранения различных данных - от меняющихся несколько раз в секунду и вычислениями имеющими прямой доступ к данным и до “холодных” хранилищ для исторических данных, которые не меняются после их получения



9905c99f76