/pbft

Implementation of the Practical Byzantine Fault Tolerant Algorithm (pbft)

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

pbft

Implementation of the Peters Practical Byzantine Fault Tolerant Algorithm    

Web GUI

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.

image

You can also get insight which messages get send by which node to which node.

image

Code status

Java PBFT Node

Build Status Coverage Status Codacy Badge

API Server

Build Status Coverage Status Codacy Badge

Get the Code

git clone --recursive https://github.com/luckydonald/pbft.git

If you forget --recursive, the phppgadmin container won't be available.

Starting everything

You need Docker installed.

$ docker-compose build

Because some services need longer to start it is best to start them in the following order:

  1. Database and Database browser

    $ docker-compose up -d postgres postgres_browser
  2. The API

    $ docker-compose up -d api 
  3. Start the web GUI

    $ docker-compose up -d web
  4. Scale the nodes to use 4 instances

    $ docker-compose scale node=4
  5. Start the nodes

    $ docker-compose up -d node
  6. Stop & reset everything

    $ docker-compose down

Standart Ports and URLs

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/

Links

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 pbft database structure