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