Implementation of the Peters Practical Byzantine Fault Tolerant Algorithm
This project supports a web interface to b e a u t i f u l l y
represent what's going on.
You'll get a overview over all the values the nodes measured.
You can also get insight which messages get send by which node to which node.
git clone --recursive https://github.com/luckydonald/pbft.git
If you forget --recursive
, the phppgadmin
container won't be available.
You need Docker installed.
$ docker-compose build
Because some services need longer to start it is best to start them in the following order:
-
Database and Database browser
$ docker-compose up -d postgres postgres_browser
-
The API
$ docker-compose up -d api
-
Start the web GUI
$ docker-compose up -d web
-
Scale the nodes to use 4 instances
$ docker-compose scale node=4
-
Start the nodes
$ docker-compose up -d node
-
Stop & reset everything
$ docker-compose down
- Remove unused containers:
$ docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
- Remove unused containers:
Assuming your docker is publishing it's ports on localhost
.
Server | URL |
---|---|
API | http://localhost:80/ |
Database | http://localhost:8080/phppgadmin/ |
Web GUI | http://localhost:8000/src/ |
The whole project: https://github.com/luckydonald/pbft
The Java node implementation: https://github.com/luckydonald/PBFT-JAVA
DB Struktur (for debugging and powering the web gui): https://editor.ponyorm.com/user/luckydonald/pbft