Consensus in Hyperledger Sawtooth is modular, meaning that the consensus algorithm can be easily modified. Hyperledger Sawtooth provides an abstract interface that supports both PBFT and Nakamoto-style algorithms. To implement a new consensus algorithm in Hyperledger Sawtooth, you must implement the distinct interface for: block publisher, block verifier, and fork resolution.
- Block publisher: Creates new candidate blocks to extend the chain.
- Block verifier: Verifies that candidate blocks are published in accordance with consensus rules.
- Fork resolver: Chooses which fork to use as the chain head for consensus algorithms that result in a fork.