JBP - Java Byzantine Paxos
JBP aims to provide a complete, modular and clear implementation of the
Byzantine Paxos agreement protocol in Java programming language.
Since there are several variants of this algorithm, we choose to implement
Paxos at War, by
for consensus and extended it to for total order multicast adding only one
communication step and maintaining the quadratic message complexity using
the usual technique proposed by
Leslie Lamport in the
Classical Paxos algorithm and later extended by Castro and Liskov
in the BFT system.
JBP was developed because there was no implementation of a fast Byzantine
fault-tolerant Total order multicast protocol in Java.
Moreover, JBP implementation follow the same line of the BFT system
(implemented in C), but we want to separate state management (basically,
checkpoints) from the core total order multicast algorithm.
JBP was used in the Byzantine fault-tolerant replication layer of DepSpace.
Mar 2009: Version 0.3 of JBP and Communication Library
Dec 2008: Version 0.2 of JBP and Communication Library
JBP is developed by Eduardo Alchieri (alchieri at das dot ufsc dot br)
with some help from Alysson Neves Bessani (bessani at di dot fc dot ul dot pt)
and Paulo Sousa (pjsousa at di dot fc dot ul dot pt).
Software and Documentation:
JBP sources (version 0.3)
(The communication library sources can be found
Currently we don't have much documentation for this project, however, if you want to use JBP to implement a BFT service
please take a look on the package br.ufsc.das.tom.demo, and more specifically at the CounterClient and CounterServer
classes, which uses the ServiceProxy and ServiceReplica classes to implement a BFT client and server for a dummy
counter service, respectivelly.
There is a readme file in the project package that shows how to run this
demonstration and gives some more information.
Want to use or contribute?
If you want to use or contribute to this project feel free to send an
email to Alysson (bessani at di dot fc dot ul dot pt).
Byzantine Paxos Literature:
Paxos at War
The Byzantine Paxos variant used as basis for JBP.
Practical Byzantine Fault Tolerance and Proactive Recovery
The original Byzantine Paxos protocol as defined and implemented for
state machine replication.
Fast Byzantine Consensus
This paper defines the Parametrized Fast Paxos and proves its optimality.
The first Byzantine Paxos implementation. The main difference between
BFT and JBP is that the former is implemented in C language and
provides a complete implementation of state machine replication
(including checkpoints) and proactive recovery.
Back to JITT
Back to Navigators
Updated in 02/03/2009