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 hashingconsensus— The HotStuff-2 state machine and enginestorage— Persistent block/state storage (vsdb)network— P2P networking via litep2pmempool— Transaction buffering and deduplicationabci— 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;