Developing Identity Systems Using Hyperledger Aries

TLDR: if you are going to read one thing the read this about the general Trust over IP stack

Hyperledger Aries is an open source project and specification for developing software agents that can communicate across secure cryptographic channels. The can communicate any messages using a protocol called DIDComm, however they are specifically designed to issue and present Verifiable Credentials based on anonymous credential cryptography.

The specification is being implemented in numerous coding languages; python, ruby, golang and dotnet to name a few. The idea being that you can develop a aries agent in a language of your choice and be able to interact with any other agent that follows the aries rfcs. There is an interoperability profile which defines which rfcs should be implemented to which version.

I have the most experience with the python code base which has largely been developed by the government of british columbia who have been doing great things with this tech. This video gives great deep dive of the architecture of aries agents.

An easy way to get started with a fully functioning hyperledger aries agent, controller and user interface can be found in this repo. If you check out the demo-finish branch you can spin up the a full ecosystem, with 3 agents alice, faber and acme using docker. The UI’s for the agent exists at localhost:4200-4202. If you look at the docker-compose.yml file, it should give you a good idea of the setup. The current UI used can be found in this repo and is written in angular. I have been working to replicate something similar in React, this can be found here. It is not feature complete yet! If you simply swap this repo url with the context for any of alice-web, faber-web or acme-web in the docker-compose.yml of the controller repo you will spin up an agent with the react UI. You can actually pull the project down locally, point to the folder rather than the repo url then edits to the UI will be updated while running the whole system.

My recommendation is that we continue developing this react repository to fulfil the needs of covid screening identification use case.

The only other thing to mention is that these agent code bases tyically are specialised for organisations, who will be running webservers etc. The other type of agent is a mobile agent, that works on the mobile phone. The team at streetcred have a mobile agent in the app store for both android and apple that should work with aries agents spun up using this controller and react UI. This still needs to be verified though.

Finally, I recommend joining the Hyperledger rocket chat. Channels for #aries and #aries-cloudagent-python are relevant. You can reach out to me on their or on the openmined slack - @wip.

You can find the original HackMd here, if you want to add any comments.


Thanks for reading

If you have any questions, feel free to drop me an email.