1. 程式人生 > >HyperLedger Fabric 架構

HyperLedger Fabric 架構

文章出處:https://www.cnblogs.com/llongst/p/9425186.html


       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)結構,實現更為靈活的業務適應性,支援更強的配置功能和策略管理功能,進一步增強系統的靈活性和適應性。


圖:架構演進


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

圖:整體架構

 

  • 成員管理(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監聽區塊鏈網路中發現的事件,方便第三應用系統呼叫和處理。