天天看點

PBFT(拜占庭容錯)

PBFT(拜占庭容錯)

    基于拜占庭将軍問題,一緻性的確定主要分為這三個階段:預準備(pre-prepare)、準備(prepare)和确認(commit)。流程如下圖所示:

PBFT(拜占庭容錯)

其中C為發送請求端,0123為服務端,3為當機的服務端,具體步驟如下: 1. Request:請求端C發送請求到任意一節點,這裡是0 2. Pre-Prepare:服務端0收到C的請求後進行廣播,擴散至123 3. Prepare:123,收到後記錄并再次廣播,1->023,2->013,3因為當機無法廣播 4. Commit:0123節點在Prepare階段,若收到超過一定數量的相同請求,則進入Commit階段,廣播Commit請求 5.Reply:0123節點在Commit階段,若收到超過一定數量的相同請求,則對C進行回報

根據上述流程,在 N ≥ 3F + 1 的情況下一緻性是可能解決,N為總計算機數,F為有問題的計算機總數。

PBFT(拜占庭容錯)

    由此可以看出,拜占庭容錯能夠容納将近1/3的錯誤節點誤差,IBM建立的Hyperledger就是使用了該算法作為共識算法。

繼續閱讀