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:object Method specification #390

Merged
merged 5 commits into from
Jan 4, 2022
Merged

Add did:object Method specification #390

merged 5 commits into from
Jan 4, 2022

Conversation

mwherman2000
Copy link
Contributor

@mwherman2000 mwherman2000 commented Dec 15, 2021

DID Method Registration

As a DID method registrant, I have ensured that my DID method registration complies with the following statements:

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 15, 2021

Version 1.5.0 (https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-5-0.md) is virtually identical to version 1.0.0 and includes changes for all of the previous feedback.

The 2 key changes include:

  1. Addition of an introductory Context section at the top of the specification
  2. Movement of the Security Considerations and Privacy Considerations sections under a new heading called Implementation Guidance. Stronger reference to the importance of these sections is highlighted in the Purpose at the top of the document.

object.json has been updated to use the new versioned URL ...the only change.

@kdenhartog I don't know what you would like fixed in the DID Document example: https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-5-0.md#example-2-trusted-digital-web-did-object-did-document ...vs. the example of the change that @mprorock provided for version 1.0.0 of the specification (https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-0-0.md#example-2-trusted-digital-web-did-object-did-document).

The previous feedback on version 1.0.0 can be found here: #383

Copy link
Member

@msporny msporny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specification meets the minimum requirements for provisional registration.

@msporny
Copy link
Member

msporny commented Dec 15, 2021

@mwherman2000, as an aside and while I appreciate the nod, please remove my name from the acknowledgements section as it could be interpreted as endorsement.

I didn't do a thorough enough review of the specification to feel comfortable having my name associated with it (yet). That only myself and @mprorock show up makes it look like we're co-authors in some way. My level of comfort with being listed in the acknowledgements section might change in the future if I really dig into the DID Method and try to understand it at depth and provide a complete review.

@msporny msporny changed the title New version 1.5.0 of the did:object Method specification Add did:object Method specification Dec 15, 2021
@mwherman2000
Copy link
Contributor Author

@mwherman2000, as an aside and while I appreciate the nod, please remove my name from the acknowledgements section as it could be interpreted as endorsement.

I didn't do a thorough enough review of the specification to feel comfortable having my name associated with it (yet). That only myself and @mprorock show up makes it look like we're co-authors in some way. My level of comfort with being listed in the acknowledgements section might change in the future if I really dig into the DID Method and try to understand it at depth and provide a complete review.

Done. Changed the acknowledgement to very generic text: https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-5-0.md#7-acknowledgments

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 15, 2021

provisional registration.

@msporny "Not to look at gift horse in the mouth", what is a "provisional registration"?

I don't believe this status is defined anywhere/in plain sight.

How to escape from PROVISIONAL purgatory is not defined in the Registries spec.

References: #389

@msporny
Copy link
Member

msporny commented Dec 15, 2021

How to escape from PROVISIONAL purgatory is not defined in the Registries spec.

It is a topic of active debate at present. All registrations are provisional at this moment in time (everyone is in the same boat). That is likely to change after a process to go beyond provisional has been settled upon by the next re-chartered DID WG. More discussion, if you want to see the gory details, in yesterdays meeting:

https://www.w3.org/2019/did-wg/Meetings/Minutes/2021-12-14-did#section1

@mwherman2000
Copy link
Contributor Author

How to escape from PROVISIONAL purgatory is not defined in the Registries spec.

It is a topic of active debate at present. All registrations are provisional at this moment in time (everyone is in the same boat). That is likely to change after a process to go beyond provisional has been settled upon by the next re-chartered DID WG. More discussion, if you want to see the gory details, in yesterdays meeting:

https://www.w3.org/2019/did-wg/Meetings/Minutes/2021-12-14-did#section1

If its not part of the current public process, why was the concept of PROVISIONAL registration allowed to be introduced in the first place. Feels #cliquish.

@msporny
Copy link
Member

msporny commented Dec 15, 2021

If its not part of the current public process, why was the concept of PROVISIONAL registration allowed to be introduced in the first place.

The DID Spec Registries document currently states:

This table summarizes the DID method specifications currently in development. The links will be updated as subsequent Implementer’s Drafts are produced.

How would you like that statement changed to address your concern?

Feels #cliquish.

I don't know if this is a generational thing, but hashtaging in this way can be viewed as a microaggression when the hashtag has a negative connotation. Being accused of cliquish behaviour is a suggestion that one is being exclusionary. It is a presumption of bad faith. Given that we've had issues with you in the past where Chairs have had to get involved to remind you of the CEPC, I don't want to go down that path again.

