實用的拜占庭容錯系統
原始的拜占庭容錯系統由於需要展示其理論上的可行性而缺乏實用性。另外,還需要額外的時鐘同步機制支援,演算法的複雜度也是隨節點增加而指數級增加。實用拜占庭容錯系統(Practical Byzantine Fault Tolerance,PBFT),降低了拜占庭協議的執行復雜度,從指數級別降低到多項式級別(Polynomial),使拜占庭協議在分散式系統中應用成為可能(檢視什麼是拜占庭將軍問題)。 PBFT是一類狀態機拜占庭系統,要求共同維護一個狀態,所有節點採取的行動一致。為此,需要執行三類基本協議,包括一致性協議、檢查點協議和檢視更換協議。我們主要關注支援系統日常執行的一致性協議。 一致性協議要求來自客戶端的請求在每個服務節點上都按照一個確定的順序執行。這個協議把伺服器節點分為兩類:主節點和從節點,其中主節點僅一個。在協議中,主節點負責將客戶端的請求排序;從節點按照主節點提供的順序執行請求。每個伺服器節點在同樣的配置資訊下工作,該配置資訊被稱為檢視,主節點更換,檢視也隨之變化。 一致性協議至少包含若干個階段:請求(request)、序號分配(pre-prepare)和響應(reply)。根據協議設計的不同,可能包含相互互動(prepare),序號確認(commit)等階段。 PBFT系統通常假設故障節點數為m個,而整個服務節點數為3m+1個。每一個客戶端的請求需要經過5個階段,通過採用兩次兩兩互動的方式在伺服器達成一致之後再執行客戶端的請求。由於客戶端不能從伺服器端獲得任何伺服器執行狀態的資訊,PBFT中主節點是否發生錯誤只能由伺服器監測。如果伺服器在一段時間內都不能完成客戶端的請求,則會觸發檢視更換協議。 一個簡化的PBFT的協議通訊模式,其中C為客戶端,N0 ~N3 表示服務節點,特別的,N0 為主節點,N3 為故障節點。整個協議的基本過程如下。 1)客戶端傳送請求,啟用主節點的服務操作。 2)當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求。 3)客戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果。 PBFT在很多場景都有應用,在區塊鏈場景中,一般適合於對強一致性有要求的私有鏈和聯盟鏈場景。例如,在IBM主導的區塊鏈超級賬本專案中,PBFT是一個可選的共識協議。 除了PBFT之外,超級賬本專案還引入了基於PBFT的自用共識協議,它的目的是希望在PBFT基礎之上能夠對節點的輸出也做好共識,這是因為,超級賬本專案的一個重要功能是提供區塊鏈之上的智慧合約,即在區塊鏈上執行的一段程式碼,因此它會導致區塊鏈賬本上最終狀態的不確定,為此這個自有共識協議會在PBFT實現的基礎之上,引入程式碼執行結果簽名進行驗證。
相關文章
- 機器學習 拜占庭容錯方法: Bulyan機器學習
- 區塊鏈時代的拜占庭容錯:Tendermint(二)區塊鏈
- NEO共識協議:授權拜占庭容錯機制如何工作協議
- ④SpringCloud 實戰:引入Hystrix元件,分散式系統容錯SpringGCCloud元件分散式
- 大廠是怎麼做支付系統的流程容錯的?
- 漫談分散式系統、拜占庭將軍問題與區塊鏈分散式區塊鏈
- 從埃航空難報告看AI系統的容錯性AI
- Goldengate容災系統實施方案Go
- struts實現的網站定製,內容管理系統,歡迎大家來試用!!!!!!網站
- vivo 推送系統的容災建設與實踐
- Cloudflare分散式系統中的拜占庭式失敗與Raft選舉問題 - cloudflareCloud分散式Raft
- 幾款實用的容錯、備份與快照工具介紹WP
- 億級流量系統架構之如何設計高容錯分散式計算系統架構分散式
- 實現基於內容的電影推薦系統—程式碼實現
- 實戰天翼云云主機系統盤擴容
- twothink內容管理系統
- cltphp內容管理系統PHP
- HuiCMS內容管理系統UI
- CMS內容管理系統
- CRM系統中實用的三個功能
- 基於thincmf的內容管理系統
- MES系統規劃的主要內容
- Vue內容管理系統的搭建(三)Vue
- 個人開發的內容管理系統
- 拜占庭協議和測謊問題的量子協議的實驗證明協議
- Windows系統錯誤程式碼-----故障檢測用Windows
- Java實用系統開發指南Java
- 實用圖書管理系統1.1
- CLTPHP內容管理系統4.3PHP
- 易貝內容管理系統
- aix檔案系統擴容AI
- 圖解內容管理系統圖解
- 系統相關內容索引索引
- 兄弟,用大白話給你講小白都能看懂的分散式系統容錯架構【石杉的架構筆記】分散式架構筆記
- 兩款實用的BUG測試管理系統
- Java實用系統開發指南的疑問Java
- Java 中使用 Failsafe 實現容錯JavaAI
- 億級流量系統架構之如何設計高容錯分散式計算系統【石杉的架構筆記】架構分散式筆記