You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to hold design discussions to come up with a unified update() method signature that complies with how each did method handles (or doesn't handle) updates, and has an intuitive DX which allows the developer to discover what operations can or can't be done with specific did methods.
For example, although addService() implemented in decentralized-identity/web5-kt#313 would add a service to BearerDid construct, BearerDid is an abstraction that holds a DID (of any kind) and related objects like keymanager and diddocument.
Adding a service should have downstream implications besides mutating our library-specific BearerDid abstraction, but decentralized-identity/web5-kt#313 does not (and cannot, without prior design discussion) support the downstream actions.
A couple examples to illustrate this point:
If we were to add a service to an existing did:dht, we need to also publish the mutated DID, otherwise if we resolve the same did:dht again, the new service would not exist in the resolution result.
If we were to try and add a service to an existing did:jwk, that actually should not be possible, because did:jwk does not support updates at all.
Do we have a consistent interface for interacting with DIDs? Update should certainly be one of the methods on that interface. Not all methods need to implement all methods on the interface.
@jiyoontbd do you feel the guidance in the spec at present is sufficient? If not, could you speak to what type of text you'd like to see? And test vectors to follow (feel free to add to #167)
We need to hold design discussions to come up with a unified
update()
method signature that complies with how each did method handles (or doesn't handle) updates, and has an intuitive DX which allows the developer to discover what operations can or can't be done with specific did methods.For example, although
addService()
implemented in decentralized-identity/web5-kt#313 would add a service toBearerDid
construct,BearerDid
is an abstraction that holds a DID (of any kind) and related objects like keymanager and diddocument.Adding a service should have downstream implications besides mutating our library-specific
BearerDid
abstraction, but decentralized-identity/web5-kt#313 does not (and cannot, without prior design discussion) support the downstream actions.A couple examples to illustrate this point:
relevant issues / PRs
decentralized-identity/web5-kt#310
decentralized-identity/web5-kt#311
decentralized-identity/web5-kt#313
The text was updated successfully, but these errors were encountered: