- Creation and validation of Peer DIDs (genesis version only) - contained in [#35]
did-exchangeprotocol - contained in [#42]
- Cryptographic envelopes with the updates discussed in hyperledger/aries-rfcs#133 - contained in [#36]
- Support for Ed25519VerificationKey2018 - contained in [#96]
- Local storage of peer DIDs - contained in [#35]
- Resolution of DIDs - contained in [#86]
- Live Demo 1: simple DID exchange - contained in [#67] [#68] [#74] [#44]
- Live Demo 2: ledger-backed DID resolution using Hyperledger Fabric and Sidetree via HTTPS binding - contained in [#124]
Please also see the 0.1.0 GitHub milestone description.
aries-framework-go is a highly customizable framework that provides sensible defaults.
Details regarding the project's layout can be found here: Framework Go Package Hierarchy.
Creation and validation of Peer DIDs
The framework should support several DID methods of which
did:peer is just one.
did:peer to be enabled for creation and resolution by default.
Validation on peer DIDs:
- Namestring generation method
- Peer DID format
- When creating, at least one publicKey and one authorization
Only the genesis version of Peer DIDs is required for this milestone.
Full support for cryptographic envelopes with ECDSA keys.
Support for Ed25519VerificationKey2018
Implement the Ed25519 Signature 2018 signature suite for creating DID documents and proving ownership.
did-exchange protocol using HTTPS as transport
did-exchange protocol to be fully implemented.
The framework will support many transports of which HTTPS is one. HTTPS to be enabled by default.
Local storage of peer DIDs
The framework will support several storage mechanisms.
No specific implementation targeted for this milestone. (note: it is assumed we will continue with the goleveldb approach for this iteration.)
Define generic storage interface that allows the Agent to protect its secrets from the storage provider.
DID Resolution using HTTPS binding
The framework will support external DID resolution using the HTTPS binding.
We will demonstrate usage of a Fabric enabled with the Sidetree protocol (exposing the HTTPS binding for DID resolution).
Live Demo 1: simple DID exchange
The goal is to showcase the following with two non-mobile Agents both running on the same laptop:
- Creation and validation of Peer DIDs (genesis version only)
did-exchangeprotocol with cryptographic envelopes and using HTTPS as transport
- Local storage of peer DIDs
The presenter should be able to run the steps one by one as they showcase the demo to others.
A controller API is needed on each Agent in order to drive the demo's steps. The controller API in this framework will be closely aligned with the one in aries-cloudagent-python with the goal of demonstrating interoperability.
Live Demo 2: ledger-backed DID resolution using Hyperledger Fabric and Sidetree
The goal is to showcase usage of ledger-backed DIDs during DID exchange and also demonstrate usage of another Hyperledger DLT (Fabric). This is a variation of Live Demo.
As with Live Demo, we should be able to run step by step. In this case, we additionally want to highlight:
- Creation of the DID in fabric-sidetree.
- Demonstrate that the fabric ledger contains the DID (showing the JSON document, batch file, and block containing the hash).
- The HTTPS request & response that shows we made an external call to the DID resolution endpoint of fabric-sidetree (and that it follows the HTTPS binding).
- Exchange and resolution of the Sidetree DIDs between agents.
The Fabric with Sidetree project should be pulled from dockerhub and used with a docker-compose environment for easy demo setup.
This demonstration makes progress towards one of the goals of the Hyperledger Aries project: "Cross-platform integration" (see Aries Proposal FAQ), and also helps demonstrates the possibility of a cross-Hyperledger scenario.