Skip to content

Commit

Permalink
Aries playground for data agreement enabled SSI flows
Browse files Browse the repository at this point in the history
Signed-off-by: George J Padayatti <[email protected]>
  • Loading branch information
georgepadayatti committed Dec 23, 2021
1 parent b75d2f9 commit c1c2f57
Show file tree
Hide file tree
Showing 10 changed files with 5,355 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
<a href="#about">About</a> •
<a href="#release-status">Release Status</a> •
<a href="#contributing">Contributing</a> •
<a href="#licensing">Licensing</a>
<a href="#licensing">Licensing</a> •
<a href="https://github.com/decentralised-dataexchange/aries-playground/blob/master/automated-data-agreement">Aries playground for automated data agreements</a>
</p>

# About
Expand Down
51 changes: 51 additions & 0 deletions automated-data-agreement/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

<p align="center">
<a href="#about">About</a> •
<a href="#release-status">Release Status</a> •
<a href="#contributing">Contributing</a> •
<a href="#licensing">Licensing</a>
</p>

# About

The Aries playground environment is setup for developers to perform API call flows during a [data agreement](https://github.com/decentralised-dataexchange/automated-data-agreements) enabled verified data exchange process using Hyperledger Indy as the distributed ledger registry and Hyperldger Aries agent as the client application.

# Developer Instructions

*Notes* : By default the agents are pointed to indy ledger hosted at https://indy.igrant.io

## Install aries ecosystem
1. Clone repository
2. Create a docker network `docker network create aries-playground-nw` (If not already created)
3. Run `cd automated-data-agreement` to change directory to data agreement enabled aries playground
4. Run `docker-compose up` if your host machine is x86 architecture, if it is arm64 architecture Run `docker-compose -f docker-compose-aarch64.yml up`, it will serve:
* testcenter.localhost (Agent1 service endpoint)
* testcenter.swagger.localhost (Administration API(s) with swagger UI)
* travelcompany.localhost (Agent2 service endpoint)
* travelcompany.swagger.localhost (Administration API(s) with swagger UI)
* individual.localhost (Agent3 service endpoint)
* individual.swagger.localhost (Administration API(s) with swagger UI)
* didregistry.localhost (Agent4 service endpoint)
* didregistry.swagger.localhost (Administration API(s) with swagger UI)
* auditor.localhost (Agent5 service endpoint)
* auditor.swagger.localhost (Administration API(s) with swagger UI)

Please refer the [user guide executing data agreement enabled credential issue and verification](https://github.com/decentralised-dataexchange/aries-playground/blob/master/automated-data-agreement/credential-issue-and-verification-api-user-guide.md) for the above reference system.


## Release Status

Released

## Contributing

Feel free to improve the playground and send us a pull request. If you found any problems, please create an issue in this repo.

## Licensing
Copyright (c) 2021 LCubed AB (iGrant.io), Sweden

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.
4,911 changes: 4,911 additions & 0 deletions automated-data-agreement/credential-issue-and-verification-api-user-guide.md

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions automated-data-agreement/docker-compose-aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
version: "3"
services:
nginx:
image: nginx
command: /bin/bash -c "exec nginx -g 'daemon off;'"
ports:
- "80:80"
volumes:
- ./nginx/ada-conf.d:/etc/nginx/conf.d
networks:
- aries-playground-nw
testcenter.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.aarch64
command: "start -it http 0.0.0.0 80 -ot http -e http://testcenter.localhost --label Test-Center --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Test-Center --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: testcenter.localhost
networks:
- aries-playground-nw
volumes:
- testcenter-data:/home/indy/.indy_client
travelcompany.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.aarch64
command: "start -it http 0.0.0.0 80 -ot http -e http://travelcompany.localhost --label Travel-Company --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Travel-Company --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: travelcompany.localhost
networks:
- aries-playground-nw
volumes:
- travelcompany-data:/home/indy/.indy_client
individual.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.aarch64
command: "start -it http 0.0.0.0 80 -ot http -e http://individual.localhost --label Individual --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Individual --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: individual.localhost
networks:
- aries-playground-nw
volumes:
- individual-data:/home/indy/.indy_client
didregistry.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.aarch64
command: "start -it http 0.0.0.0 80 -ot http -e http://didregistry.localhost --label DID-Registry --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name DID-Registry --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: didregistry.localhost
networks:
- aries-playground-nw
volumes:
- didregistry-data:/home/indy/.indy_client
auditor.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.aarch64
command: "start -it http 0.0.0.0 80 -ot http -e http://auditor.localhost --label Auditor --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Auditor --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: auditor.localhost
networks:
- aries-playground-nw
volumes:
- auditor-data:/home/indy/.indy_client
networks:
aries-playground-nw:
external: true

volumes:
travelcompany-data:
individual-data:
didregistry-data:
auditor-data:
testcenter-data:
71 changes: 71 additions & 0 deletions automated-data-agreement/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
version: "3"
services:
nginx:
image: nginx
command: /bin/bash -c "exec nginx -g 'daemon off;'"
ports:
- "80:80"
volumes:
- ./nginx/ada-conf.d:/etc/nginx/conf.d
networks:
- aries-playground-nw
testcenter.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.x86
command: "start -it http 0.0.0.0 80 -ot http -e http://testcenter.localhost --label Test-Center --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Test-Center --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: testcenter.localhost
networks:
- aries-playground-nw
volumes:
- testcenter-data:/home/indy/.indy_client
travelcompany.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.x86
command: "start -it http 0.0.0.0 80 -ot http -e http://travelcompany.localhost --label Travel-Company --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Travel-Company --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: travelcompany.localhost
networks:
- aries-playground-nw
volumes:
- travelcompany-data:/home/indy/.indy_client
individual.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.x86
command: "start -it http 0.0.0.0 80 -ot http -e http://individual.localhost --label Individual --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Individual --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: individual.localhost
networks:
- aries-playground-nw
volumes:
- individual-data:/home/indy/.indy_client
didregistry.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.x86
command: "start -it http 0.0.0.0 80 -ot http -e http://didregistry.localhost --label DID-Registry --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name DID-Registry --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: didregistry.localhost
networks:
- aries-playground-nw
volumes:
- didregistry-data:/home/indy/.indy_client
auditor.localhost:
build:
context: .
dockerfile: ./docker/Dockerfile.x86
command: "start -it http 0.0.0.0 80 -ot http -e http://auditor.localhost --label Auditor --admin 0.0.0.0 8001 --admin-insecure-mode --auto-accept-requests --auto-ping-connection --auto-respond-credential-proposal --auto-respond-credential-offer --auto-respond-credential-request --auto-store-credential --auto-respond-presentation-proposal --auto-respond-presentation-request --auto-verify-presentation --genesis-url https://indy.igrant.io/genesis --wallet-type indy --wallet-name Auditor --log-level debug --wallet-key qwerty123 --plugin 'mydata_did'"
container_name: auditor.localhost
networks:
- aries-playground-nw
volumes:
- auditor-data:/home/indy/.indy_client
networks:
aries-playground-nw:
external: true

volumes:
travelcompany-data:
individual-data:
didregistry-data:
auditor-data:
testcenter-data:
46 changes: 46 additions & 0 deletions automated-data-agreement/docker/Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM georgejpadayatti/acapy:1.0

USER root

RUN apt-get update -y && \
apt-get install -y --no-install-recommends \
automake \
bison \
build-essential \
ca-certificates \
make \
cmake \
curl \
flex \
git \
libbz2-dev \
libffi-dev \
libgmp-dev \
liblzma-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-gplv2-dev \
libsecp256k1-dev \
libsqlite3-dev \
libssl-dev \
libtool \
libzmq3-dev \
pkg-config \
python3-wheel \
python3-nacl \
zlib1g-dev && \
rm -rf /var/lib/apt/lists/*

RUN curl -o libsodium-1.0.18.tar.gz https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz
RUN tar xzvf libsodium-1.0.18.tar.gz
RUN cd libsodium-1.0.18 && ./configure && make -j && make -j check && make install
RUN SODIUM_INSTALL=system pip3 install pynacl~=1.3.0

RUN pip install wheel

RUN SODIUM_INSTALL=system pip install --no-cache-dir aries-cloudagent==0.5.6
RUN SODIUM_INSTALL=system git clone https://github.com/decentralised-dataexchange/acapy-mydata-did-protocol.git && \
cd acapy-mydata-did-protocol && \
pip install --no-cache-dir .

ENTRYPOINT ["/bin/bash", "-c", "aca-py \"$@\"", "--"]
9 changes: 9 additions & 0 deletions automated-data-agreement/docker/Dockerfile.x86
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM bcgovimages/von-image:py36-1.15-0

USER root

RUN pip install --no-cache-dir aries-cloudagent==0.5.6

RUN pip install --no-cache-dir git+https://github.com/decentralised-dataexchange/acapy-mydata-did-protocol.git@master

ENTRYPOINT ["/bin/bash", "-c", "aca-py \"$@\"", "--"]
Binary file added automated-data-agreement/indy-screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit c1c2f57

Please sign in to comment.