亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解HyperLeger Fabric共識機制

發布時間:2021-11-17 16:26:24 來源:億速云 閱讀:484 作者:柒染 欄目:軟件技術

這篇文章將為大家詳細講解有關如何理解HyperLeger Fabric共識機制,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

HyperLeger Fabric開發(四)——HyperLeger Fabric共識機制

一、Fabric共識過程

1、Fabric共識過程

Fabric區塊鏈的網絡節點本質上是互相復制的狀態機,節點之間需要保持相同的賬本狀態。為了實現分布式節點的一致性,各個節點需要通過共識過程,對賬本狀態的變化達成一致性的認同。
Fabric區塊鏈的共識過程包括3個階段:背書、排序和校驗。

2、背書

在背書(endorsement)階段中,背書節點對客戶端發來的交易提案進行合法性校驗,然后模擬執行鏈碼得到交易結果,最后根據設定的背書邏輯判斷是否支持該交易提案。如果背書邏輯決定支持交易提案,會把交易提案簽名后發回給客戶端。
客戶端通常需要根據鏈碼的背書策略,向一個或者多個成員的背書節點發出背書請求。背書策略會定義需要哪些節點背書交易才有效,例如需要5個成員的背書節點中至少3個同意;或者某個特殊身份的成員支持等。客戶端只有在收集足夠多的背書節點的交易提案簽名,交易才能被視為有效。

3、排序

排序(ordering)階段就是由排序服務對交易進行排序,確定交易之間的時序關系。排序服務把一段時間內收到的交易進行排序,然后把排序后的批量交易打包成數據塊(區塊),再把區塊廣播給通道中的成員。采用排序共識方式,各個成員收到的是一組發生順序相同的交易,從而保證了所有節點的數據一致性。
Fabric 1.0中的排序服務支持可插拔的架構,除了提供的SOLO和Kafka 模式外,用戶可以添加第三方的排序服務。SOLO是單機模式,僅適合開發測試中使用。Kafka模式是基于Kafka開源的分布式數據流平臺,具有高擴展性和容錯能力,適合用在生產系統。Kafka模式只提供了CFT類型的容錯能力,即僅可對節點的一般故障失效容錯,缺乏對節點故意作惡的行為進行容錯的能力。
排序服務是共識機制中重要的一環,所有交易都要通過排序服務的排序才可以達成全網共識,因此排序服務要避免成為網絡上的性能瓶頸。

4、校驗

校驗(Validation)階段是確認節點對排序后的交易進行一系列的檢驗,包括交易數據的完整性檢查、是否重復交易、背書簽名是否符合背書策略的要求、交易的讀寫集是否符合多版本并發控制MVCC(Multiversion Concurrency Control)的校驗等。當交易通過了所有校驗后,將被標注為合法并寫入賬本中。因為所有的確認節點都按照相同的順序檢驗交易,并且把合法的交易依次寫入賬本中,因此不同確認節點的狀態能夠始終保持一致。

二、Fabric共識機制

1、Fabric共識模式

在所有Peer節點中,交易信息必須按照一致的順序寫入賬本(區塊鏈的一致性基本原則)。例如,比特幣通過POW機制競爭記賬權,由最先完成數學難題的節點獲取記賬權并生成區塊,決定本區塊中的信息順序,并廣播給全網所有節點,以此來達成賬本的共識。而Hyperledger Fabric采用了更加靈活、高效的共識算法,以適應企業場景下對高TPS的要求。目前,Hyperledger Fabric有三種交易排序算法:Solo、Kafka、SBFT。
Solo:只有一個排序服務節點負責接收交易信息并排序,是最簡單的一種排序算法,一般用于開發測試環境中。Solo共識模式屬于中心化的處理方式,不支持拜占庭容錯。
Kafka:Kafka是Apache的一個開源項目,主要提供分布式的消息處理/分發服務,每個Kafka集群由多個服務節點組成。Hyperledger Fabric利用Kafka對交易信息進行排序處理,提供高吞吐、低延時的處理能力,并且在集群內部支持節點故障容錯,但不支持拜占庭容錯。
SBFT:簡單拜占庭算法,支持拜占庭容錯的可靠排序算法,包括容忍節點故障以及一定數量的惡意節點。目前,Hyperledger Fabric社區正在開發SBFT算法。

2、Solo共識模式

Solo共識模式指網絡環境中只有一個排序節點,從Peer節點發送來的消息由一個排序節點進行排序和產生區塊;由于排序服務只有一個排序節點為所有Peer節點服務,沒有高可用性和可擴展性,不適合用于生產環境,通常用于開發和測試環境。Solo共識模式調用時序圖如下:
如何理解HyperLeger Fabric共識機制
Solo共識模式調用過程說明:
   A、Peer節點通過gPRC連接排序服務,連接成功后,發送交易信息。
   B、排序服務通過Recv接口,監聽Peer節點發送過來的信息,收到信息后進行數據區塊處理。
   C、排序服務根據收到的消息生成數據區塊,并將數據區塊寫入賬本(Ledger)中,返回處理信息。
   D、Peer節點通過deliver接口,獲取排序服務生成的區塊數據。

3、Kafka共識模式

如何理解HyperLeger Fabric共識機制
共識集群由多個排序服務節點(OSN)和一個Kafka集群組成。排序節點之間不直接通信,僅僅與Kafka集群通信。
在排序節點的實現里,通道(Channel)在Kafka中是以主題topic的形式隔離。
每個排序節點內部,針對每個通道都會建立與Kafka集群對應topic的生產者及消費者。生產者將排序節點收到的交易發送到Kafka集群進行排序,在生產的同時,消費者也同步消費排序后的交易。

關于如何理解HyperLeger Fabric共識機制就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤壁市| 商南县| 延边| 修水县| 崇信县| 东城区| 松原市| 石台县| 南皮县| 尼勒克县| 镇坪县| 马鞍山市| 榆社县| 武宣县| 海城市| 大理市| 长乐市| 靖远县| 红安县| 积石山| 六盘水市| 凤阳县| 丘北县| 海淀区| 闵行区| 德保县| 长宁县| 江口县| 黑水县| 宣汉县| 华阴市| 改则县| 元阳县| 新密市| 濉溪县| 高密市| 金华市| 葵青区| 南充市| 江源县| 鲁甸县|