OpenViSTAI · Agents · Blockchain · Crypto
Menu
Protocols

Hbbft

Hbbft is an open-source Go library that implements Honey Badger Byzantine fault-tolerant consensus for agreeing on batches of transactions across participating nodes. It includes reliable broadcast, binary Byzantine agreement and asynchronous common subset, with a top-level engine and a transport layer that applications can replace.

Independent OpenViST project profile, based on linked sources.

Hbbft — OpenViST project profile in Protocols.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Install the repository dependencies with make deps.

  2. Create an Hbbft configuration with the network and batch settings, then instantiate the HoneyBadger engine.

  3. 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.
Source-based practical guide

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

  1. Start the engine with its Start method.

  2. Read committed transactions by epoch through Outputs.

  3. 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.
Evidence and transparency

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