- From: Orie Steele <orie@transmute.industries>
- Date: Sun, 26 Jan 2020 18:49:36 -0600
- To: public-did-wg@w3.org
- Message-ID: <CAN8C-_+uk6QEs5Qt5AfKfaGqq2Ma-bSDX-bbHH0TY_Q9Ld=sTg@mail.gmail.com>
Sorry I won't be at the F2F in Amsterdam. I wanted to share some recent work on testing interoperability of DID Methods with the Universal Resolver and Linked Data Signatures. Here is the github repo: https://github.com/decentralized-identity/context There has been a lot of debate about JSON-LD recently. I'm not here to convince anyone to use it. I'm here to show you all how to test did methods that look like they support it today.... the ones that currently have an `@context`. There are 3 cases to consider: 1. Does the did document work with no changes? 2. Does the did document work with the did-core spec context ( https://www.w3.org/ns/did/v1 ) 3. Does the did document work with a custom context ( https://identity.foundation/context/did-latest.jsonld ) The 3rd option demonstrates that all that is necessary to support JSON-LD in a did document, is the ability to update markdown files and json files in a git repo. Here you can see how no network requests are being made for any of these tests: https://github.com/decentralized-identity/context/blob/master/tests/__fixtures__/documentLoader.js#L14 IMO, this work clarifies the technical barrier to entry for JSON-LD adoption. I will summarize it as concisely as possible: If you intend to allow did controllers to express their did documents as linked data, you / they need only include an `@context` value that points to a string, or an array of strings, in the thing that is returned from your did method resolution process (we call this a did document, but it might be JSON, CBOR, PDF)... If you or did controllers who use your method add new properties to their did document, you / they will be required to document them for the community by updating markdown and json files... in a single github repo. Here is an example of such a property change, which we fixed in our did method, but which does not work when only relying on https://www.w3.org/ns/did/v1 https://travis-ci.org/decentralized-identity/context/jobs/641895928#L292 You can see that the W3 context does not work by itself. Why? Because "usage" was not defined.... But it works.... when usage is defined.... That's pretty much all you need to know about how to make a did method that is linked data compliant. If you don't want to make a did method that is linked data compliant, in my opinion, you should not include an `@context`... I will be happy to remove did methods from this linked data interoperability test suite, I'd love to get it to a passing state.... However, if you intend to allow did controllers in your method to include an `@context` in their did documents, at any point in the future, please help us develop shared a vocabulary and documentation.... by editing markdown and json files in a single github repo. Further, if we as a community would like to use a method other than JSON-LD to ensure interoperability, I'm all for making a test suite for whichever technology is picked, and I'm happy to help everyone figure out how to support both models for ensuring interoperability assuming that is possible.. Method implementers are already able to choose between, centralized web services, blockchains, public / private networks, supported cryptography, capabilities like revocation, etc... Should method implementers also get to choose if their DID Method supports JSON-LD or not? As a Method Implementer you are responsible for making decisions about security, extensibility and interoperability... Certainly we have community members who would like to see Method Implementers also have the ability to choose if `@context` is a MUST, MAY or SHALL NOT. As a contributor to the did core spec, it's your job to remove optionality from method implementers, to support interoperability by clearly defining a shared core data model (schema / vocabulary). Good luck at the F2F :) Regards, -- *ORIE STEELE* Chief Technical Officer www.transmute.industries <https://www.transmute.industries> ᐧ
Received on Monday, 27 January 2020 00:52:29 UTC