-
Notifications
You must be signed in to change notification settings - Fork 96
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 initial-values
matrix parameter to Generic DID Parameters
#84
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note that we're using lowercase terms now for everything..
Wasn't the original suggestion that the value of this parameter would be a complete initial DID document? Are you now proposing that the value could be more flexible, e.g. anything that helps the DID to be resolved when otherwise that would not (yet) be possible? I think both are interesting ideas to explore! |
Though some methods (Sidetree-based ones) would use the parameter to pass
the initial DID Document state, I figured there's no reason to constrict it
to that exact value, given other methods could use different values/formats
of values for their needs.
…On Tue, Oct 22, 2019, 12:32 AM Markus Sabadello ***@***.***> wrote:
Wasn't the original suggestion that the value of this parameter would be a
complete initial DID document? Are you now proposing that the value could
be more flexible, e.g. anything that helps the DID to be resolved when
otherwise that would not (yet) be possible? I think both are interesting
ideas to explore!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#84>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABAFSVGZNV5OCJDQEKB6LTQP2UBFANCNFSM4JDJVDCQ>
.
|
Co-Authored-By: Markus Sabadello <markus@danubetech.com>
Co-Authored-By: Markus Sabadello <markus@danubetech.com>
Co-Authored-By: Markus Sabadello <markus@danubetech.com>
I have connected my GitHub and W3C accounts, so the IPR flag on this should be good to go now. |
Hey @csuwildcat you asked on today's 2019-11-05 DID WG call what's the next step for this. I think this is a good feature, but we haven't gotten much other feedback from the WG yet. If you don't mind I'd like to wait a bit longer, perhaps until we've had an opportunity to discuss matrix parameters during one of the upcoming WG calls.. |
Co-Authored-By: Markus Sabadello <markus@danubetech.com>
Co-Authored-By: Ted Thibodeau Jr <tthibodeau@openlinksw.com>
Co-Authored-By: Ted Thibodeau Jr <tthibodeau@openlinksw.com>
Co-Authored-By: Ted Thibodeau Jr <tthibodeau@openlinksw.com>
Add examples from sidetree:
Per comments from WG Call |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter feels like it's too generic, which will lead to interop issues. Can we make this more specific, with a more specific encoding?
</tr> | ||
<tr> | ||
<td> | ||
<code>initial-values</code> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand why this is plural, does it support some sort of array semantics in the value property? If not, change to "initial-value".
<code>initial-values</code> | ||
</td> | ||
<td> | ||
Some <a>DID methods</a> may require an interim period of time (e.g., a block |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What this paragraph says, and what was explained during the WG call today feel like two very different things. We shouldn't create generic parameters where DID Methods can put whatever they want to into the value... that will lead to bad interoperability. If this is going to be a base64 encoded value of the initial DID Document, then the property should be did-document
. If it is a hash of the initial document, use a hashlink. If it is a link to the initial document, it should be document-link
. The property should be more specific, with a specific encoding such that all methods implement it in the same way, if they choose to implement it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that we should not merge this until we've determined whether there is actually consensus to resurrect the matrix parameter syntax at all. Less is more.
I am entirely fine without this PR, or matrix parameters, so long as the group provides me a mechanism to do what we need to do. Not doing so is unacceptable - we MUST have a means to do this, full stop. Provide me a way, or pull in a PR like this, those are your choices, folks. |
@selfissued In the CCG there was quite strong support e.g. for the |
I think we should figure out how to actually use query params and then use them... I'm not clear on what is legal regarding path, query and fragments.... did:example:123?service=foo&path=/bar/baz#!/path/a/b?query=1&foo=2 Return of the hashbang? |
I'd like to bring this conversation back to the Can we agree that given for a DID But, |
The DID Core spec should not define or restrict in any way how DID developers can use path or query, in the same way how the base URI spec or e.g. the HTTP spec don't define specific paths or queries. Regarding the fragment, in the DID WG we cannot define how it works, since the MIME type of the resource, not the URI scheme, defines how the fragment works. The DID Resolution spec currently says that the path and query components may or may not be dereferencable in an application- or method-specific way, i.e. it leaves their use pretty much undefined and wide open. Therefore, matrix parameters, not query parameters, are where we should define functionality that we think should be inherent to DID resolution itself, such as service selection, versioned DID documents, and in this case an initial value to be used for DID resolution.
Uhh if people think matrix parameters are "complex", then what would you call this example? :) |
@cboscolo +1 to everything you said in your comment! If you add a matrix parameter to a DID, then the resulting DID URL could but doesn't have to identify the same resource, in a similar way as e.g. |
This may seem like a pedantic quibble, but I think it's necessary. Sloppy terminology use will slow our progress substantially, as arguments will arise about things that both/all sides already agree upon. I'm going to repeat some things here that most currently active participants already know, but later readers may not.
No. Different URIs (including URLs) may return the same representation of a resource. They never return the resource at all. One representation might be returned for multiple resources for various reasons. And multiple URIs might refer to the same resource ("co-reference"), resulting again in an identical representation being returned. Different URLs (being Locators) that co-reference the same resource are similar to filesystem links (without getting into the difference between symbolic and hard links). Different URNs (being Names) that co-reference the same resource are similar to nicknames for a person ("Fred Third", "Frederick Jones III", "Freddy Three"). Different URIs (being Identifiers) that co-reference the same resource are similar to multiple names or locators for the same house ("third house on the left", "40 Main Street", "the Smith house", a hypothetical WKTliteral). |
I suggest we use a method specific matrix param for this, and close this PR / Issue. |
@csuwildcat we chose to use a method specific identifier for this, and did:peer / did:key might do the same as noted on:
The more PRs are open but not mergeable, the harder it is to focus reviews on things that might actually be mergeable. Are you opposed to closing this? |
Given we will be able to use either method specific matrix params or URL params for this, I'm going to close this out to avoid relying on the whims of DID Core spec participants. There's a good chance people will wake up to the broad usefulness/necessity of this (in fact, many have since we opened this) across methods that rely on truly decentralized systems, but I'm happy for folks to take as long as necessary to arrive at a place of understanding. When that time comes, maybe we move it from method specific redundancy to a general param, with historical notes about why that occurred. |
Closing this issue, as it isn't required that we have a Generic parameter (even if it may be a good idea). Instead, we can use parameters in Method-specific ways, and let the Generic question be assessed at a future date by opening a new Issue, if it warrants doing so. |
This PR is intended to start the next phase of discussion around the needs highlighted in issue #70, regarding the ability to resolve DIDs for Methods that require a period of time before their inclusion/state has been propagated in an underling trust system (blockchain, ledger, etc.).
Preview | Diff