日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fabric学习笔记-PBFT算法

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fabric学习笔记-PBFT算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了實用拜占庭容錯算法(PBFT)。

Fabric在v0.6中采用的是PBFT算法,在v1.0.0-preview中是SBFT算法,在v1.0.0-release中文檔上說PBFT還在開發中,項目中目前還沒有實現(⊙o⊙)…但是萬變不離其宗都是對BFT算法的一些優化改進。

解決的問題

拜占庭算法主要解決了缺少可信的中央節點和可信任的通道的情況下,分布在網絡中的各個節點如何達成共識的問題,實用拜占庭算法是拜占庭算法的改進,主要改進了拜占庭算法效率不高的問題,將算法復雜度由指數級降低到多項式級,使得拜占庭容錯算法在實際系統應用中變得可行。

基本概念

  • 客戶端(client)負責發送請求。
  • 副本(replica)所有參與提供服務的節點。
  • 備份節點(backup)主節點外的所有節點。
  • 主節點(primary)從副本中選出提供主要服務的節點。
  • 視圖(view)主節點和副本之間編號的一次快照。

PBFT是一種狀態機副本復制算法,即服務作為確定有限狀態機進行建模,狀態機在分布式系統的不同節點進行副本復制。每個狀態機的副本都保存了服務的狀態,同時也實現了服務的操作。

在確定有限自動機中,每個狀態對每個可能輸入只有精確的一個轉移,在輸入順序一致,起始狀態一致的情況下輸出也必然一致。這也就對PBFT算法中的副本提出了兩個限定 :

  • 所有節點必須是確定性的。也就是說,在給定狀態和參數相同的情況下,操作執行的結果必須相同。
  • 所有節點必須從相同的狀態開始執行。
  • 在這兩個限定條件下,即使失效的副本節點存在,PBFT算法對所有非失效副本節點的請求執行總順序達成一致,從而保證安全性。

    將所有的副本組成的集合使用大寫字母R表示,使用0到|R|-1的整數表示每一個副本。為了描述方便,假設|R|=3f+1,這里f是有可能失效的副本的最大個數。盡管可以存在多于3f+1個副本,但是額外的副本除了降低性能之外不能提高可靠性。

    算法流程

  • 請求階段:客戶端向主節點發送請求。
  • 預準備階段:主節點分配一個序列號n給收到的請求,然后向所有備份節點廣播預準備消息,預準備消息的格式為<<PRE-PREPARE,v,n,d>,m>,這里v是視圖編號,m是客戶端發送的請求消息,d是請求消息m的摘要。
  • 準備階段:備份節點i接受了預準備消息<<PRE-PREPARE,v,n,d>,m>,則進入準備階段。在準備階段的同時,該節點向所有副本節點發送準備消息<PREPARE,v,n,d,i>,并且將預準備消息和準備消息寫入自己的消息日志
  • 確認階段:副本節點收到2f個從不同副本節點發來一致的預準備消息,一共2f+1個一致的預準備消息確認了消息的正確性,然后按照序號n依次執行請求。
  • 預準備階段和準備階段確保所有正常節點對同一個視圖中的請求序號達成一致。

    準備階段和確認階段確保了節點執行了大多數都認可的操作。

    PBFT算法流程:

    PBFT算法流程

    主要介紹了PBFT算法的主要流程,其中還有一些問題例如:主節點是如何選擇,主節點失效,怎么確定消息的正確性等都不在此贅述,可以參考 區塊鏈核心技術:拜占庭共識算法之PBFT。


    https://zhuanlan.zhihu.com/p/34346665

    總結

    以上是生活随笔為你收集整理的Fabric学习笔记-PBFT算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。