Skip to content

Potentially drop HTTP binding for "dereferencers"? #306

Description

@jandrieu

As I was drafting a holistic fix for #226, it seems that one way to clean up some of the confusion between dereferencing and resolution is to NOT define an http binding for dereferencing. In fact, to not define any interface for dereferencing, just define algorithms.

That is, I see the primary purpose of the DID resolution spec is to define a single interface, Resolve, that allows for interoperable DID resolution across DID methods over a common https binding.

The dereferencing algorithm which uses resolution to dereference a DID URL must also be defined--that is a dereferencer. But the value in dereferencing is not, IMO, in an interoperable API for dereferencing, its in understanding how to create a call to a resolver and apply the result, including some nice transformations like expanding URLs or alternate representations.

The current text was written to introduce the dereferencer as a peer of resolvers, with https bindings and specific method calls with inputs and outputs. That parallelism was a good initial idea, but based on my cleaning up to clarify resolution v dereferencing, iI know think it was a case of irrelevant consistencies. Not only do I not know of anyone making a stand-alone dereferencer, but the final stages of dereferencing literally CANNOT be remote&mdsh;as fragments are always interpreted by the resolving client; that is, dereferencing cannot be a simple peer of resolving.

This is part of the ongoing conversation about "dereferencers", which was not a thing we were thinking about when we all came up with DID core. I think we have neither figured out the best way to discuss these differences, nor have we socialized this separation of function particularly well.

I'll take a stab at this in my revision for #226, but I'm curious if anyone else was imagining shipping a stand-alone dereferencer; even more interesting if someone thought they might be implementing a remote dereferencer. Both would be interesting to unpack.

Metadata

Metadata

Assignees

Labels

discussNeeds further discussion before a pull request can be createdduring-cr

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions