Reputation: 355
I'm trying to understand the smartBFT and RAFT consensus protocols in the Hyperledger Fabric. As you know, starting from Fabric v3.0, smartBFT can be used as an ordered type. I checked the official Hyperledger Fabric test network files and saw four orderers in their example. Is this some kind of obligation? If I want to see the performance of RAFT and smartBFT, should I also create four orderers for the RAFT-based network? This can be a silly question but I want to know the logic.
Upvotes: 0
Views: 19
Reputation: 1649
Raft requires a majority of nodes for consensus. Five nodes is often chosen since the network can then tolerate two nodes failing and still have a majority (of three) for consensus. Three nodes are required to tolerate a single node failure.
The Fabric BFT implementation can tolerate failure of up to (but not including) one third of the nodes. The network is unable to reach consensus if a third or more of the nodes fail. That means you need at least four nodes to be able to tolerate a node failure.
BFT can tolerate not only ordering node failures, but also malicious / compromised ordering nodes, which Raft cannot. This means that the two are not directly comparable based only on the number of failed nodes they can tolerate.
There is more detailed information in the Fabric ordering service documentation.
Upvotes: 0