ION链发布DID文档后短URI无法解析问题求助
ION链DID短格式URI解析失败问题求助
将Decentralized Identify (DID)文档发布到ION链后,短格式URI无法正常解析,返回404错误。此前长、短URI均可在ION浏览器和UniResolver服务中成功获取完整DID文档,但自7月28日起短URI解析失效,长URI仍可正常使用。
示例代码
import { anchor, DID, generateKeyPair } from '@decentralized-identity/ion-tools'; // Generate keys and ION DID let authnKeys = await generateKeyPair(); let did = new DID(..); // Generate and publish create request to an ION node let createRequest = await did.generateRequest(0); // anchor: post and publish DID document to https://beta.ion.msidentity.com/api/v1.0/proof-of-work-challenge let anchorResponse = await anchor(createRequest); console.log(anchorResponse) let uri = await did.getURI(); let shortURI = await did.getURI('short'); console.log("Long URI "+ uri+ "\nShort URI: "+ shortURI);
代码复制自@decentralized-identity/ion-tools仓库的Readme,其中anchor()方法负责将DID文档提交到ION链(比特币L2网络)。
排查与修正建议
- 验证短URI生成规范:检查
did.getURI('short')生成的短格式是否为did:ion:[唯一标识符]的标准形式,避免包含长URI的冗余片段。 - 确认锚定流程有效性:
- 查看
anchorResponse的返回状态与数据,确保创建请求已成功上链,未出现工作量证明失败、节点返回错误等异常。 - 核对提交的
createRequest是否包含完整的DID文档元数据,关键字段缺失可能导致短URI映射失效。
- 查看
- 检查解析服务状态:
- 公共解析服务可能存在临时维护,可直接调用ION官方节点的解析接口测试短URI,验证是否为服务端问题。
- 确认解析服务已同步最新ION协议规则,短URI解析依赖节点的映射服务,规则未更新会导致解析失败。
- 重新生成并锚定DID:
- 使用最新版本的
@decentralized-identity/ion-tools重新生成DID并完成锚定,旧版本工具可能存在短URI兼容性问题。 - 锚定后等待足够的链上确认时间(ION基于比特币L2,需等待区块确认),再尝试解析短URI。
- 使用最新版本的
- 检查DID文档合规性:确保DID文档符合W3C DID规范,无格式错误或无效字段,否则解析服务可能拒绝返回文档。
相关截图
- 404错误提示:

- 创建注册日志及代码示例:

- GitHub仓库中DID文档URI定义:

内容的提问来源于stack exchange,提问作者shijie xu
相关产品推荐
相关产品推荐

