Skip to main content

Crate hotmint

Crate hotmint 

Source
Expand description

§Hotmint

A BFT consensus framework combining Tendermint’s engineering ergonomics with HotStuff-2’s two-chain commit protocol.

Hotmint is designed as a library crate (like tendermint-core) that developers embed to build their own consensus-driven applications.

§Crate Layout

  • types — Core data types: Block, Vote, QC, ValidatorSet, etc.
  • crypto — Cryptographic primitives: Ed25519 signing, Blake3 hashing
  • consensus — The HotStuff-2 state machine and engine
  • storage — Persistent block/state storage (vsdb)
  • network — P2P networking via litep2p
  • mempool — Transaction buffering and deduplication
  • abci — IPC proxy for out-of-process applications (Unix socket)
  • api — JSON-RPC API for external interaction

§Quick Start

use hotmint::prelude::*;
use hotmint::consensus::{ConsensusEngine, ConsensusState};
use hotmint::consensus::application::Application;

// Implement your application logic
struct MyApp;
impl Application for MyApp {
    fn on_commit(&self, block: &hotmint::types::Block, _ctx: &hotmint::types::BlockContext) -> ruc::Result<()> {
        println!("committed block at height {}", block.height);
        Ok(())
    }
}

Re-exports§

pub use hotmint_types as types;
pub use hotmint_crypto as crypto;
pub use hotmint_consensus as consensus;
pub use hotmint_storage as storage;
pub use hotmint_network as network;
pub use hotmint_mempool as mempool;
pub use hotmint_abci as abci;
pub use hotmint_api as api;
pub use hotmint_staking as staking;

Modules§

config
prelude
Prelude: commonly used types re-exported for convenience.