Hyperledger consensus protocol I'm soo deep inside the consensus protocols like PoW, PoS, PoA or other variants used on permissioned/private blockchains such as JPMorgan's Quorum (Based on Raft), Istambul etc..

But I've not entered yet on the Hyperledger consensus protocols and it's implementations specifications and differences.

So my questions are:


What is the consensus protocol used on Hyperledger? It's inherited from any of the mentioned above? Which are it's main properties that make the difference from another consensus protocols?
Which are the main differences between it's variants (Fabric, Iroha, Sawtooth, and Indy)?


Please, it'll be fantastic if useful documentation links/articles/lectures were added with the answers.

Thanks.
First, lets get the terminology straight. Hyperledger is composed of 5 different blockchain technologies, each with it's own consensus algorithm.

Here are two supported by Hyperledger Sawtooth blockchains:


PoET Proof of Elapsed Time (optional Nakamoto-style consensus algorithm used for Sawtooth). PoET with SGX has BFT. PoET Simulator has CFT. Not CPU-intensive as with PoW-style algorithms, although it still can fork and have stale blocks . See PoET specification at https://sawtooth.hyperledger.org/docs/core/releases/latest/architecture/poet.html
RAFT Consensus algorithm that elects a leader for a term of arbitrary time. Leader replaced if it times-out. Raft is faster than PoET, but is not BFT (Raft is CFT). Also Raft does not fork.
Hyperledger Sawtooth has the advantage of having Unpluggable Consensus. An algorithm can be changed without reinitializing the blockchain or even restarting the software.


Here are some other consensus algorithms:


PoW Proof of Work. Completing work (CPU-intensive Nakamoto-style consensus algorithm). Usually used in permissionless blockchains
PoS Proof of Stake. Nakamoto-style consensus algorithm based on the most wealth or age (stake)
PBFT Practical Byzantine Fault Tolerance. A "classical" consensus algorithm that uses a state machine. Uses leader and block election. PBFT is a three-phase, network-intensive algorithm (n^2 messages), so is not scalable to large networks