{"id":17034446,"url":"https://github.com/luckydonald/pbft","last_synced_at":"2025-04-12T12:32:00.694Z","repository":{"id":41551060,"uuid":"69944651","full_name":"luckydonald/pbft","owner":"luckydonald","description":"Implementation of the Practical Byzantine Fault Tolerant Algorithm (pbft)","archived":false,"fork":false,"pushed_at":"2021-12-29T21:01:55.000Z","size":2387,"stargazers_count":136,"open_issues_count":9,"forks_count":45,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T07:11:31.304Z","etag":null,"topics":["api","beautiful","byzantine-fault-tolerance","coverage-status","docker","java","java-node","pbft","python","web-gui"],"latest_commit_sha":null,"homepage":"https://github.com/luckydonald/pbft","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luckydonald.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-04T07:58:22.000Z","updated_at":"2025-03-19T07:37:19.000Z","dependencies_parsed_at":"2022-07-08T08:03:33.342Z","dependency_job_id":null,"html_url":"https://github.com/luckydonald/pbft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luckydonald%2Fpbft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luckydonald%2Fpbft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luckydonald%2Fpbft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luckydonald%2Fpbft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luckydonald","download_url":"https://codeload.github.com/luckydonald/pbft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248566568,"owners_count":21125688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","beautiful","byzantine-fault-tolerance","coverage-status","docker","java","java-node","pbft","python","web-gui"],"created_at":"2024-10-14T08:43:40.918Z","updated_at":"2025-04-12T12:31:58.473Z","avatar_url":"https://github.com/luckydonald.png","language":"HTML","readme":"# pbft\nImplementation of the ~~Peters~~ Practical Byzantine Fault Tolerant Algorithm    \n\n\n## Web GUI\n\nThis project supports a web interface to `b e a u t i f u l l y` represent what's going on.\n\nYou'll get a overview over all the values the nodes measured.\n\n![image](https://user-images.githubusercontent.com/2737108/33264568-63590e78-d36e-11e7-91e3-d0b2545546ae.png)\n\nYou can also get insight which messages get send by which node to which node.\n\n![image](https://user-images.githubusercontent.com/2737108/33264484-06f95a3e-d36e-11e7-9128-e3a2de4c37d5.png)\n\n\n## Code status\n\n\u003e Please note, the project for which this was made for has reached an end,\n\u003e so the code will not be actively maintained any longer.\n\u003e However, pull requests with fixes and improvements will be merged.\n\u003e Have a look into the bugtracker, if someone else had a similar issue, and already made it work.\n\n#### Java PBFT Node \n[![Build Status](https://travis-ci.org/luckydonald/PBFT-JAVA.svg?branch=master)](https://travis-ci.org/luckydonald/PBFT-JAVA) [![Coverage Status](https://coveralls.io/repos/github/luckydonald/PBFT-JAVA/badge.svg?branch=master)](https://coveralls.io/github/luckydonald/PBFT-JAVA?branch=master)\n\n#### API Server\n[![Build Status](https://travis-ci.org/luckydonald/pbft.svg?branch=master)](https://travis-ci.org/luckydonald/pbft) [![Coverage Status](https://coveralls.io/repos/github/luckydonald/pbft/badge.svg?branch=master)](https://coveralls.io/github/luckydonald/pbft?branch=master)\n\n\n## Get the Code\n```bash\ngit clone --recursive https://github.com/luckydonald/pbft.git\n```\nIf you forget `--recursive`, the `phppgadmin` container won't be available.\n\n## Starting everything\nYou need Docker installed.\n\n\n```shell\n$ docker-compose build\n```\n \nBecause some services need longer to start it is best to start them in the following order:\n \n1. Database and Database browser\n    ```shell\n    $ docker-compose up -d postgres postgres_browser\n    ```\n\n2. The API\n    ```shell\n    $ docker-compose up -d api \n    ```\n\n3. Start the web GUI\n    ```shell\n    $ docker-compose up -d web\n    ```\n\n4. Scale the nodes to use e.g. `4` instances\n  - a) Older compose syntax\n      ```shell\n      $ docker-compose scale node=4\n      ```\n  - b) Newer compose syntax\n      ```shell\n      docker-compose up --scale node=4\n      ```\n\n5. Start the nodes\n    ```shell\n    $ docker-compose up -d node\n    ```\n    \n6. Stop \u0026 reset everything\n    ```shell\n    $ docker-compose down\n    ```\n    - [Remove unused containers](http://stackoverflow.com/a/32723127):\n        ```shell\n        $ docker rmi $(docker images --filter \"dangling=true\" -q --no-trunc)\n        ```\n\n## Standart Ports and URLs\nAssuming your docker is publishing it's ports on `localhost`.\n \n| Server   | URL                               |\n| -------- | --------------------------------- |\n| API      | http://localhost:80/              |\n| Database | http://localhost:8080/phppgadmin/ |\n| Web GUI  | http://localhost:8000/src/        |\n\n\n## Links\nThe whole project: https://github.com/luckydonald/pbft\n\nThe Java node implementation: https://github.com/luckydonald/PBFT-JAVA\n\nDB Struktur (for debugging and powering the web gui): https://editor.ponyorm.com/user/luckydonald/pbft\n![pbft database structure](https://user-images.githubusercontent.com/2737108/33264396-a8310146-d36d-11e7-8ec9-8485d5d625b5.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckydonald%2Fpbft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluckydonald%2Fpbft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckydonald%2Fpbft/lists"}