- ✅ 实现了完整的 IPNS 密钥管理功能 (
ensureKeyExists) - ✅ 实现了 IPNS 发布功能 (
publishIpns) - ✅ 添加了生命周期和 TTL 解析函数
- ✅ 集成了
@helia/ipns模块
src/ipfs-client.ts: 完善了 IPNS 相关方法
- ✅ 在
EncryptedPeerID接口中添加了tag字段 - ✅ 更新了
encryptPeerId函数,正确存储 authentication tag - ✅ 更新了
decryptPeerIdWithSecret函数,使用存储的 tag 进行解密 - ✅ 更新了
verifyPeerIdSignature函数,签名包含 nonce + tag + ciphertext
src/types/did.ts: 添加tag字段到EncryptedPeerIDsrc/libp2p/encrypted-peer-id.ts: 完善加密、解密和验证逻辑
- ✅ 使用动态导入避免编译时错误
- ✅ 调整电路实现以匹配实际的 o1js API
- ✅ 改进了证明生成和验证逻辑
- ✅ 添加了更好的错误处理和回退机制
- ✅ 修复了 Field 类型转换问题
src/zkp/o1js-backend.ts: 重构电路实现和证明逻辑
- ✅ 实现了完整的 CID 验证逻辑
- ✅ 使用
multiformats重新计算 CID 并比较 - ✅ 支持 SHA-256 哈希算法
- ✅ 使用 dag-json codec 进行编码
- ✅ 添加了同步版本的结构验证函数
src/did-builder.ts: 实现verifyDIDDocumentIntegrity和verifyDIDDocumentIntegritySyncsrc/index.ts: 导出新的验证函数
- ✅ 移除了有问题的
libp2p依赖(在 Windows 上编译失败) - ✅ 将
o1js移到optionalDependencies - ✅ 添加了
node-fetch用于网关请求 - ✅ 添加了
@ipld/dag-json用于 CID 计算 - ✅ 添加了
@helia/ipns用于 IPNS 功能
- ✅ 创建了
src/types/global.d.ts声明文件 - ✅ 添加了 @noble/ed25519 的类型声明
- ✅ 添加了 o1js 的类型声明
- ✅ 添加了 Helia 相关模块的类型声明
- ✅ 修复了所有
TextEncoder/TextDecoder使用,改用Buffer - ✅ 修复了
fetch导入问题 - ✅ 修复了未使用变量的警告
- ✅ 修复了异步函数的 await 问题
- ✅ 更新了
tsconfig.json,添加 DOM 库和 node 类型 - ✅ 创建了
.npmrc配置文件 - ✅ 创建了
INSTALL.md安装指南 - ✅ 更新了
README.md添加 Windows 安装说明
由于移除了 libp2p 依赖,现在可以使用以下命令安装:
# 清理旧的安装
rmdir /s /q node_modules
del package-lock.json
# 重新安装
npm install --legacy-peer-deps-
libp2p 功能: 由于移除了 libp2p 依赖,完整的 P2P 网络功能暂时不可用。IPNS 发布功能依赖于 Helia 的内置支持。
-
o1js 可选: o1js 是可选依赖。如果安装失败,SDK 会自动回退到简化的 ZKP 后端。
-
Windows 兼容性: 所有核心功能现在都与 Windows 兼容,不需要原生模块编译。
- 运行
npm install --legacy-peer-deps安装依赖 - 运行
npm run build编译项目 - 运行
npm test执行测试(如果有) - 查看
INSTALL.md了解详细的安装说明