1. 程式人生 > >區塊鏈技術之Fabric邏輯架構詳解

區塊鏈技術之Fabric邏輯架構詳解

一、架構圖
這裡寫圖片描述
該圖出自區塊鏈技術指南一書,架構解釋也主要出自於本書,有興趣的同學可以去自行找一找資源。
如圖所示:fabric的底層主要由四種服務構成,分別是:身份服務、策略服務、區塊鏈服務、智慧合約服務。在這些基礎服務之上,通過一些API、SDK、CLI為上層業務應用提供一些可以程式設計的介面服務。
二、服務詳解
2.1身份服務
首先明確一點,fabric和比特幣與以太坊的最大的區別在於其身份識別能力,fabric是許可權區塊鏈,而後兩者是匿名的非許可權區塊鏈。明確這一點後,fabric的身份識別主要表現在fabric的賬本中的各類事件個交易中,參與者和物件都具有明確的身份資訊。這些資訊主要包括參與者的組織、驗證者、交易者,賬本中的資產和智慧合約,以及系統元件包括網路和伺服器、執行環境等等這些資訊。驗證者在fabric網路建立的時候就可以確定參加交易的許可權級別。
2.2策略服務
由於fabric中的許多功能需要以策略的方式進行驅動,所以需要一套側羅服務來提供系統所需要的策略配置和管理功能。該服務最重要的功能在於訪問控制和授權管理。fabric的交易需要參與方具有相關的許可權才能夠進行參與。其他的功能還包括加入或者退出網路、身份的註冊、驗證、隱私、保密、共識策略等。
2.3區塊鏈服務
fabric的區塊鏈服務能夠提供構建分散式賬本的最基礎的能力,可以實現資料傳輸、共識達成等功能。並且提供訂閱/釋出事件的管理框架。分散式賬本內部的各種事件可以通知外部的監聽的應用。fabric的區塊鏈服務主要包含4個元件:P2P協議元件、分散式賬本元件、共識管理器元件、和賬本儲存元件
2.3.1P2P協議元件
該元件主要提供的是區塊鏈節點之間的雙向的通訊的能力。包括流式資料傳輸、流控制、多路複用等。P2P協議的通訊機制採用了網際網路現有的基礎設施(防火牆、代理、伺服器等),把資料封裝為一個訊息物件,採用點對點或者組播的方式在節點之間傳輸。
2.3.2分散式賬本元件
該元件主要管理著fabric的區塊鏈資料。區塊鏈網路的每一個節點可以看作為一個狀態機,分散式賬本維持著區塊鏈資料和各個狀態機之間的相同狀態。該元件的效能直接影響著區塊鏈網路的吞吐量。所以在很多地方都需要較高的處理效率來提高網路的效率。
2.3.3共識管理器元件
由於在業務場景中,需要在不同的共識演算法中進行靈活切換,fabric的模組化架構可以支援不同的場景切換不同的共識演算法。通過統一的抽象介面,共識管理器接受各種交易資料,然後根據共識演算法來決定如何組織或者進行交易,交易成功後,修改區塊鏈賬本的資料。
2.3.4賬本儲存元件
由於在區塊鏈上儲存大型文件效率很低下,所以一般大文件的儲存都是放在鏈外儲存中的。賬本儲存元件可以提供鏈外資料的持久化能力,每一個鏈外資料的雜湊值可以儲存在鏈上,從而可以保證資料的完整性。
2.4智慧合約服務
該服務的實質是在驗證節點上執行的分散式交易程式,用以自動執行特定的業務規則,最終更新賬本資訊的狀態。智慧合約又分為:公開合約、保密合約和控制合約幾種。公開合約可以被任何成員呼叫;保密合約智慧有驗證成員呼叫;訪問控制合約允許某些批准的成員呼叫。智慧合約服務為合約程式碼提供了安全的執行環境和合約控制管理週期。
2.5應用程式設計介面
使用者可以呼叫fabric的應用介面,實現業務應用,來構建基本的分散式賬本。