Overview of the Malachite Quint Specification
mainThe Malachite Quint Specification is a formal specification of the Malachite consensus engine. It is organized into three distinct layers to facilitate both implementation and verification:
- Functional Layer: Captures the core logic of the consensus engine, including consensus logic, the vote keeper, and the driver.
- State Machine Layer: Captures the execution of Tendermint consensus within a distributed setting. This layer is designed for both simulation and the generation of random traces used in model-based testing.
- Runs and Tests: Provides documentation for interesting consensus scenarios and serves as the testing suite for the functional layer.
Developers can use the domain-specific language (DSL) provided in the specification to compose complex runs and scenarios.