# 架构设计 ## 整体架构 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)。 ## 微服务架构

微服务架构图
微服务整体架构包含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) ## 服务架构 在了解到DID整体架构和按微服务机构后,下面介绍每个具体的服务的功能。 ### 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 ### 网关服务 did-gateway服务主要实现请求分发和权限管理。 主要功能: - 请求分发 - 权限管理 ### APP后端服务 did-app-backend主要实现App相关业务逻辑,与App交互。 - APP账户管理 - DID注册和更新 - VC(凭证)管理 - 扫码授权 ### 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进行通信和协作。 ### DID 同步服务

DID 同步服务架构图
did-sync服务主要负责将主链的DID数据同步到子链。 在主子链架构中,因为DID服务连接的是部署在主链的DID合约,进行操作时只会在主链进行上上链记录。为了保证子链同样可以使用同样的数据,因此开发了主子链同步服务,通过监听主链合约事件,从中解析DID相关交易并写入子链,完成信息同步。 ## 用户场景 ### DID运营方 搭建**DID运营方**需要部署如下组件: - DID核心服务 参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#核心服务部署文档) - `did`服务 - `did-admin`服务 - DID管理台 参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#管理台部署文档) - `did-mgr-common`服务 - `did-mgr-holder`服务 - `did-mgr-issuer`服务 - `did-mgr-kms`服务 - App后端 参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#APP后端服务部署) - `did-app-backend`服务 - 网关服务 参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#网关服务(did-gateway)) - `did-gateway`服务 ### 签发机构 搭建**签发机构**需要部署如下组件: - DID管理台 参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#管理台部署文档) - `did-mgr-common`服务 - `did-mgr-holder`服务 - `did-mgr-issuer`服务 - `did-mgr-kms`服务 ### 验证方 **验证方**可以使用**App**或者**Web插件**客户端接入系统 参考:[App编译文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#APP应用编译) 参考:[Web插件安装文档]() ### 数据同步 同步**ChainWeaver 主链**数据可以参考:[部署文档](05_%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.html#数据同步) ## 核心流程

核心流程-概述
核心流程主要包括: 1. 申请企业实名DID 2. 申请个人实名DID 3. 签发VC 4. 扫码登录 5. 验证VP 具体流程请参考[接入协议文档](04_接入协议.html)