数玺框架
数玺的框架结构采用“顶-底”(Top-Bottom)两层结构。顶层通过Verixyz Agent构建出整个框架的单一入口点。 底层则通过“即插即用”的插件模组构建。
这种架构使数玺模块化、可扩展性得到提升,并与W3C现有的大量标准能够很好的兼容和互通。
1
Verixyz agent是Verixyz 框架的单一入口点。
Verixyz 代理是使用插件架构的代理的实现。 这种架构允许 Verixyz 模块化、可扩展并与可验证数据空间中的大量标准很好地兼容。
Verixyz agent的结构:
一个V-agent包括 4 个核心组件和定制的构建块:
- 信息
- 标识符
- 证书
- 钥匙
- 自定义(可选)
Verixyz agent的功能:
负责但不限于:
- 创建标识符
- 解析标识符
- 证书颁发
- 证书撤销
- 凭证交换
- 秘密分享
2
数玺中的附加功能通过即插即用的插件添加到代理中来实现。
在数玺上构建应用程序时,可以根据他们的自定义需求编写和配置即插即用插件。自定义插件可以只存在于目录、私有存储库或可以与他人共享的 npm 包中。
数玺社区鼓励开发人员在编写/开发插件时遵循一些基本规则,以确保整个数玺生态系统具有高度互操作性。
目前发布的插件(npm包)有:
3
DID 方法定义了如何实现本规范描述的特性。 DID 方法通常与特定的可验证数据注册表相关联。 新的 DID 方法在它们自己的规范中定义,以实现同一 DID 方法的不同实现之间的互操作性。 请参阅 DID 方法 W3C 规范。
目前数玺发布的DID方法有:
- did:ethr
- did:web
- did:key
- did:peopledata
开发者可根据需求开发自定义的 DID 方法。
全域解析器(Universal Resolver)
Universal Resolver 由 DIF 管理,支持全域 DID 方法。还有一些私有 DID 方法可以私下使用。
Universal Resolver 聚集了许多 DID 方法的特定驱动程序,并在同一位置的 Docker 容器中封装对应的API。 这样任何其他应用程序只要向universal Resolver发出请求,就能解析不同的DID。社区开发的其他 DID 方法主要按照约定注册,即可以得到全域支持。
可以将新didi方法添加到 Universal Resolver Supported DID 方法中。
4
用户处于信息系统的中心是DID/SSI 背后的核心理念之一。 当用户或个人被置于信息系统的中心时,他们需要一种选择性地共享信息的方法。 这称为选择性公开。 这个概念是为了鼓励和促进用户的隐私和数据控制。
例如:KYC 合规性要求用户的法定年龄要求和/或银行信用记录。 如果我们以法定年龄为例,用户可能希望分享他们已达到访问服务时的法定年龄,但不必分享他们的实际出生日期、家庭住址、联系电话和其他个人识别信息 (PII)。
数玺为用户在进行数据分享或隐私保护设置时,提供了这样的能力。
6
数玺使用 YAML 文件进行各种配置。这样可以很方便对数玺进行定制化以及适配。
例如通过下面的yaml文件配置:
#yaml
server:
baseUrl: 'http://localhost:3332'
port: '3332'
# Array of express middleware
use:
# CORS
- - $require: 'cors?t=function'
# Add agent to the request object
- - $require: '@verixyz/remote-server?t=function#RequestWithAgentRouter'
$args:
- agent:
$ref: /agent
# Execute during server initialization
init:
- $require: '@verixyz/remote-server?t=function#createDefaultDid'
$args:
- agent:
$ref: /agent
baseUrl:
$ref: /constants/baseUrl
messagingServiceEndpoint: /messaging
加入我们
欢迎有兴趣的开发者和社区运营志愿者加入我们!