Сценарий показа: погружение в слои А, Б, В
Одна и та же сущность — сертификат ГУЦ и событие его жизненного цикла — прослеживается на трёх уровнях, всё глубже: входная дверь API, чейнкод распределённого реестра, машинная запись в базе данных и сообщениях узлов.
Сквозная линия показа — сжатие: чем глубже слой, тем меньше объём и тем строже форма. Двухстраничный JSON превращается в три 128-битных машинных слова.
Слой А — взаимодействие с внешними информационными системами: прикладной программный интерфейс, запросы REST/JSON. Внешний потребитель запрашивает сертификат по глобальному идентификатору 2e4000b7-7106-72d1-962c-bddab4605cb7 и получает полный ответ — две страницы JSON: издатель «Тестовый самоподписанный сертификат ГУЦ», сроки действия, открытый ключ, сведения о владельце и значение сертификата.
Слой Б — регистрация в распределённых реестрах: чейнкод. Тот же глобальный идентификатор передаётся напрямую прикладному чейнкоду канала ГУЦ (mca-channel): запись полная — сведения о владельце и значение сертификата присутствуют, история статусов не ведётся. Публичный канал (aca-pub-channel) возвращает усечённую копию: сроки действия и открытый ключ есть, значения сертификата и персональных данных нет. История статусов открывается по составному идентификатору «2026-09-28T08:14:51Z;1c91d61627e277b478fbe17aa2e2bf228b978992443cb646feeb9b1dc1f734e5»: событие «1» — начало действия, isCanceled = false.
Слой В — формирование представления данных: машинная запись. От двух страниц JSON остаются три 128-битных слова машинного ядра: идентификатор записи (UUID — 128 бит, одно слово) и хэш подписываемой части (ГОСТ Р 34.11-2012 — 256 бит, два слова). Рядом — компактная дата вступления в силу. Одну и ту же запись показывают три примера:
база данных (CouchDB): документ глобального состояния — компактная запись, из которой формируется представление о сертификате;
protobuf/gRPC: та же запись как бинарное сообщение без имён полей — 16 байт идентификатора, 32 байта хэша, компактная метка времени;
gossip-пакет: событие расходится по сети узлов коротким сообщением — узел принимает дату, хэш и признак состояния и собирает запись заново.
Итоговая картина: API отвечает страницей JSON, чейнкод — записью реестра, база данных и машинные сообщения — тремя 128-битными словами. Это означает, что один сертификат и одно событие его жизненного цикла прослежены на всех трёх уровнях: А — взаимодействие с внешними информационными системами, Б — регистрация в распределённых реестрах, В — формирование представления данных.