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

Как это работает

MONO является клиентом "Кооперативной Экономики", и подключается к блокчейну COOPOS по API, и дополняет распределенную базу данных - централизованным хранилищем персональных данных пайщиков и их документов.

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

Вся основная бизнес-логика, отвечающая за процессы кооперации, хранится в блокчейне "Кооперативной Экономики", который называется COOPOS - операционная система для кооперации. В цифровой среде COOPOS исполняются кооперативные смарт-контракты, реализующие сценарии кооперации согласно методологии союза потребительских обществ "РУСЬ".

Подключение к "Кооперативной Экономике" осуществляется оператором блокчейна COOPOS - Потребительским Кооперативом "ВОСХОД". Чтобы иметь возможность подключить MONO или другой экземпляр программного продукта к платформе "Кооперативной Экономики" к блокчейну COOPOS, кооперативу необходимо стать пайщиков ПК ВОСХОД и заключить соглашение на подключение к "Кооперативной Экономике" с ним.

Однако, поскольку блокчейн и смарт-контракты платформы "Кооперативной Экономики" распространяются по открытой лицензии и исходный код опубликован на "Github", то любой кооператив имеет техническую возможность запустить альтернативную платформу COOPOS и быть оператором на ней - в этом наша децентрализация.

Подключение без оператора

Подключение к платформе без членства в кооперативе-операторе невозможно по той причине, что в рамках цифровой среды блокчейна "Кооперативной Экономики" используются утилити-токен AXON для учёта количества хранимой, обрабатываемой и передаваемой информации в каждом конкретном кооперативе, и оборот этих токенов легально допустим только в рамках ограниченного круга лиц кооперативного контура. За пределами этого контура начинается действие закона о Цифровых Финансовых Активах. А внутри кооперативного контура - этого закона для нас нет.

MONO представляет собой бэкенд с API и фронтенд с универсальным приложением, который мы называем терминал. Терминал осуществляет подключение конечного пользователя к платформе "Кооперативной Экономики" и предоставляет интерфейс с кнопками. При нажатии кнопок пользователем, сигнал поступает на бэкенд MONO по API, где в зависимисти от команды, производится проверка контроля прав доступа, и затем вызывается API платформы "Кооперативной Экономики", если это необходимо. Также, если необходимо, производится модификация вспомогательной базы данных кооператива - сохранение документов, информации о пайщиках, платежах, и т.д. и т.п.

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

Детали

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

MONO применяет стандарты Кооперативной Экономики и реализует их в универсальном приложении, которое предоставляет API и пользовательский интерфейс для учёта взаимодействия пайщиков с кооперативом. MONO предоставляет сервис подключения к кооперативной экономике, а "ПК ВОСХОД" - провайдером.

MONO может быть запущен на выделенном сервере любым кооперативом, который подключен к кооперативной экономике, т.к. MONO - это открытый исходный код. Однако, поскольку этот процесс требует технических ресурсов и навыков, "ПК ВОСХОД" предоставляет сервис хостинга MONO на своих серверах.

Каждый экземпляр MONO - это приложение кооператива, способное работать полностью автономно, когда хранение документов, их генерация, а также контроль доступа к ним осуществляется самим кооперативом, и при этом, он продолжает находиться в общем контуре Кооперативной Экономики и иметь возможность взаимодействовать с другими кооперативами по общим стандартам.

Такая архитектура является федеративной, поскольку каждый экземпляр MONO представляет собой автономный узел, управляемый отдельным кооперативом, но продолжающий работать в общей экосистеме, используя единые стандарты взаимодействия и блокчейн как общий реестр данных. И при этом, любой кооператив (и даже пайщик) могут просмотреть анонимизированную историю всех действий в Кооперативной Экономике.

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

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

MONO можно рассматривать как ноду, которая обслуживает один кооператив и не содержит в себе блокчейна, а только подключается к нему. При подключении к блочейну, MONO поблочно синхронизирует публичную историческую информацию кооператива и предоставляет её для использования по API с возможностью извлечь состояние реестров кооператива в любой конкретный момент времени.

Каждый раз, когда MONO при сканировании блокчейна получает действие, в котором есть ссылка на документ и его мета-данные, MONO использует его для построения реестра. Т.е. основанием реестра является публичные данные, зафиксированные в блокчейне. Публичные данные документов содержат информацию, которая позволяет идентифицировать пайщика, кооператив, тип документа, который был создан, и эффект, который был получен.

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

А используя публичный хэш документа, MONO извлекает весь документ из своей приватной базы данных, который хранится в PDF и HTML форматах. Собирая всё это вместе, MONO формирует реестр пакетов документов, которые формируются на основе информации в блокчейне и дополняется приватной информации из базы данных MONO.

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

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

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

MONO применяет GraphQL в качестве API. Поверх GraphQL-API создан SDK, который обеспечивает упрощенный и чрезвычайно гибкий доступ к функционалу MONO для разработчиков.

В основе своей, MONO предоставляет систему управления реестрами пайщиков, взносов и документов на основе стандартов [Кооперативной Экономики]. Этот функционал расширяется с помощью Расширений, которые дополняют единую точку доступа GraphQL-API, которая принадлежит к конкретному экземпляру MONO. Кроме того, что расширения воздействуют на GraphQL-API, они также воздействуют и на рабочие столы, о которых мы еще не говорили.

Рабочий стол - это универсальное веб-приложение, обеспечивающее пользовательский интерфейс MONO на сайтах, мобильных и десктопных приложениях. Рабочий стол MONO реализует подключение контроллеру MONO для доступа к реестрам, а через него - к блочейну [Кооперативной Экономики].

Рабочий стол MONO предоставляет функционал для управления отношениями с пайщиками кооператива. Он включает в себя все доступные возможности кооперативной экономики через Расширения. Каждое расширение увеличивает функциональные возможности MONO.

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