這裏有個很形象的比喻:算法
一個團隊必定會有一個老大和普通成員。對於 raft 算法,共識過程就是:只要老大還沒掛,老大說什麼,咱們(團隊普通成員)就作什麼,堅定執行。那何時從新老大呢?只有當老大掛了才重選老大,否則生是老大的人,死是老大的鬼。
對於 pbft 算法,共識過程就是:老大向我發送命令時,當我認爲老大的命令是有問題時,我會拒絕執行。就算我認爲老大的命令是對的,我還會問下團隊的其它成員老大的命令是不是對的,只有大多數人 (2f+1) 都認爲老大的命令是對的時候,我纔會去執行命令。那何時重選老大呢?老大掛了固然要重選,若是大多數人都認爲老大不稱職或者有問題時,咱們也會從新選擇老大。
對於 老大(leader)選舉這塊, raft 算法本質是誰快誰當選,而 pbft 算法是按編號依次輪流作主節點。