Please assume good faith. We're all trying our best. We're not trying to exclude anyone on purpose.

What would be productive is suggesting concrete text changes that would achieve consensus in the DID WG that we can put into the document to address your concern.

Copy link
Member

@kdenhartog kdenhartog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This meets all the requirements as set out which we've applied in the past so I'm approving. However as a side note I'd suggest you try and run an implementation of this method through the did-test-suite since I'm fairly certain it would fail some of the tests there.

@msporny
Copy link
Member

msporny commented Dec 18, 2021

We have approvals from all four registry maintainers, this will be merged after 7 days from the time the PR was raised if there are no objections.

Copy link
Member

@msporny msporny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Placing an immediate hold on this PR as two new DID Methods have been added after approval... did:bizdoc and did:bizproc.

Please make each registration a different PR. This PR is on hold until the changes are made.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 19, 2021

Placing an immediate hold on this PR as two new DID Methods have been added after approval... did:bizdoc and did:bizproc.

Please make each registration a different PR. This PR is on hold until the changes are made.

I was trying/hoping the 2 new methods would become a second new PR ...how do I do this? I had actually hoped I had stopped the creation of the new changes to let the first PR complete.

Another option is to let all 3 be approved together. did:object is unchanged with the exception of 2 new references.

Please advise? ..provide detailed steps.

p.s. From a workload perspective, it makes sense to review all 3 together. There's lot of common boilerplate text.

methods/bizdoc.json Outdated Show resolved Hide resolved
methods/bizproc.json Outdated Show resolved Hide resolved
@davidlehn
Copy link
Contributor

Placing an immediate hold on this PR as two new DID Methods have been added after approval... did:bizdoc and did:bizproc.
Please make each registration a different PR. This PR is on hold until the changes are made.

I was trying/hoping the 2 new methods would become a second new PR ...how do I do this? I had actually hoped I had stopped the creation of the new changes to let the first PR complete.

You need different checkouts or different branches for each change. Then go to the PR page and create a new PR for each one.

Another option is to let all 3 be approved together. did:object is unchanged with the exception of 2 new references.

Please advise? ..provide detailed steps.

p.s. From a workload perspective, it makes sense to review all 3 together. There's lot of common boilerplate text.

I think it's a cleaner process to review each method on its own. If one method is substantially similar to another, just note that for the reviewers. You could even note the differences. Or even just suggest people do something like this:

