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运营方需要部署如下组件:

  • DID核心服务 参考:部署文档

    • did服务

    • did-admin服务

  • DID管理台 参考:部署文档

    • did-mgr-common服务

    • did-mgr-holder服务

    • did-mgr-issuer服务

    • did-mgr-kms服务

  • App后端 参考:部署文档

    • did-app-backend服务

  • 网关服务 参考:部署文档

    • did-gateway服务

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. 核心流程


核心流程-概述

核心流程主要包括:

  1. 申请企业实名DID

  2. 申请个人实名DID

  3. 签发VC

  4. 扫码登录

  5. 验证VP

具体流程请参考接入协议文档