Practical overview
When it fits
Consider Hbbft when a Go application needs a Honey Badger BFT engine to agree on transaction batches and can provide the node configuration, transaction interface and transport needed by its network.
Who it is for
- Go developers integrating asynchronous transaction consensus into distributed applications
- Protocol developers building application-specific transaction pipelines or experimenting with multi-node consensus
Documented uses
- Configure a consensus engine with participating node identifiers and a preferred batch size.
- Submit application-defined transactions that implement Hash() []byte.
- Propose transaction batches and retrieve committed transactions by epoch.
- Use the included transport or connect a custom transport.
Requirements & limits
- Transactions must implement Hash() []byte.
- The engine configuration includes the node count, local node identifier, participant identifiers and preferred batch size.
- Hbbft supplies a transport layer, but the README also allows applications to use a custom one.
- The README lists threshold encryption and configurable transaction serialization as TODOs.
- The repository specifies the MIT license.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up Hbbft and prepare a consensus engine
Configure the HoneyBadger engine and prepare it to accept application transactions.
Before you start
- A Go application using the Hbbft package
- A transaction type implementing Hash() []byte
- Node count, this node's identifier, participant identifiers and a preferred batch size
Steps
Install the repository dependencies with make deps.
Create an Hbbft configuration with the network and batch settings, then instantiate the HoneyBadger engine.
Implement the transaction interface with Hash() []byte and add transaction values to the engine.
Expected outcome
An instantiated engine configured for the participating nodes and ready to receive transactions.
Guide limitations
- These steps cover setup and adding transactions; they do not establish that a network has been run.
- The README lists configurable transaction serialization as a TODO.
Start the engine and read committed batches
Start transaction batch proposals and retrieve committed transactions by epoch.
Before you start
- A configured HoneyBadger engine with transactions added
- Participating node identifiers and a transport layer, provided by Hbbft or implemented by the application
Steps
Start the engine with its Start method.
Read committed transactions by epoch through Outputs.
Consume the returned transactions; the README says outputs reset once consumed.
Expected outcome
Access to committed transaction batches organized by epoch for the application to process.
Guide limitations
- The application determines when to access committed transactions.
- The guide does not specify deployment or network operation procedures.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- anthdm/hbbft · Official homepage title · retained in its source language

