重新注册并发布到ION链后无法解析DID文档的短URI

问题描述 投票:0回答:1

我的问题是,在将去中心化识别 (DID) 文档发布到 ION 链后,我无法使用短格式 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);

此代码几乎是从

https://github.com/decentralized-identity/ion-tools
中的 Readme.md 复制而来。底部的方法
anchor()
发布并发布请求到ION链,这是比特币链的L2。执行后,短URI和长URI都会被打印,其中短URI只有发布后才能解析。

以前,短 URI 和长 URI 都可以在

https://identity.foundation/ion/explorer
https://dev.uniresolver.io/
中解析。我可以从注册表中获取完整定义的 DID 文档。但自 7 月 28 日起解析失败并返回 404。

我的理解是短uri也应该像长URI一样解析到指定文档。

以下是两张截图:

blockchain decentralized-identity azure-ad-verifiable-credentials
1个回答
0
投票

在 DID 文档锚定完成之前,无法解析短 DID。由于 Sidetree 协议使用批处理,并且写入区块链本身存在延迟,因此这可能需要时间。

当您提供 DID(长格式或短格式)时,解析器将检查文档是否已锚定,如果是,它将使用 DID 中的地址信息来获取完整文档。

如果DID文档尚未发布,则可以解码长格式DID的后缀来构造DID文档并返回,因为后缀包含了所有原始服务和验证方法信息。当然,短格式 DID 中缺少后缀,因此无法进行解包。

如果您查看决议响应的

didDocumentMetadata
部分,您可以看到一个标志,指示文档是否已发布。

© www.soinside.com 2019 - 2024. All rights reserved.