From 83e0c2e0e3c413f124ebbace5a99c191e2c243f9 Mon Sep 17 00:00:00 2001
From: Manu Sporny DID Resolvers
DID document (and associated metadata) as output in a process
called DID resolution.
The inputs and outputs of the DID resolution process are defined in
. Additional considerations for implementing a
From fc7a867d7a47a278b4edbdf16fe7db53ea59217b Mon Sep 17 00:00:00 2001
From: Justin Richer
implementors are available in [[?DID-RESOLUTION]].
+All conformant DID resolvers MUST implement the DID resolution function +for at least one DID method and be able to return a DID document in +at least one conformant representation. All conformant DID URL dereferencers +MUST implement dereferencing for at least one conformant representation type. +
++The DID resolution function resolves a DID into a DID document +by using the "Read" operation of the applicable DID method. (See .) +The details of how this process is accomplished is outside the scope of this +specification, but all implementations MUST implement a function in the form: +
+ +
+resolve ( did, input-metadata ) -> ( did-document, did-document-metadata, did-resolution-metadata )
+
+The inputs of this function are a DID and a set of input metadata. The +DID is REQUIRED. Note that if the caller of this function wishes to resolve a DID URL, +the caller MUST first transform the DID URL into a bare DID, +including removal of any fragment. The input metadata are a map of key-value +string pairs as described in . +The input metadata are REQUIRED but the map MAY be empty. Concrete bindings MUST NOT +define additional inputs to this function. +
+ ++The possible keys for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRY]]. This specification +defines the following keys and values: + +
+The DID resolver executes the "Read" operation of the DID method as described in +. If successful, the outputs of this function MUST contain a DID document, +a set of metadata for the DID document (which MAY be empty), and a set of metadata for the resolution process. If +the function results in an error, the outputs MUST contain a set of metadata for the resolution process. +
+ ++The DID document is returned as a byte stream of a conformant representation +as determined and supported by the DID resolver. The caller of the DID resolution function +can then parse and process the DID document from this byte stream. The DID document is +REQUIRED unless an error is returned by the DID resolution function. +
+ +
+When a DID document is returned, the DID document metadata
is returned as a map of
+key-value string pairs as described in . This metadata
+contains information about the input DID and the returned DID document. This metadata
+typically does not change between invocations of the DID resolution function. The keys and
+possible values for this metadata are defined in the DID Core Registry [[?DID-CORE-REGISTRY]].
+The DID Document metadata MAY be empty.
+
+The contents of the DID document metadata still needs to be defined within this document. +
+ +
+The DID resolution metadata
is returned as a map of key-value string pairs as described in
+. This metadata contains information about the results of
+the resolution process. This metadata typically changes between invocations of the DID resolution
+function. The keys and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRY]]. This
+specification defines the following keys and values:
+
+
+A conforming DID resolver that is conformant with this specification +MUST be capable of performing the DID resolution process, as described in + for at least one DID method and MUST +return a conforming DID document in at least one conformant +representation. +
+ ++A conforming DID URL dereferencer that is conformant with this +specification MUST implement the DID URL dereferencing process, as +described in for at least one conformant +representation. +
+-All conformant DID resolvers MUST implement the DID resolution function -for at least one DID method and be able to return a DID document in -at least one conformant representation. All conformant DID URL dereferencers -MUST implement dereferencing for at least one conformant representation type. -
-The DID resolver executes the "Read" operation of the DID method as described in . If successful, the outputs of this function MUST contain a DID document, @@ -2816,6 +2823,7 @@
-The possible keys for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRY]]. This specification +The possible keys for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This specification defines the following keys and values:
DID resolution metadata
is returned as a map of key-value string pairs as described in
. This metadata contains information about the results of
the resolution process. This metadata typically changes between invocations of the DID resolution
-function. The keys and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRY]]. This
+function. The keys and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This
specification defines the following keys and values:
From ad516a598099724dd8f6e8d8826d73c8a4a9e28d Mon Sep 17 00:00:00 2001
From: Manu Sporny
-The DID resolution function resolves a DID into a DID document
-by using the "Read" operation of the applicable DID method. (See .)
-The details of how this process is accomplished is outside the scope of this
-specification, but all implementations MUST implement a function in the form:
+The DID resolution process takes a DID and
+resolution options as input, and produces a DID document and
+resolution metadata as output. The process utilizes the "Read" operation of
+the applicable DID method, as described in .
+The DID method-specific details of how this process is accomplished is
+outside the scope of this specification, but all implementations MUST implement
+a function in the form:
From 7c3bca88cf9cd36ebe9ace895a8ecf7903f53472 Mon Sep 17 00:00:00 2001
From: Manu Sporny
-The possible keys for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This specification
-defines the following keys and values:
+The possible properties for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This specification
+defines the following keys and values for these properties:
When a DID document is returned, the
DID document metadata
is returned as a map of
-key-value string pairs as described in . This metadata
+name-value properties as described in . This metadata
contains information about the input DID and the returned DID document. This metadata
typically does not change between invocations of the DID resolution function. The keys and
possible values for this metadata are defined in the DID Core Registry [[?DID-CORE-REGISTRIES]].
@@ -2778,10 +2778,10 @@
-The DID resolution metadata
is returned as a map of key-value string pairs as described in
+The DID resolution metadata
is returned as a map of name-value properties as described in
. This metadata contains information about the results of
the resolution process. This metadata typically changes between invocations of the DID resolution
-function. The keys and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This
+function. The property names and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This
specification defines the following keys and values:
-A conforming DID resolver that is conformant with this specification -MUST be capable of performing the DID resolution process, as described in - for at least one DID method and MUST -return a conforming DID document in at least one conformant -representation. +A conforming DID resolver MUST be capable of performing the DID +resolution process, as described in , for at +least one DID method and MUST return a conforming DID document in +at least one conformant representation.
-A conforming DID URL dereferencer that is conformant with this -specification MUST implement the DID URL dereferencing process, as -described in for at least one conformant -representation. -
+A conforming DID URL dereferencer MUST implement the DID URL +dereferencing process, as described in +for at least one conformant representation. + From 9a7cad0c33cc47e7b835d16403f0de4bb01d07d5 Mon Sep 17 00:00:00 2001 From: Manu Sporny-The DID resolution process takes a DID and -resolution options as input, and produces a DID document and -resolution metadata as output. The process utilizes the "Read" operation of -the applicable DID method, as described in . -The DID method-specific details of how this process is accomplished is -outside the scope of this specification, but all implementations MUST implement -a function in the form: +The DID resolution process takes a DID and resolution options as +input, and produces a DID document and resolution metadata as output. The +process utilizes the "Read" operation of the applicable DID method, as +described in . The DID method-specific details +of how this process is accomplished is outside the scope of this specification.
-
-resolve ( did, input-metadata ) -> ( did-document, did-document-metadata, did-resolution-metadata )
-
+The generic DID resolution algorithm takes a conforming DID +(did) and resolution options (resolutionOptions) as input and +produces a conforming DID Document (didDocument), DID Document +Metadata (didDocumentMetadata), and resolution metadata +(resolutionMetadata) as output. +
+ +
+Any errors encountered during the execution of this algorithm MUST be expressed +using the error property in resolutionMetadata. +
+ ++When resolving a DID to a DID document, the following algorithm, +or one producing an equivalent result, MUST be used: +
+ +invalid did
error MUST be
+returned.
+ invalid
+resolution option
error MUST be returned.
+ resolution failure
error MUST be
+returned.
+ invalid did document
+error MUST be returned.
+ invalid did document metadata
error MUST be returned.
+ invalid did resolution metadata
error MUST be returned.
+ +This specification defines the following properties that can be passed as +resolution options into : +
+ +-The inputs of this function are a DID and a set of input metadata. The -DID is REQUIRED. Note that if the caller of this function wishes to resolve a DID URL, -the caller MUST first transform the DID URL into a bare DID, -including removal of any fragment. The input metadata are a map of key-value -string pairs as described in . -The input metadata are REQUIRED but the map MAY be empty. Concrete bindings MUST NOT -define additional inputs to this function. +Additional properties that can be passed to the DID Resolution algorithm +are defined in the DID Core Registries [[?DID-CORE-REGISTRIES]].
+-The possible properties for the input metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This specification -defines the following keys and values for these properties: +When a DID document is returned as a part of , the corresponding metadata +associated with the DID document is also returned. This metadata +contains information about the input DID and the returned DID +document. The metadata typically does not change between invocations of the +. This section defines common +DID Document Metadata properties: +
-+The contents of the DID document metadata still needs to be defined within this document.
-The DID resolver executes the "Read" operation of the DID method as described in -. If successful, the outputs of this function MUST contain a DID document, -a set of metadata for the DID document (which MAY be empty), and a set of metadata for the resolution process. If -the function results in an error, the outputs MUST contain a set of metadata for the resolution process. +Additional DID Document Metadata properties can be found in +[[DID-CORE-REGISTRIES]].
+-The DID document is returned as a byte stream of a conformant representation -as determined and supported by the DID resolver. The caller of the DID resolution function -can then parse and process the DID document from this byte stream. The DID document is -REQUIRED unless an error is returned by the DID resolution function. +DID resolution metadata is returned as a part of the . This metadata contains +information about the results of the resolution process and typically changes +between invocations of the .
-When a DID document is returned, the DID document metadata
is returned as a map of
-name-value properties as described in . This metadata
-contains information about the input DID and the returned DID document. This metadata
-typically does not change between invocations of the DID resolution function. The keys and
-possible values for this metadata are defined in the DID Core Registry [[?DID-CORE-REGISTRIES]].
-The DID Document metadata MAY be empty.
+This specification defines the following properties that can be passed as
+resolution options into the :
-The contents of the DID document metadata still needs to be defined within this document. -
+
-The DID resolution metadata
is returned as a map of name-value properties as described in
-. This metadata contains information about the results of
-the resolution process. This metadata typically changes between invocations of the DID resolution
-function. The property names and possible values for this metadata are defined by the DID Core Registry [[?DID-CORE-REGISTRIES]]. This
-specification defines the following keys and values:
+
+Additional Resolution Metadata properties can be found in +[[DID-CORE-REGISTRIES]]. +
+Additional considerations for processing these parameters are discussed in -[?DID-RESOLUTION]. +[[?DID-RESOLUTION]].