共识协议(6)PBFT详细步骤
生活随笔
收集整理的這篇文章主要介紹了
共识协议(6)PBFT详细步骤
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
step1. request階段
client發送消息給主導者:sign(REQUEST, o, t, c)
REQUEST= 消息內容m+ 消息摘要d(m)
o: 請求的具體操作
t: 請求時客戶端追加的時間戳
c:客戶端標識。
step2. pre-prepare階段
主導者發送消息給其他副本節點: sign(<PRE-PREPARE, v, n, d>, m)
v:視圖編號
n:預準備消息序號(要在某一個范圍區間內的[h, H])
step3.
其他節點收到消息后,若同意,則發送prepared消息: sign(<PRE-PREPARE, v, n, d>, m),記錄PRE-PREPARE和PREPARE消息到log,用于View Change恢復請求。
副本節點i收到主導者節點的PRE-PREPARE消息,需要進行校驗:
- 消息簽名。
- 是否已經收到一條在同一v下并且編號也是n,但是簽名不同的PRE-PREPARE信息。
- d與m的摘要是否一致。
- n是否在區間[h, H]內。
step4.
進入prepared狀態的節點,如果收到了2f+1個驗證通過的PREPARE消息,則向其他節點發送commit消息:sign(COMMIT, v, n, d, i)消息。(記錄COMMIT消息到日志,用于View Change恢復請求。記錄PREPARE消息到log)
step5. REPLY
副本節點i收到了2f+1個驗證通過的COMMIT消息,運行客戶端的請求操作o,并返回<REPLY, v, t, c, i, r>
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的共识协议(6)PBFT详细步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 共识协议(3)比特币之POW
- 下一篇: 共识协议(8)NPOS提名权益证明