Distributed Evidence Network
Scenario
-
A ModelChecking organization represents all ETB nodes that can execute model checking tools.
-
A StaticAnalysis organization represents all ETB nodes that can execute static analysis tools.
-
A Coordinator organization can register service providers on the network.
-
A User organization represents an ETB node which wants to execute a service.
-
The coordinator registers the available services from each service organization.
-
A user wants to execute an infer tool.
-
The network emits an event, searching for available ETB nodes that can execute the requested service.
-
An ETB node responds to the event and executes the service.
-
Upon successful execution of the service, the ETB node updates the network with the result.
Prerequisites
Download Binaries and Docker Images
The installation instructions will utilize scripts/bootstrap.sh
(available in the root folder)
script to download all of the requisite Hyperledger Fabric binaries and docker
images, and tag the images with the 'latest' tag. Optionally,
specify a version for fabric, fabric-ca and thirdparty images. If versions
are not passed, the latest available versions will be downloaded.
The script will also clone fabric-samples repository using the version tag that
is aligned with the Fabric version.
You can also download the script and execute locally:
# Fetch bootstrap.sh from fabric repository using
curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./scripts/bootstrap.sh
# Change file mode to executable
chmod +x ./scripts/bootstrap.sh
# Download binaries and docker images
./scripts/bootstrap.sh [version] [ca version] [thirdparty_version]
Getting started
First, navigate to the evidentia-app
folder.
To bring the network up, run:
./den.sh -u
If you want to monitor the logs from all the running containers, run the following script:
./monitorDocker.sh net_byfn
To start Hyperledger Explorer alongside the network, run:
./den.sh -u -e
Then, launch the URL http(s)://localhost:8090 on a browser and login as user: admin_mc
with password: adminpw
.
Configurations for the explorer can be found at the evidentia-app/den.sh
file.
To bring the network down and remove all the containers, run:
./den.sh -d
or:
./stopFabric.sh
Add new org
To add a new organization into the network, navigate to the evidentia-app
folder and run:
./extendFabric.sh
1. Enroll admin and register users
Navigate to evidentia-app/javascript
folder in order to enroll the admin and register users.
The scrips for the enrollment and registration can be found under the folders enroll
and register
.
- To enroll all admins (4 organizations), run:
./enrollAllAdmins.sh
- To register all users (4 organizations), run:
./registerAllUsers.sh
After executing successfully the above scripts, the wallet
directory should have the following structure:
├── admin_coord/
├── admin_mc/
├── admin_clientUser/
├── admin_sa/
├── coord/
├── mc/
├── sa/
└── user/
Built With
-
Hyperledger Fabric v1.4 - The Blockchain Platform
-
NodeJS - The JavaScript runtime
-
Docker - The container platform
Authors
- Anastasios Kalogeropoulos (fortiss GmbH)
License
This project is licensed under the the Apache License, Version 2.0 (Apache-2.0) - see the LICENSE file for more details.