Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add did:dht method #105

Open
KendallWeihe opened this issue Apr 21, 2024 · 1 comment
Open

Add did:dht method #105

KendallWeihe opened this issue Apr 21, 2024 · 1 comment
Assignees

Comments

@KendallWeihe
Copy link
Contributor

did:jwk and did:web added here #97

We need did:dht as well

@diehuxx diehuxx self-assigned this Apr 23, 2024
@diehuxx diehuxx moved this to In Progress in SDK Development Apr 23, 2024
@diehuxx
Copy link
Contributor

diehuxx commented Apr 23, 2024

Note for implementation: Conform to latest possible spec. From TBD54566975/web5-dart#66:

There have been a number of changes to the DID DHT spec since implementation, which I've captured below. These changes should be backwards compatible, meaning DIDs you use today will not break.

These changes are already in place in the DID DHT project itself, and you can find passing test vectors here as a reference.

  1. Support the three test vectors listed here: https://did-dht.com/#test-vectors
  2. Support NS records to be set to the publishing gateway (as per https://did-dht.com/#designating-authoritative-gateways, Consider adding NS records to point to gateways did-dht#129)
  3. Always set alg and kid on expansion (to the values in the registry), support overriding of alg values (as per Update spec to include language on default verification relationships, guidance on the alg property did-dht#148)
  4. Support TXT records over 255 characters (as per Address TXT records > 255 characters; make language more consistent; separate section for root records did-dht#162)
  5. Set verification method's controller property, allow overriding (as per add version number and controller property did-dht#102)
  6. Stamp version field in the root record - set to 0 for now (as per add version number and controller property did-dht#102)
  7. Support multiple service endpoints (as per Multiple spec changes - support for aka, controller, ; -> , & list of service endpoints did-dht#86)
  8. Support X25519 (as per Update spec to include language on default verification relationships, guidance on the alg property did-dht#148) - note this is required for the 3rd test vector

Additionally, I would recommend:

  1. Support a republish feature, which is able to take the latest state of a DID DHT document and re-publish it to a gateway.

If not in practice already, it would make sense to expand our "PortableDID" construct to store histories of DID DHT documents and republish should only work on the latest version (seq num).


After this you can anticipate two additional changes to DID DHT pertaining to the following issues:

74 will be a breaking change, though (9) from above paves a path to make it less disruptive.

Please let me know if you have any questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants