- DID文档全生命周期管理(创建/解析/更新/停用)
- 支持
did:web和did:eth两种DID方法 - 自动同步区块链和本地数据库
# 启动开发环境
./scripts/start-dev.ps1
# 创建测试DID
examples/create_test_did.exe设置日志级别查看详细流程:
$env:RUST_LOG="did_system=debug"
cargo runQ: 如何解决"DID更新失败"错误? A: 检查私钥是否匹配,并确认区块链节点正常运行
基于CORD区块链框架和Cryptid DID实现的去中心化身份管理系统。本系统提供了完整的DID(去中心化身份标识符)生命周期管理功能,包括创建、解析、更新和停用DID。
系统主要由以下模块组成:
-
DID模块
- DID文档的核心数据结构
- DID生命周期管理功能
- 身份验证和授权
-
区块链模块
- 与CORD区块链的交互
- DID文档的链上存储和检索
- 交易处理和状态同步
-
API模块
- RESTful API接口
- 请求处理和响应格式化
- 错误处理
-
数据库模块
- 本地数据存储
- DID文档缓存
- 状态管理
-
工具模块
- 密钥管理
- 签名验证
- 辅助功能
- Rust编程语言
- Substrate区块链框架
- SQLite数据库
- Axum Web框架
POST /did/create
Content-Type: application/json
{
"controller_key": "<base58编码的控制者私钥>"
}GET /did/resolve
Content-Type: application/json
{
"did": "did:cord:<identifier>"
}POST /did/update
Content-Type: application/json
{
"did": "did:cord:<identifier>",
"controller_key": "<base58编码的控制者私钥>",
"document": {
// 更新后的DID文档内容
}
}POST /did/deactivate
Content-Type: application/json
{
"did": "did:cord:<identifier>",
"controller_key": "<base58编码的控制者私钥>"
}- 安装Rust和Cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- 克隆项目
git clone <repository_url>
cd did-system- 编译项目
cargo build --release- 运行服务
cargo run --release服务默认在 http://localhost:3000 启动。
这个演示程序展示了如何将传统账户系统(邮箱/手机号登录)与DID系统集成。
在运行此演示程序前,请确保:
-
区块链节点已启动:
.\scripts\start-dev.ps1 -
DID系统主服务已启动:
cargo run
cd examples/auth-demo
cargo run-
注册新用户:
# 使用邮箱注册 curl -X POST http://localhost:3000/register -H "Content-Type: application/json" -d '{ "username": "test_user", "email": "test@example.com", "password": "password123" }'
-
登录:
# 邮箱登录 curl -X POST http://localhost:3000/login -H "Content-Type: application/json" -d '{ "identifier": "test@example.com", "password": "password123" }'
-
绑定DID:
# 需要先登录获取JWT token curl -X POST http://localhost:3000/bind-did \ -H "Authorization: Bearer {your-jwt-token}" \ -H "Content-Type: application/json" \ -d '"did:web:example"'
- 创建DID:生成新的去中心化身份标识符
- 解析DID:查询并验证DID文档信息
- 更新DID:修改DID文档内容
- 现代化UI:基于Ant Design的用户友好界面
- 响应式设计:支持各种设备尺寸
- React 18
- TypeScript 4.9+
- Vite 5.0
- Ant Design 5.0
- Tailwind CSS
- Axios
- 安装依赖:
cd frontend
npm install
# 或
yarn- 启动开发服务器:
npm run dev
# 或
yarn dev- 构建生产版本:
npm run build
# 或
yarn build- 项目结构
src/
├── api/ # API接口处理
├── blockchain/ # 区块链交互
├── did/ # DID核心功能
├── db/ # 数据库操作
├── types.rs # 类型定义
├── utils.rs # 工具函数
└── main.rs # 程序入口
- 开发环境要求
- Rust 1.70.0 或更高版本
- SQLite 3.x
- 可访问的CORD节点
- 测试
cargo test-
私钥安全
- 私钥永远不会以明文形式存储
- 所有私钥操作都在内存中进行
-
数据完整性
- 使用区块链确保DID文档的不可篡改性
- 本地数据库用于缓存,提供快速访问
-
访问控制
- 基于密码学验证确保只有授权用户可以修改DID
- API接口实现了适当的访问控制
- Fork项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建Pull Request
MIT License