Перейти к содержанию

Архитектура

graph TD
    %% Главные подсистемы
    subgraph "MONO"
        subgraph "Клиентский уровень"
            F["SDK"]
            G["Рабочий стол"]
            H["Расширения"]
        end

        subgraph "GraphQL-API"
            E["Контроллер"]
        end

        subgraph "Реестры и Хранилище"
            C["Фабрика документов"]
            B["Парсер"]
            D["База данных"]
        end
    end

    subgraph "Блокчейн"
        A1["Смарт-контракты"] --> A2["Нода блокчейна"]
    end

    %% Взаимодействие между блоками
    A2 -->|Читает транзакции| B
    B -->|Сохраняет события| D
    C -->|Извлекает данные| D
    C -->|Сохраняет документы| D
    E -->|Вызывает генерацию документов| C
    D -->|Предоставляет доступ| E
    E -->|Обрабатывает API-запросы| F
    E -->|Обрабатывает API-запросы| G
    E -->|Расширяется с| H
    E -->|Отправляет транзакции| A2

MONO состоит из следующих архитектурных компонент:

  • Парсер. Считывает данные о произведенных действиях из транзакций блокчейна и сохраняет их для дальнейшего извлечения.

  • Фабрика. Генерирует документы на основе шаблонов и произведенных действий, извлеченных из блокчейна. Сохраняет документы и предоставляет доступ к ним.

  • Контроллер. Обеспечивает контроль доступа к фабрике, действиям блокчейна, мутациям, запросам и подпискам через GraphQL-API.

  • SDK. Предоставляет набор инструментов для подключения к контроллеру, блокчейну, кошельку, и т.д.

  • Рабочий стол. Предоставляет пользовательские интерфейсы рабочих столов для пайщиков и администрации кооператива.

  • Блокчейн. Нода блокчейна подключается к общей сети нод и непрерывно синхронизирует информацию в распределенной базе данных.

  • Документация. Техническая документация к MONO, SDK и GraphQL-API

  • Расширения. Программы, расширяющие функционал контроллера и рабочих столов.

  • База данных. Используется парсером, фабрикой и контроллером для хранения и извлечения информации.

  • Смарт-контракты. Хранят и исполняют целевые потребительские программы в блокчейне.

Стек

Блокчейн: ANTELOPE, C/C++

Смарт-контракты: C/C++

Рабочие столы: QUASAR, VueJS, Typescript

Контроллер MONO: NestJS, Typescript

SDK: Typescript

Парсер: Express, Typescript

Фабрика документов: Typescript

База данных: Mongo (legacy) & Postgres