Let's see how the Raft consensus protocol works at a level which will make us comfortable enough to build DApps. We won't go in depth into Raft as it's not necessary.
Raft is used in a semi-trusted network, and there is a desire for faster blocktimes (on the order of milliseconds instead of seconds) and single confirmation (the absence of regular forks).
Every node in the network keeps a list of all other nodes in the network regardless of whether they are up and running or not. A server in a Raft cluster is either a leader or a follower, and can be a candidate in the case of an election, which happens when the leader is unavailable. There can be only one leader at a time. The leader is responsible for creating and sending blocks to the followers. It regularly informs the followers of its existence by sending a heartbeat...