w3c / did-resolution

RELEASED DRAFT: Decentralized Identifier Resolution (DID Resolution) 0.2 Specification
https://w3c.github.io/did-resolution/
Other
19 stars 9 forks source link

DID Resolution Test Suite #92

Open wip-abramson opened 1 month ago

wip-abramson commented 1 month ago

Attempting to capture and continue the discussion from TPAC

We need to develop a test suite that demonstrates multiple DID Resolver implementations satisfy the MUST statements in the specification at a minimum.

We should develop something that allows DID Resolver implementations to submit either a HTTPS endpoint or a docker container exposing a resolution interface and a collection of test cases (DIDs) whose resolution exercises the MUST statements in the spec. So we would need some way to match DIDs to the statement that they exercise and the test the checks this.

I believe this test suite wouldn't care which DID Methods are being resolved? I.e. Someone might submit a did:btcr resolver and a bunch of did:btcr identifiers and another person might submit a did:tdw resolver with did:tdw identifiers. Both of these together might demonstrate multiple conformant implementations of the DID Resolution specification.

Although noting that as @dmitrizagidulin pointed out, interoperability between DID methods is more complex and multi-faceted but I think this is out of scope in this iteration?

There is this existing test suite which we may be able to adapt - https://github.com/w3c-ccg/did-resolution-test-suite There is also a did:key test suite - https://github.com/w3c-ccg/did-key-test-suite

cc @BigBlueHat for any additional insight

Finally, as @burnburn mentioned, it would be great to find someone willing to champion this work.

peacekeeper commented 1 month ago

I agree with this summary, and I agree it shouldn't matter which DID method is used when running a test suite for the DID Resolution spec.

jandrieu commented 1 month ago

interoperability between DID methods is more complex and multi-faceted but I think this is out of scope in this iteration?

Not sure what you mean by "this iteration". It's my expectation that interoperability between DID methods is a major point of this WG.

wip-abramson commented 1 month ago

Not sure what you mean by "this iteration".

I mean this working group I guess.

It's my expectation that interoperability between DID methods is a major point of this WG.

I agree it is a major point of this WG. But as Dimitri highlighted there are many aspects to be considered when assessing if two DIDs are interoperable.

I believe the aspect of interoperability this WG intends to demonstrate is that two DIDs from different DID methods can be resolved following the DID Resolution specification to produce a conformant resolution result. Including, when applicable, a DID Core conformant DID document. If a DID method has a conformant DID resolver, then we are stating it is interoperable with other DID methods that also have conformant revolvers.

However, just because I can resolve did:abc:1234 and did:xyx:987 does not guarantee that my software will be able make use these two DIDs. For example, one of the DID documents may contain a verification method that my software does not understand. Or a service endpoint etc. All of this is out of scope, and may never be in scope for this WG, as Dimitri pointed out these details are primarily worked out at the policy level of individual applications and ecosystems.