Обновление API Decimal

Командой было принято решение о реорганизации данного ПО.

Отличительной чертой нового подхода к работе с данными стал переход от монолитной системы к микросервисной.
Ранее комплекс ПО состоял из следующих компонентов:

  1. парсер,
  2. база данных (единая база, которая хранила всю получаемую и обрабатываемую информацию из БЧ),
  3. Gate API,
  4. Explorer API.

В новом виде комплекс представлен множеством микросервисов, каждый из которых состоит из своего парсера, БД и API.

В рамках этого преобразования ставились следующие задачи:

1. Перепроектировать парсер данных из БЧ.

  • Оптимизировать работу парсера за счет более современных подходов в разработке ПО.
  • Переписать исходный код парсера с NodeJS на Golang
  • Сделать парсер модульным и практичным, чтобы его можно было переиспользовать.

2. Провести ревизию API.

  • Пересмотр всех роутов и эндпоинтов и удаление дубликатов.
  • Разделить все эндпоинты по тематическим группам, которые будут объединены в один сервис
  • Переписать логику обработки данных эндпоинтами с Node.JS на Golang. Важно отметить, что структура эндпоинтов не поменялась.

Что нам даст новый подход:

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

На данный момент проведена работа над 4 сервисами, а именно:

  1. Сервис транзакций (API Service transaction)
  2. Сервис наград (API Service rewards)
  3. Сервис блоков (API Service Block)
  4. Сервис монет (API Service Coin)

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

Несколько сервисов в данный момент находятся в разработке:

  1. Сервис контрактов (API Service Contract)
  2. Сервис адресов (API Service Address)

Важно отметить, что после тщательных проверок эндпоинты сервисов будут интегрированы в Explorer и Console. На прод окружении данные будут проходить уже через эти сервисы. Пока все сервисы не будут выведены в прод и не пройдут все проверки, действующий комплекс ПО будет продолжать работать.