Raft is a distributed consensus mechanism that relies on Paxos. The Raft protocol works with a node failure model where each error (e.g., missing messages, network partitions, or hardware-only failure) is considered a node failure. Hence, it should run
n ≥ 2f+1where f is the maximum number of nodes that can fail and n is the total number of nodes. The Raft protocol first selects a leader among a set of nodes and then makes the leader fully responsible for receiving transaction requests and handling the copying of logs (i.e., blocks) on other nodes. Each node can be either a candidate, a follower, or a leader. The leader selection procedure is deterministic, so the protocol cannot run until the leader is selected by more than half of the nodes.