Before we go into discussing the hyperledger Aries client agent development, let's explain hyperledger. Hyperledger is an umbrella project of open-source blockchains and related tools hosted by The Linux Foundation. The mission is to create enterprise-based, distributed ledger frameworks that support business transactions. Upon its launch in 2016, Hyperledger already had an organizational and technical governance structure with 30 founding corporate members.
Hyperledger leverages a modular approach to develop blockchain and helps companies build what works for them. Several big companies like J.P. Morgan, IBM, Samsung, and Intel have become part of the Linux Foundation network. Hyperledger comprises several enterprise-based solutions: Fabric, Indy, Aries, etc. However, the interest here is on Hyperledger Aries and how to set up Aries client agents. Concurrently, let's go further to explore Hyperledger Aries Client Agent.
Hyperledger Aries regards as the 13th project on the hyperledger framework. It is an infrastructure for peer-2-peer (P2P), blockchain-based interaction. Hyperledger Aries facilitates the interoperable interaction between varieties of distributed ledger technologies (DLTs).
As a reusable, shared, interoperable tool kit, Hyperledger Aries will help create, store, and transmit verifiable digital credentials. Before the development of Hyperledger Aries, Hyperledger already had the Hyperledger Indy. Hyperledger Indy is an identity project that underpins the Sovrin Network. However, Indy emphasizes the blockchain or backend side. Meanwhile, the communication between organizations and individuals and how individuals manage their wallets will be handled by Hyperledger Aries.You must understand that Aries is neither a blockchain nor an application. According to Hyperledger, it provides the infrastructure to create applications. There will be many identity networks, and these networks need to be interoperable. Aries infrastructure addresses these concerns.
Hyperledger Aries is related to both Hyperledger Ursa and Indy. While Hyperledger Ursa provides the Aries cryptographic functionality, Indy provides a revolver implementation. Aries employs the cryptographic support from Ursa to provide both hardware security modules support and secure secret management. Hyperledger Aries to change the client layers found in Indy for facilitating interoperability with other identity projects. Indy incubates protocol work between identity owners for peer to peer transactions within the system.
The Goal Of Hyperledger Aries
Aries intends to help solve two major issues which include:
Aries comprises of the following:
At the onset, the generic interface of Aries supports the Hyperledger Indy resolver. Meanwhile, the interface is flexible enough that anyone can build a pluggable method with DID method resolvers like Ethereum and Hyperledger Fabric. Developers can also utilize any other DID method resolver of their choice. Resolvers allow the resolution of transactions and data on other ledgers.
The Aries Hyperledger will also provide the functionality and features not within the scope of Hyperledger Indy or Hyperledger Ursa before it can be thoroughly planned and supported. These capabilities ensure that the community can build a core message family that facilitates interoperable interactions that use a wide range of cases involving blockchain-based identity.
Hyperledger Aries Agents and Controller
First, both agents and controllers are subsets of each other. While the controller houses the business logic, the agents execute the business logic at the command of the controller. By implication, the codes are written on the controller and the agent at each stage performs the logic therein.
Setting Up Your Hyperledger Aries Cloud Agent
Aries cloud agent comprises of two main parts; the agent and controller. The Aries cloud agent is responsible for the core Aries functionalities like interacting with other agents, managing secure storage, receiving direction from the controller, and sending event notification. The controller is responsible for the provision of logic that defines the behavior of a particular agent. Its business logic determines how to respond to events in the agent and trigger the agent to initiate events.
Controllers can be in the form of a web or native user interface that individual or coded business solutions. Between the agent and the controller is a simple interface. The agent sends event notifications to the controller while the controller sends administrator messages to the agent. However, the controller registers a webhook with the agent, and the event notifications are HTTP callbacks. The agent exposes a REST API to the controller for every administrative message you have configured it to handle. Then, the controller responds to events through the administrative message set by the DIDcomm protocol in support of the agents. An Aries cloud agent has an OpenAPI user interface that developers use to explore the specific agent's API. Therefore, the agent is simply a configured dependency in an Aries cloud agent deployment.
As an Aries developer, you have to pay attention to building controllers (business logic) and some agent's custom plugins. However, some small groups of Aries cloud agent developers will focus on adding and maintaining the agent's dependency.
Aries Cloud Agents Are Configured With The Following Sub-Components
These are pluggable transport-based message sender/receiver modules that interact with other agents. All messages outside the plugins are transport-agnostic JSON structures, and the current modules are HTTP and WebSockets. With time, we might include ZMQ, SMTP, etc.
The conductor receives all inbound messages and sends corresponding outbound messages to the transport plugins. After all internal processing, this conductor will pass all inbound messages and receive all outbound messages from the Dispatcher. It is the job of the conductor to handle all generic decorators in messages. These generic decorators include but are not limited to verifying and generating signatures on message data elements, internationalization, etc.
It handles the distribution of messages to the DIDcomm protocol message handlers as well as the responses received. The Dispatcher sends the thread state to the conductor that should be persistent and the message data to be sent to the Aries cloud agent.
Ledger Interface Plugin
In the current Hyperledger Aries cloud agent implementation, the Indy SDK offers an interface an Indy-based public ledger for verifiable credential protocols. There is the possibility of moving implementations into the DIDcomm protocol modules.
It provides an abstract interface to different handlers needed by the protocols and core Aries cloud agent components. It enables these components to access the secure storage, other storage, the ledger, etc.
The Hyperledger Aries cloud agent offers a scalable and searchable storage layer capable of storing data necessary for identity maintenance. Some examples include health records, tax records, pictures, etc.
Also read our article on Blockchain Scalability: Limitations and Solutions.
Xord is a Blockchain development company providing Blockchain solutions to your business processes. Connect with us for your projects and free Blockchain consultation at https://xord.solutions/contact/