diff -u <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-object-1-5-0.md) <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-bizproc-1-0-0.md)
diff -u <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-object-1-5-0.md) <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-bizdoc-1-0-0.md)
diff -u <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-bizproc-1-0-0.md) <(curl -s https://raw.githubusercontent.com/mwherman2000/TrustedDigitalWeb/master/specifications/did-methods/did-bizdoc-1-0-0.md)

(Maybe even append "| vim -R -" if you like some color diffs.)

A couple notes:

  • These are all so similar, one might ask if they could be combined somehow to reduce the number of needed did methods?
  • The ids are the same for object, bizproc, and bizdev examples? Is that because that's how this works or just copy & paste?
  • These specs have a ton of references that are not used. Maybe clean that up to just have ones that the text refers to? And bonus points for linking reference numbers.

@peacekeeper
Copy link
Contributor

@mwherman2000 this specification seems to use "publicKey", which is an outdated property in the DID Core data model. This has been replaced by "verificationMethod". And maybe use "publicKeyJwk" or "publicKeyMultibase" instead of "publicKeyHex"?

Also, in the DID operations sections, perhaps use "Deactivate" instead of "Delete (Revoke)", this was also changed in DID Core a while ago.

Copy link
Member

@kdenhartog kdenhartog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes until the 3 methods are split out and can be evaluated independently. At this point I'm ok with merging only did:object with the note that I'm fairly certain it won't pass the did-test-suite if the examples are implemented as expected.

@kdenhartog
Copy link
Member

kdenhartog commented Dec 21, 2021

The 3 DID Method specifications differ in the following (obvious) sections:

* Purpose

* Method Name

* Identifier Format

* Examples

The differences are obvious and expected given the common outline/format used for each specification:

a. Purpose: mwherman2000/TrustedDigitalWeb@master/specifications/did-methods/did-bizdoc-1-0-0.md#purpose b. Method Name: mwherman2000/TrustedDigitalWeb@master/specifications/did-methods/did-bizdoc-1-0-0.md#2-trusted-digital-web-business-document-identifier-method-name c. Identifier Format: mwherman2000/TrustedDigitalWeb@master/specifications/did-methods/did-bizdoc-1-0-0.md#3-trusted-digital-web-business-document-identifier-format d. Example 1: mwherman2000/TrustedDigitalWeb@master/specifications/did-methods/did-bizdoc-1-0-0.md#example-1-trusted-digital-web-business-document-schema-identifier e. Example 2: mwherman2000/TrustedDigitalWeb@master/specifications/did-methods/did-bizdoc-1-0-0.md#example-2-trusted-digital-web-business-document-document-identifier

It is easiest/best to review and accept all 3 specifications at the same time.

The DID Syntax should resolve only to a DID Document. If you resolve to anything other than a DID Document your method won't comply with the test suite. Only DID URLs can link to external DID Documents in the test suite as far as I'm aware. I highly suggest you try and test against the test suite because what you're proposing in the latest two methods will fail in the test suite.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 22, 2021 via email

@kdenhartog
Copy link
Member

kdenhartog commented Dec 23, 2021

So you're saying this did:bizdoc:doc:invoice-2:BF5pxRJP6THrUtlDdhh07hJEDKrJxkcR9m5u1xs33bhp:255319 resolves to a DID Document not a Business Document? Do all of these other identifiers also only resolve to the DID Document?

did:bizdoc:schema:invoice-2:BF5pxRJP6THrUtlDdhh07hJEDKrJxkcR9m5u1xs33bhp:1.2.3
did:bizdoc:schema:invoice-2:BF5pxRJP6THrUtlDdhh07hJEDKrJxkcR9m5u1xs33bhp

The change requests were purely about separating out the 3 methods. The other comments are just about trying to gain understanding of the method because based on the details in it so far it's unclear to me which DID URI resolves to the DID Document and I'm thinking it's not going to be interoperable which is why I'm suggesting you check the did test suite. There's nothing malicious going on here so no need to be defensive. I'm trying to help fill gaps just like I've done on many other methods.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 24, 2021

@kdenhartog I'm confirming that all of your examples return a DID Document if they are passed to a DID Resolution specification compliant resolver. According to the DID-CORE specification, that's the only thing they can/should/should resolve to.

NOTE: did:bizdoc and did:bizproc have been removed.

@mwherman2000
Copy link
Contributor Author

did:bizproc and did:bizdoc have been removed.

@mwherman2000
Copy link
Contributor Author

@mwherman2000 this specification seems to use "publicKey", which is an outdated property in the DID Core data model. This has been replaced by "verificationMethod". And maybe use "publicKeyJwk" or "publicKeyMultibase" instead of "publicKeyHex"?

Also, in the DID operations sections, perhaps use "Deactivate" instead of "Delete (Revoke)", this was also changed in DID Core a while ago.

All of these changes have been made and pushed.

Copy link
Member

@kdenhartog kdenhartog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approving now that we're back to a single did method being registered in this PR.

@mwherman2000
Copy link
Contributor Author

Placing an immediate hold on this PR as two new DID Methods have been added after approval... did:bizdoc and did:bizproc.

Please make each registration a different PR. This PR is on hold until the changes are made.

@msporny This change has been completed. Please approve.

@mwherman2000
Copy link
Contributor Author

@kdenhartog I'm confirming that all of your examples return a DID Document if they are passed to a DID Resolution specification compliant resolver. According to the DID-CORE specification, that's the only thing they can/should/should resolve to.

NOTE: did:bizdoc and did:bizproc have been removed.

@kdenhartog Here's an example I worked up over the past couple days that will help explain how DID Identifiers, DID Documents, DID Agents, and DID Objects work together to help support the Fully Decentralized Object Framework...
didlang Command Line Interpreter for DID Identifiers, DID Documents, DID Agents, and DID Objects 0.1.

@mwherman2000
Copy link
Contributor Author

@msporny Happy New Year Manu, do you have any additional concerns/issues? I have a queue of method registration applications waiting to come through

@msporny
Copy link
Member

msporny commented Jan 4, 2022

@msporny Happy New Year Manu, do you have any additional concerns/issues?

Nope, none. The PR was modified to only register a single DID Method, that DID Method has not received objections during the standard wait time period (even taking the holidays into account), multiple positive reviews, so merging now.

@msporny msporny merged commit d602423 into w3c:main Jan 4, 2022
@mwherman2000
Copy link
Contributor Author

Thk you to all the reviewers for helping to improve this DID method spec. We're breaking a lot of new ground ... there's a huge future ahead.

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

Successfully merging this pull request may close these issues.

7 participants