天天看點

HyperLedger Fabric架構(6.2)

6.2.1 架構演進

       Fabric架構經曆了0.6版本到1.0版本的演進,架構上進行了重大改進,從0.6版本的結構簡單演進到可擴充、多通道的設計,在架構上有了質的飛躍;從1.0版本以後,架構未做重大調整,到目前為止,最新釋出為1.2版本。

       Fabric 0.6版本架構主要是應用、成員管理和Peer的三角形關系,業務邏輯全部集中在Peer節點上,結構過于簡單,隻能用于一些商業場景的驗證。

       Fabric 1.0版本在0.6版本的基礎上做了重大改進和重構,把承載過多業務的Peer節點進行拆分,将區塊鍊的資料維護和共識伺服器進行分離,共識服務從Peer節點中完全分離出來,獨立為Orderer節點專門提供共識服務;membership從架構中分離出來形成Fabric-ca單獨元件;在架構中加入了多通道(channel)結構,實作更為靈活的業務适應性,支援更強的配置功能和政策管理功能,進一步增強系統的靈活性和适應性。

HyperLedger Fabric架構(6.2)

圖:架構演進

6.2.2 總體架構

       總體架構核心部分由成員管理(Membership services)、共識服務(Consensus services)和智能合約(Chain-code Services)三部分, 加上安全和加密服務(Security and Crypto Services)貫穿于其他各個元件,應用端通過接口(APIs、Events、SDKs)調用身份(IDENTITY)、賬本(LEDGER)、交易(TRANSACTIONS)、智能合約等資訊,架構圖如下:

HyperLedger Fabric架構(6.2)
圖:整體架構

  • 成員管理(Membership services):提供成員服務功能,包括注冊、登記、申請證書等功能;考慮到商業應用對安全、隐私、監管、審計和性能的要求,節點、成員隻有獲得證書才能加入到區塊鍊網絡中,在1.0版本以後單獨由可插拔的Fabric CA元件來處理。
  • 共識服務(Consensus services):負責分布式賬本的計算和存儲(Distrbuted Ledger)、節點間的共識服務(Ordering Service)、背書驗證管理(Endorsement Validation)以及節點間的網絡傳輸協定(Network Protocol)功能的實作,是區塊鍊的核⼼心組成部分,為區塊鍊的主體功能提供了底層支撐。
  • 智能合約(Chain-code Services):智能合約(SMART CONTRACT)稱為鍊碼(chaincode), 是基于标準的一段代碼,實作具體業務邏輯。鍊碼和底層賬本是解偶的,鍊碼的更新不影響到原有的資料。鍊碼目前可以使用GO、Java、Node.js語言來編寫,通過Docker容器來運作chaincode,安裝和執行個體化後通過gRPC與同一通道内的Peer節點進行連接配接。
  • 安全和加密服務(Security and Crypto Services):節點或成員必須被許可才能進入網絡,通過證書、加密和簽名等手段保證安全,通過多通道隔離功能,保證隻有參與交易的節點能通路到資料,其他的節點看不到,真正實作了邏輯與資料的分離。
  • 接口(APIs, Events, SDKs):提供API方式給第三方應用調用,友善二次開發,目前已提供Node.js和Java SDK兩種語言接口;可以通過SDK或CLI方式進行安裝、測試鍊碼,還可以查詢交易狀态和資料等功能,同時通過Events監聽區塊鍊網絡中發現的事件,友善第三應用系統調用和處理。