Objectives
- Creation and validation of Peer DIDs (genesis version only)
did-exchange
protocol using HTTPS as transport- Local storage of peer DIDs
- Live, developer-driven demonstration of the above (peer DIDs, did-exchange, storage) between two non-mobile Agents
- Resolution of DIDs using the HTTPS binding
- Demonstration of ledger-backed DID resolution using Hyperledger Fabric and Sidetree
Design considerations
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.
Note: we will implement the cryptographic envelope with the updates currently discussed in hyperledger/aries-rfcs#133
did-exchange protocol using HTTPS as transport
The 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.
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
The goal is to showcase two non-mobile Agents exchanging peer DIDs with both running on the same laptop.
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.
Outline:
Live Demo 2: Integration with a Fabric Ledger
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.