Реестр компонентов сервиса did-svc (драфт)

5 ноября 2026. Драфт. Классификация — по 261105_CI_types.md; место сервиса в общем реестре — C.did в 261105_CI-4.md.

Границы: внутренние компоненты did-svc и его интерфейсы. PostgreSQL, vc-svc, blockchain-svc/HLF и identity-сервис — внешние зависимости и потребители, в состав did-svc не входят.

Как читать

  • ID DID.NN — локальный для этого реестра.

  • Роль — тип по CI_types §1; Структура — тип по CI_types §2.

  • — — ось не применима.

Состав

ID

Компонент

Роль (§1)

Структура (§2)

Назначение

Статус

Источник

DID.01

did-svc

Функциональный сервис

—

Реестр DID: документы, подписанные операции, история, вход агентов

работает

S1, S2, S9, S12

DID.02

REST API /api

Функциональный сервис

Интерфейс

CRUD DID, parse/resolve/dereference, история, events, auth, health, swagger

работает

S1, S4, S5, S8, S10

DID.03

gRPC API :9090

Функциональный сервис

Интерфейс

Внутренний API для vc-svc: resolve DID при выпуске и проверке VC

работает

S1, S2, S12

DID.04

Auth challenge/verify

Функциональный сервис

Функция

Вход агента: одноразовый nonce, проверка подписи ключом authentication

работает

S2, S9

DID.05

DID operations

Функциональный сервис

Функция

Создание, изменение, деактивация DID; проверка подписи контроллера или владельца

работает

S2, S3, S5

DID.06

Ownership transfer

Функциональный сервис

Функция

transfer → accept/decline; owner назначается только подписью получателя

работает

S2, S9

DID.07

History verification

Функциональный сервис

Функция

Ревизии, хэш-цепочка, история по версиям, history/verify

работает

S1, S2, S3, S6

DID.08

DID Document

—

Сущность

id, controller, owner, verificationMethod, service, metadata

работает

S1, S2, S3

DID.09

Revision / Operation Proof

—

Сущность

Операция, JWS DID-Operation-Proof, digest/prevDigest, статус якорения

работает

S2, S5

DID.10

Outbox record

—

Сущность

Очередь якорения ревизий; при DID_ANCHOR=log пишется в лог

работает

S2, S11

DID.11

DID method parser

Библиотека

—

pkg/didmethod: синтаксис did:ru, did:i/did:scada, parse/resolve, операции метода

работает

S3

DID.12

Key validation

Библиотека

—

pkg/didkey: JWK, RFC 7638 thumbprint, вывод DID из ключа

работает

S2, S3, S7

DID.13

Proof verification

Библиотека

—

pkg/didproof: JWS, EdDSA/ES*/RS*/PS*, точка расширения ГОСТ

работает; ГОСТ не подключён

S2, S3, S5, S7

DID.14

PostgreSQL repository

Инфраструктурный сервис

Репозиторий (адаптер)

Таблицы dids, revisions, events, outbox; миграции

работает

S1, S2

DID.15

Outbox + anchoring worker

Инфраструктурный сервис

Репозиторий (адаптер)

Воркер переносит ревизии из outbox в якорь; сейчас лог, HLF-адаптера нет

частично

S2, S11, S12

DID.16

CLI didsign

Инструмент

—

keygen, sign, sign-vc, sign-revoke для ручных проверок

работает

S1, S8, S12

DID.17

Events feed /v1/dids/events

Функциональный сервис

Интерфейс

Лента изменений DID для синхронизации

работает

S8

DID.18

Service interfaces

Функциональный сервис

Интерфейс

/api/health, /swagger

работает

S1

Режимы и конфигурация

Не отдельные компоненты, а параметры запуска did-svc:

  • DID_OPERATION_PROOF — off / optional / required; на стенде required.

  • DID_ANCHOR — off / log; запись в HLF не подключена.

  • API_TOKENS, DID_API_TOKEN — токены партнёров и доступ vc-svc к did-svc.

  • DATABASE_URL, BACKEND_ADDRESS, DID_GRPC_ADDRESS, DID_GRPC_ADDR, LOG_LEVEL, DEBUG.

Связь с CI-4

Компонент did-svc

CI-4

DID.01

C.did

DID.02

C.did.01

DID.03

C.did.02

DID.05

C.did.04

DID.07

C.did.05

DID.15

C.did.06

DID.16

E.didsign

Остальные компоненты — детализация внутри did-svc, в CI-4 отдельными узлами не выделены.

Внешние зависимости

Компонент

CI-4

Роль

Связь с did-svc

PostgreSQL

I.PostgreSQL

Инфраструктурный сервис

Хранилище документов, ревизий, событий и outbox

vc-svc

C.vc

Функциональный сервис

Потребитель gRPC: resolve DID при выпуске и проверке VC

blockchain-svc

C.blockchain

Инфраструктурный сервис

Адаптер якорения; не подключён

HLF / document-chaincode

I.HLF, C.document-chaincode

Сеть / чейнкод

Якорение DID не выложено

identity-сервис

C.identity

Функциональный сервис

Выпускает did:i:* и PersonCredential; did-svc принимает старые методы

Ограничения и открытые вопросы

  1. Якорение: outbox и воркер есть, DID_ANCHOR=log; адаптер к blockchain-svc и did-chaincode не выложены.

  2. ГОСТ: точка расширения didproof.Verifiers.Register есть, проверка ГОСТ-подписи не подключена.

  3. keyAgreement (X25519) проверяется как ключ, но шифрованного канала нет.

  4. service[] хранится и отдаётся при резолве, но did-svc эти адреса не вызывает.

  5. owner обязателен для agent и device; назначается только подписью нового владельца.

Источники

Журнал изменений

Дата

Перечень изменений

Автор

2026-11-05

Создан драфт реестра компонентов did-svc.

Дис

2026-11-06

Источники S1–S13 оформлены ссылками на файлы; ссылки добавлены в колонку «Источник».

Дис