Skip to content

HoneyBadgerBFT, the first practical asynchronous BFT protocol without timing assuption

License

Notifications You must be signed in to change notification settings

DE-labtory/cleisthenes

Repository files navigation

Cleisthenes License Language Coverage Status Build Status

Cleisthenes is HBBFT(Honey Badger Byzantine Fault Tolerance) consensus library adaptable to any application.

Documentation

More detail of each component is documented here

  • HoneyBadgerBFT Overview [KO / EN]
  • Reliable Broadcast (RBC) [KO / EN]
  • Byzantine Binary Agreement (BBA) [KO / EN]
  • Threshold Encryption (TE) [KO / EN]

Architecture

Logical View

HoneyBadger (HB) receives transaction from Application and queuing them into its own buffer, HB also manages consensus epoch which helps to distinguish every consensus. Everytime new epoch starts, HB creates batch with its own transactions, then sends it to the ACS to consensus this batch and other nodes' batch.

Asynchronous Common Set (ACS) is main API of Honey Badger BFT where agreement takes place. ACS uses RBC and BBA to consensus its own node batch as well as other nodes' batch who joined to same network.

Reliable Broadcast (RBC) distribute single node's batch to the rest of the nodes in the network. The result of RBC is set of batches of all nodes in the network. RBC guarantees that every node gets the same output, event if the sender or other nodes try to sending different information to different nodes.

Byzantine Binary Agreement (BBA) determines whether or not a batch is included in the set of batches, based on a composite of votes from all nodes in the network. BBA is completed once more than 2/3 of the participating nodes agree on whether to include the batch in the set of batches.

Module View

Contribution

Contribution Guide CONTRIBUTION

CLA Hub

To get started, sign the Contributor License Agreement.

About

HoneyBadgerBFT, the first practical asynchronous BFT protocol without timing assuption

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published