關於fisco bcos pbft共識演演算法核心理論及實踐

2020-09-22 18:00:18

2f+1=正常節點

3f + 1=總節點

PBFT演演算法的核心理論是n>=3f+1

n是系統中的總節點數,f是允許出現故障的節點數。換句話說,如果這個系統允許出現f個故障,那麼這個系統必須包括n個節點,才能解決故障。

PBFT容忍無效或者惡意節點數:f,為了保障整個系統可以正常運轉,需要有2f+1個正常節點,系統的總節點數為:|R| = 3f + 1。也就是說,PBFT演演算法可以容忍小於1/3個無效或者惡意節點,

只要有不少於(2*f+1)個非惡意節點正常工作,該系統就能達成一致性,如:7個節點的系統中允許2個節點出現拜占庭錯誤。

注: n是節點的總數 f是出問題的節點數

 

如下圖所示:

我們通過殺掉節點的程序來模擬問題節點

0

總共7個節點出現一個問題節點

0

交易正常

0

總共7個節點出現2個問題節點

0

交易正常

0

總共7個節點出現3個問題節點(殺了3個節點,結果全部顯示異常,應該是webase的bug)

0

交易出現問題

0