This is a toy implementation of the architecture proposed by Geoff Goodell and Tomaso Aste in this paper.
A brief overview of the file structure of this project.
.
├── ap
├── tests
├── tests_app_pytest.py
├── app.py
├── Dockerfile
├── cp
├── tests
├── tests_app_pytest.py
├── app.py
├── Dockerfile
├── user
├── tests
├── tests_app_pytest.py
├── app.py
├── Dockerfile
├── service
├── tests
├── tests_app_pytest.py
├── app.py
├── Dockerfile
├── .env
├── .gitignore
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── README.md
Use git to clone the project.
git clone https://github.com/HarryThomas17/A-Decentralised-Digital-Identity-Architecture.git
The project makes use of Docker, Docker Compose, and Hyperledger Composer, so if you do not already have them you can install them here:
- Install Docker
- Install Docker Compose
- Install Hyperledger Composer CLI (remove @19 from npm commands)
The project makes use of a base image with all dependencies installed on it. This is done to save time in subsequent builds. This base image can be built manually:
- Ensure you are in the project's root directory.
- Run the following
docker build -t code_latest:latest .
This builds the image from the dockerfile located in the project root.
2 shell scripts are included to start and stop the project (bring up Hyperledger Fabric and Flask containers). To start the project, run ./start.sh
. To stop the project, run ./stop.sh
. After start.sh
completes successfully, you can bring up and down the Flask containers only with docker-compose down
and docker-compose up --build -d
.
The default configuration for the project is to have docker compose deploy all the containers locally on localhost/0.0.0.0
. Additionally the endpoints for the specific entities are as follows:
Entity | Directory Name | Port |
---|---|---|
User | ap | 5000 |
Authentication Provider | ap | 5001 |
Cerfication Provider | cp | 5002 |
Service | ap | 5003 |
Ledger | ledger | 8080 |
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.