3. 架构设计
3.1. 整体架构
ChainWeaver DID基于W3C的DID Core标准和VC数据模型标准扩展而成,本DID系统整体架构设计如下:

DID整体架构图
网关服务:该服务主要实现请求分发和权限管理。
APP后端:主要实现App相关业务逻辑,APP账户管理、DID注册和更新、VC(凭证)管理、扫码授权与App交互(前端)。
DID核心:DID文档、核心工具类、VC凭证、VC模板、验证模块。
DID管理台:did-mgr-kms提供管理DID的密钥的能力、did-mgr-holder持有者提供管理VC的能力、did-mgr-issuer签发者提供了管理VC的能力、did-mgr-common提供了统一入口和用户中心。
App:App提供了在手机端便捷的用户操作体验。
插件:插件提供了在PC端便捷的用户操作体验。
SDK:SDK提供多语言支持(java, go)。
3.2. 微服务架构

微服务架构图
微服务整体架构包含DID运营方、签发机构、验证方:
DID运营方包含如下模块和服务:
DID网关(did-gateway)
App后端(did-app-backend)
DID核心(did-admin,did,did-subscribe)
DID管理台(did-mgr-common,did-mgr-holder,did-mgr-issuer,did-mgr-kms)
签发机构包含如下模块和服务:
DID管理台(did-mgr-common,did-mgr-holder,did-mgr-issuer,did-mgr-kms)
SDK
验证方包含如下模块和服务:
App
DID插件
SDK
App后台包含如下模块和服务:
did-app-backend
第三方服务对接,短信、邮件、个人实名、企业实名、其他第三方凭证机构
同步服务包含如下模块和服务:
同步服务(did-sync)
公共服务-存储包含如下模块和服务:
关系型数据库(kingbase人大金仓,MySQL)
缓存(Redis)
3.3. 服务架构
在了解到DID整体架构和按微服务机构后,下面介绍每个具体的服务的功能。
3.3.1. DID核心服务

DID核心服务架构图
DID核心服务包含did服务和did-admin服务,did服务主要实现DID核心逻辑提供gRPC接口;did-admin服务主要实现管理员DID相关业务逻辑包含DID核心逻辑。
DID核心服务主要包含如下模块:
DID文档:注册Document、更新Document、设置为黑名单、设置为签发者等
核心工具类:国密签名验签、签发者模块、验证者模块(验证VC、验证VP)、DID PB结构等
VC凭证:签发VC、登记VC、查询VC列表、吊销VC等
VC模板:新增VC模板、升级VC模板、启用/禁用VC模板、查询VC模板列表
验证模块:验证VP
3.3.2. 网关服务
did-gateway服务主要实现请求分发和权限管理。 主要功能:
请求分发
权限管理
3.3.3. APP后端服务
did-app-backend主要实现App相关业务逻辑,与App交互。
APP账户管理
DID注册和更新
VC(凭证)管理
扫码授权
3.3.4. DID 管理台服务

DID 管理台架构图
1、did-mgr-kms服务(DID Key Management Service):
这个服务主要负责管理DID的密钥。在DID系统中,每个实体(如个人、组织)都有一个唯一的DID,这个DID通常与一组或者多组公钥/私钥对相关联。did-kms服务负责、存储、更新和撤销这些密钥,并支持对应did
签名,验签,加密,解密等功能。确保DID的安全性和可用性。
2、did-mgr-holder服务(DID Manager Holder Service):
这个服务主要为持有者提供管理其持有的VC的功能。持有者可以使用这个服务来存储、检索、展示他们收到的VC。
3、did-mgr-issuer服务(DID Manager Issuer Service):
运行在签发结构侧的服务,为签发结构提供密钥管理、证书模板管理、以及证书发放、吊销等方面的管理功能。
4、did-mgr-common服务(DID Manager Common Service):
这个服务通常作为整个DID管理系统的统一入口和用户中心。它提供了身份验证、授权、用户管理、配置管理等基础功能,支持其他服务(如did-mgr-kms、did-mgr-issuer、did-mgr-holder)的运行。此外,它还可能包括用户界面(UI)和API网关,以便用户和其他系统能够方便地与DID管理系统进行交互。
这些服务共同构成了一个完整的DID管理系统,支持去中心化身份的创建、管理、验证和使用。在实际部署中,这些服务可能以微服务的形式存在,通过API进行通信和协作。
3.3.5. DID 同步服务

DID 同步服务架构图
did-sync服务主要负责将主链的DID数据同步到子链。
在主子链架构中,因为DID服务连接的是部署在主链的DID合约,进行操作时只会在主链进行上上链记录。为了保证子链同样可以使用同样的数据,因此开发了主子链同步服务,通过监听主链合约事件,从中解析DID相关交易并写入子链,完成信息同步。
3.4. 用户场景
3.4.1. DID运营方
搭建DID运营方需要部署如下组件:
3.4.2. 签发机构
搭建签发机构需要部署如下组件:
DID管理台 参考:部署文档
did-mgr-common
服务did-mgr-holder
服务did-mgr-issuer
服务did-mgr-kms
服务
3.4.3. 验证方
验证方可以使用App或者Web插件客户端接入系统
参考:App编译文档
参考:Web插件安装文档
3.4.4. 数据同步
同步ChainWeaver 主链数据可以参考:部署文档
3.5. 核心流程

核心流程-概述
核心流程主要包括:
申请企业实名DID
申请个人实名DID
签发VC
扫码登录
验证VP
具体流程请参考接入协议文档