Malachite is a Byzantine Fault-Tolerant (BFT) consensus engine that helps distributed systems and applications reach agreement on shared data, even when some participants are faulty or malicious.
It implements the Tendermint consensus algorithm, allowing multiple nodes to propose, vote, and decide on values (e.g., blocks) in a robust and efficient way.
The project is designed with modularity and flexibility in mind, using abstractions like a Context trait for application-specific types, an effect system to interact asynchronously with the environment, and an actor-based architecture for scalability and fault-tolerance.
Malachite also supports various modes of propagating proposed data to optimize performance and ensures safety and recovery through write-ahead logging and synchronization protocols.
Source Repository: None
flowchart TD
A0["Core Tendermint Consensus Algorithm"]
A1["Consensus Core Library (Driver, VoteKeeper, Round State Machine)"]
A2["Context Trait and Application Abstractions"]
A3["Consensus Engine and Effect System"]
A4["Proposal Value Propagation Modes"]
A5["Application State and Proposal Streaming"]
A6["Networking Layer and Gossip Protocol"]
A7["Write-Ahead Log (WAL) and Crash Recovery"]
A8["Model-Based Testing and Formal Specifications"]
A9["Actor-based Node Architecture"]
A0 -- "Implements core logic" --> A1
A1 -- "Uses types from" --> A2
A1 -- "Yields effects to" --> A3
A3 -- "Uses context for signing an..." --> A2
A3 -- "Sends and receives messages..." --> A6
A3 -- "Logs messages to" --> A7
A3 -- "Interacts with application ..." --> A5
A5 -- "Handles proposals according to" --> A4
A6 -- "Runs as network actor in" --> A9
A7 -- "Implemented as WAL actor in" --> A9
A9 -- "Hosts consensus actor managing" --> A3
A8 -- "Specifies and verifies" --> A0
A8 -- "Validates implementation of" --> A1
A9 -- "Supervises WAL actor" --> A7
A9 -- "Supervises Gossip actor" --> A6
A9 -- "Manages application state a..." --> A5
A4 -- "Defines message formats for" --> A6
A2 -- "Supplies data types for" --> A5
A6 -- "Persist network events in" --> A7
- Core Tendermint Consensus Algorithm
- Model-Based Testing and Formal Specifications
- Consensus Core Library (Driver, VoteKeeper, Round State Machine)
- Context Trait and Application Abstractions
- Application State and Proposal Streaming
- Proposal Value Propagation Modes
- Consensus Engine and Effect System
- Networking Layer and Gossip Protocol
- Write-Ahead Log (WAL) and Crash Recovery
- Actor-based Node Architecture
Generated by AI Codebase Knowledge Builder