Objectives

Please also see the 0.1.0 GitHub milestone description.

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:

Only the genesis version of Peer DIDs is required for this milestone.

Cryptographic Envelopes

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

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. (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-exchange protocol 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.

Outline:


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.




  • No labels