/qbft

PoC implementation of QBFT consensus

Primary LanguageGo

QBFT

This project is deprecated, it has been ported into Obol's Charon distributed validator client and improved upon.

Package qbft is a PoC implementation of the "The Istanbul BFT Consensus Algorithm" by Henrique Moniz as referenced by the QBFT spec.

Features

  • Simple API, just a single function: qbft.Run.
  • Consensus on arbitrary data.
  • Transport abstracted and not provided.
  • Decoupled from process authentication and message signing (not provided).
  • No dependencies.
  • Core algorithm under 500 lines of code.

TODO

  • Double check future/past round messages.
  • Double check if rules need to trigger on round change.
  • Add Byzantium tests.