Architecture Overview
The objective is to provide the Aries technologies in a ready-to-use state that enables seamless creation and bootstrapping of Trust Ecosystems based on self-sovereign identity technology.
Aries in a box
- an Open Source, Easy-to-Use SSI Stack
The aries-basic-controller defines a core class, the AriesAgentController, which, when instantiated with the arguments for an ACA-Py agent, can be used to control it by communicating over its admin-api interface. The aim of the basic controller is to cover all ACA-Py swagger-api endpoints verbatim. It does not have an opinion on the design of this API, it just follows ACA-Py's lead. Additionally, it has the capability to run a server to collect webhooks from the ACA-Py agent and emit these as events using PyPubSub.
The Open Source SSI stack will consume the aries-basic-controller as a dependency and expose a simplified API specific to different use cases of the agent: Wallet, Issuer, Verifier, Admin.
Note: This layer will be stateless. It is up to the application to store the necessary identifiers and other information required to interact with it.
High-Level Architecture
The SSI stack will enable customers to run services that can scale independently for each of the different capabilities:
- Wallet - A simplified API for managing multiple wallets
- Admin - An API for creating schemas, definitions, and endorsing ledger transactions
- Issuer - An API for issuers
- Verifier - An API for verifiers
- Holder - An API for holders
- Messaging - An extension of webhook handling so that agent messages can be accessed within the application
ACA-Py Agent Layer
Hyperledger Aries Cloud Agent - Python, also known as ACA-Py
, makes up the first layer in the Aries in a box
stack.
More information on ACA-Py
can be found here
Basic Controller Layer
The second layer provides an easy-to-use basic controller implementation for ACA-Py
called aries-cloudcontroller-python.
The aries-cloudcontroller-python
aims to make usage of the ACA-Py
instance significantly less complicated compared to the usage of the classic ACA-Py
integration.
Simplified API Layer
The aries-cloudapi-python
API layer makes usage of the ACA-Py
instance significantly less complicated compared to the usage of the classic ACA-Py
integration.
Below are the simplified API endpoints:
- Wallet Controller
- Issuer Controller
- Verifier Controller
- Admin Controller
- Holder Controller
- Messaging Controller
- Trust Registry