Skip to content

Latest commit

 

History

History
91 lines (57 loc) · 7.23 KB

README.md

File metadata and controls

91 lines (57 loc) · 7.23 KB

CORE-SERVICE

CORE-SERVICE является набором корневых классов и утилит для микросервисов CyberWay.

Основные возможности:

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

  • Виртуальный сервис для подписки на блоки, генерируемые блокчейном CyberWay.

  • Виртуальный сервис восстановления пропущенный блоков на случай если микросервис был перезапущен или произошло что-либо иное подобное.

  • Виртуальный сервис работы с базой данных MongoDB, используя Mongoose.

  • Виртуальный сервис связи микросервисов, позволяющий осуществлять двухстороннюю связь между микросервисами через HTTP, используя JSON-RPC, добавляя к этому возможность множественного ответа на единичный запрос JSON-RPC (например для подписки на что-либо).

  • Утилиты и обертки для работы со временем, логами и переменными окружения.

  • StatsD мониторинг.

Набор ENV, которые можно определять для корневых классов:

  • GLS_CONNECTOR_HOST - адрес, который будет использован для входящих подключений связи микросервисов.
    Дефолтное значение - 127.0.0.1

  • GLS_CONNECTOR_PORT - адрес порта, который будет использован для входящих подключений связи микросервисов.
    Дефолтное значение - 3000

  • GLS_METRICS_HOST - адрес хоста для метрик StatsD.
    Дефолтное значение - 127.0.0.1

  • GLS_METRICS_PORT - адрес порта для метрик StatsD.
    Дефолтное значение - 8125

  • GLS_MONGO_CONNECT - строка подключения к базе MongoDB.
    Дефолтное значение - mongodb://mongo/admin

  • GLS_DAY_START - время начала нового дня в часах относительно UTC, используется для таких вещей как валидация "1 пост в сутки".
    Дефолтное значение - 3 (день начинается в 00:00 по Москве).

  • GLS_CYBERWAY_CONNECT - строка подключения к блокчейну CyberWay как клиент.

  • GLS_BLOCKCHAIN_BROADCASTER_SERVER_NAME - имя сервера рассыльщика блоков.

  • GLS_BLOCKCHAIN_BROADCASTER_CLIENT_NAME - имя клиента для подключения к рассыльщику блоков.

  • GLS_BLOCKCHAIN_BROADCASTER_CONNECT - строка подключения к рассыльщику блоков, может содержать авторизацию.

  • GLS_BLOCK_SUBSCRIBER_REPLAY_TIME_DELTA - дельта времени для реплея блоков при запуске, необходимо для восстановления пропущенных блоков.
    Дефолтное значение - 600000 (10 минут)

  • GLS_BLOCK_SUBSCRIBER_CLEANER_INTERVAL - интервал запуска систем очистки подписчика блоков.
    Дефолтное значение - 600000 (10 минут)

  • GLS_BLOCK_SUBSCRIBER_LAST_BLOCK_STORE - количество сохраняемых блоков из прошлого для подписчика на блоки.
    Дефолтное значение - 1000

  • GLS_SYSTEM_METRICS - включает логирование системных показателей системы для Prometheus.
    Дефолтное значение - false

  • GLS_EXTERNAL_CALLS_METRICS - включает метрики по исходящим запросами сервиса. Изначально собираются только метрики по входящим запросам.
    Дефолтное значение - false

  • GLS_USE_ONLY_RECENT_BLOCKS - режим при котором подписчик блоков не пытается скачать все пропущенные с последнего запуска блоки, а берет всегда текущие.
    (Применяется для разработки, чтобы не ждать все пропущенные блоки)
    Дефолтное значение - false

  • GLS_RECENT_BLOCKS_TIME_DELTA - параметр для найстройки режима GLS_USE_ONLY_RECENT_BLOCKS, выставляет на сколько времени в прошлое надо брать блоки.
    Дефолтное значение - 300000 (5 минут)

  • GLS_LOCAL_METRICS - переключает метрики с Prometheus на локальные, имеет два варианта значения: log и file, при log метрики будут выводиться каждые 30 секунд в консоль, при file будет писаться файл stats.txt в корень проекта каждый 2 секунды.
    Дефолтное значение - false

  • GLS_PRESERVE_LOCAL_METRICS - сохранять метрики прошлога запуска в файл stats-${TIMESTAMP}.txt
    Дефолтное значение - false

  • GLS_WAIT_FOR_TRANSACTION_TIMEOUT - таймаут ожидания транзакции при формировании блока (ms) Дефолтное значение - 300000 (5 минут)

  • GLS_SAVE_GENESIS_EXAMPLES - сохранять по одному примеру каждого вида genesis события в текущую папку.
    Дефолтное значение - false

  • GLS_NATS_MAX_IN_FLIGHT - выставляет значение MaxInFlight для коннектора nats.
    Дефолтное значение - 10

  • GLS_SKIP_MISSING_TRANSACTIONS - если нет транзакции в фиде просто логирует ошибку и продолжаем работу. Дефолтное значение - false

  • GLS_DB_LOGS_ENABLED - включает запись логов в базу данных. Дефолтное значение: false