Markus Sabadello, Danube Tech (https://danubetech.com), Vienna, July 17th 2019
The DID Resolution spec is a work item of the W3C Credentials Community Group (CCG) that builds on the main DID spec. A version v0.1 has recently been released as part of the CCG's Work Item Process. The released v0.1 is still an early draft; work now continues on v0.2.
The following is a collection of the diagrams that have been used so far to illustrate various key topics of DID Resolution.
Resolving a DID basically means executing the "Read" operation of the applicable DID method. Dereferencing a DID URL involves additional, method-independent logic (see below).
The result of "resolving a DID" is a DID Document or a DID Resolution Result.
The result of "dereferencing a DID URL" is a DID Document, or part of it, or a service endpoint URL, or another resource.
See this part of the DID Resolution spec.
A "local" DID Resolver (e.g. invoked via local code or command line tool) retrieving a DID Document through "local" execution of the DID method's "Read" operation (e.g. by direct access to a blockchain full node):
A "local" DID Resolver retrieving a DID Document through "remote" execution of the DID method's "Read" operation (e.g. by using a remote blockchain explorer API):
A "remote" DID Resolver (e.g. invoked via the HTTP(S) binding or the DIDComm binding):
A DID Resolver that supports multiple DID methods:
A "local" DID Resolver that invokes a "remote" DID Resolver, which in turn supports multiple DID methods:
See this part of the DID Resolution spec.
The DID URL is just the DID itself. The DID URL is dereferenced to the DID Document:
The DID URL contains a service
matrix parameter. The DID URL is dereferenced to a service endpoint URL:
The DID URL contains a fragment. The DID URL is dereferenced to a part of the DID Document (a service):
The DID URL contains a fragment and is dereferenced to a part of the DID Document (a public key):
The DID URL contains a version-time
matrix parameter and a fragment. The DID URL is dereferenced to a part of the DID Document (a public key) at a specific point in time:
The DID URL contains a version-time
matrix parameter and a service
matrix parameter. The DID URL is dereferenced to a service endpoint URL at a specific point in time: