Giter Club home page Giter Club logo

idenlight's Introduction

IDEnlight

Alt idenlight

Introduction

IDEnlight is a sofware to learn the concept of Self-Sovereign Identity. It acts as a controller for the Aries Cloud Agent Python (https://github.com/hyperledger/aries-cloudagent-python).

Deployment

This application can be served as a multi container application. See figure below.

Alt architecture

The following containers are required:

  • Aries Cloud Agent (ACA-Py)
  • Indy Tails Server
  • VON-Network (BCovrin Test Ledger will be used)
  • Controller Frontend
  • Controller Webhook Microservice

Deploy ACA-Py

ACA-Py will be served without a storage. It's probably useful to serve it with a storage to get access to e.g. credential definitions after restarting the Agent.

  1. Pull the ACA-Py image
  2. Run the container (Example of how to run the container below)
docker run --detach --name=acapy -p 11000:11000 -p <host_name>:8000:8000 bcgovimages/aries-cloudagent:py3.9-indy-1.16.0_0.9.0 start --label idenlight --tails-server-base-url http://<host_name>:6543 --webhook-url http://<host_name>:5001/webhooks -it http 0.0.0.0 8000 -ot http --admin 0.0.0.0 11000 --admin-insecure-mode --genesis-url http://test.bcovrin.vonx.io/genesis --seed <your_seed> --endpoint http://<host_name>:8000/ --debug-connections --auto-provision --wallet-type askar --wallet-name idenlight --wallet-key secret --auto-accept-invites --auto-accept-requests

In this example the indy tails server is running on http://<host_name>:6543. The webhook microservice is running on http://<host_name>:5001/webhooks. Furthermore we connecting to the BCovrin Test Ledger (http://test.bcovrin.vonx.io/). An own VON-Network can be served as well.

Deploy Indy Tails Server

The indy tails server is required to revoke credentials. You can deploy it as follows:

  1. Clone the repository (https://github.com/bcgov/indy-tails-server)
git clone https://github.com/bcgov/indy-tails-server.git
  1. Navigate to the folder, define the environment variable GENESIS_URL and start the docker script
cd indy-tails-server

GENESIS_URL=http://test.bcovrin.vonx.io/genesis ./docker/manage start

Deploy IDEnlight Webhook Microservice

  1. Clone this repository
git clone https://github.com/bieleric/idenlight.git
or
git clone https://github.com/hensch7/idenlight.git
  1. Navigate to the folder webhook_service
cd webhook_service
  1. Build the container
docker build -t webhook_service .
  1. Run the container
docker run --name=webhook_service -p 5001:5001 -d webhook_service

Deploy IDEnlight Frontend

  1. After cloning this repository, navigate to the folder frontend
cd frontend
  1. Create a config.json with the following key values pairs. You probably have to change the ports if you expose the containers on others.
{
    "frontend_url": "https://demo.id-ideal.de",
    "acapy_api": "http://<host_name>:11000",
    "acapy_service_endpoint": "http://<host_name>:8000",
    "webhook_service": "ws://<host_name>:5001",
    "credential": {
        "credentialDefinitionID": "<cred_def_id>",
        "credentialSchemaID": "<cred_schema_id>",
        "schemaIssuerDID": "<schema_issuer_did>",
        "issuerDID": "<issuer_did>",
        "verkey": "<verkey>",
        "schemaName": "<schema_name>"
    }
}
  1. Build the container
docker build -t frontend .
  1. Run the container
docker run --detach --name=frontend -p <host_name>:8080:8080 frontend

After deployment there could be an error due to the storage that is not used as mentioned above. Therefore you probably need to create a new credentials definition (and optionally save it in a database if you want to reuse it after a restart of ACA-Py) and add it to the config.json

Development

For development you should also deploy ACA-Py and the Indy Tails Server as described above and edit the config.json properly.

For further informations see

idenlight's People

Contributors

bieleric avatar hensch7 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.