Skip to content

Hyperledger Aries Traction - a digital wallet solution for organizations with multitenancy, cloud native architecture and Open APIs.

License

Notifications You must be signed in to change notification settings

Attestto-com/traction

 
 

Repository files navigation

traction Lifecycle:Maturing

Maintainability Behaviour Driven Tests

Hyperledger Aries Traction - a digital wallet solution for organizations. The focus of Traction is for line of businesses to easily integrate Aries (aca-py) into their applications; without having to stand up, maintain and manage and instance of aca-py themselves.

Traction provides a service layer to manage Aries agent instances in a multi-tenant aca-py deployment, and provides some value-add services for using aca-py functions such as setting up issuer agents, and issuing and verifying credentials. Future functionality could include machine-readable governance, etc.

Quick start

To run a local instance of traction, open a bash shell and run the following (git, docker and docker-compose are required):

git clone https://github.com/bcgov/traction.git
cd traction/scripts
cp .env-example .env
docker-compose build
docker-compose up

By default, this will start an environment with:

  • postgres database for traction and aca-py data
  • endorser (database, aca-py agent and api)
  • aca-py agent in multitenancy mode (access through ngrok)
  • traction api
  • tenant ui

This will be using the BCovrin Test Ledger.

Service Url Credentials
Innkeeper API (Swagger) http://localhost:5100/innkeeper/docs innkeeper / change-me
Tenant API (Swagger) http://localhost:5100/tenant/docs wallet_id / wallet_key
Tenant UI http://localhost:5101 wallet_id / wallet_key

Tenants are provided with a wallet_id and wallet_key by the Innkeeper. Only the tenant retains the wallet_key.

Important: the tenant can currently log in to one service/interface at a time. Getting a token invalidates the previous token. This is a limitiation in aca-py

Open the following in a browser: http://localhost:5100/innkeeper/docs - this is the swagger UI for the innkeeper.

After you authenticate using innkeeper/change-me you can create a new tenant using the v1/tenants/check-in function. Make a note of the wallet_id and wallet_key - you will need these to access traction as a tenant.

Open another browser and connect to http://localhost:5100/tenant/docs or http://localhost:5101. Authenticate using the wallet_id/wallet_key from the previous step.

See the use case document for more detailed information about traction services.

Running traction

For more information about the Docker Compose files for spinning up local instances of Traction and the Showcase application:

Scripts

Deploying Traction

Helm charts for deploying Traction and Endorser to Openshift:

Charts

Developing traction

Overview of the traction architecture:

Architecture

Aries Interop Profile status:

Traction AIP

Source code for Traction API:

Traction

Source code for Endorser controller application.

Endorser

Repository workflow

Currently authorized users can create a branch and run a pull request to merge in changes. Unauthorized can always create a fork.

Rebasing of a branch

git fetch --all
git pull

git rebase origin/develop
git push --force

Archive of Showcase

Earlier iterations of Traction had a Showcase application (use Traction API to facilitate Alice/Faber/Acme demo).

This has been removed as the API advances and other applications fill that role. A full working instance of Traction API and Showcase are in tag v0.1.0

The v0.1.0 release has instructions and docker compose files for running Showcase. Review Scripts.

About

Hyperledger Aries Traction - a digital wallet solution for organizations with multitenancy, cloud native architecture and Open APIs.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.2%
  • SCSS 3.0%
  • Vue 1.7%
  • TypeScript 0.9%
  • Gherkin 0.7%
  • Smarty 0.4%
  • Other 0.1%