PBFT, PoET, Raft
The Sawtooth consensus API supports a wide variety of consensus algorithms on a network. Sawtooth currently includes consensus engines for these algorithms:
Sawtooth PBFT (Practical Byzantine Fault Tolerance) is a voting-based consensus algorithm that provides Byzantine fault tolerance with finality. Sawtooth PBFT extends the original PBFT algorithm with features such as dynamic network membership, regular view changes, and a block catch-up procedure. A Sawtooth network with PBFT consensus requires four or more nodes.
PoET (Proof of Elapsed Time) is a Nakamoto-style consensus algorithm that is designed to be a production-grade protocol capable of supporting large network populations. PoET relies on secure instruction execution to achieve the scaling benefits of a Nakamoto-style consensus algorithm without the power consumption drawbacks of the Proof of Work algorithm. A Sawtooth network with PoET consensus requires at least three nodes.
Sawtooth includes two versions of PoET consensus:
PoET-SGX relies on a Trusted Execution Environment (TEE), such as Intel® Software Guard Extensions (SGX), to implement a leader-election lottery system. PoET-SGX is sometimes called “PoET/BFT” because it is Byzantine fault tolerant.
PoET simulator provides PoET-style consensus on any type of hardware, including a virtualized cloud environment. PoET simulator is also called “PoET/CFT” because it is crash fault tolerant, not Byzantine fault tolerant.
Sawtooth Raft is a leader-based consensus algorithm that provides crash fault tolerance for a small network with restricted membership.
Devmode (short for “developer mode”) is a simplified random-leader algorithm that is useful for developing and testing a transaction processor. Devmode is not recommended for multi-node networks and should not be used for production.
Introduction — Sawtooth v1.2.6 documentation