目前,Hyperledger專案下共有14個子專案在執行中,詳細資訊如下表所示:
我們重點來關注Fabric,Fabric是一種區塊鏈技術的實現,也是一種基於交易呼叫和事件的分散式共享賬本技術。比起其他的區塊鏈技術實現,它採用了模組化的架構設計,支援可插拔元件的開發與使用。其總帳上的資料,由多方參與節點共同維護,並且一旦被記錄,賬本上的交易資訊永遠無法被篡改,並支援透過時間戳進行溯源查詢。
與以太坊相比,有以下優勢:
· Fabric引入了成員管理服務,因此每個參與者在進入前均需要提供對應的證書證明身份才能允許訪問系統,同時引入多通道多賬本的設計來增強安全性和私密性。
· Fabric採用了強大的Docker容器技術來執行服務,支援比以太坊更便捷、更強大的智慧合約服務。
· Fabric可以支援多語言的合約編寫,例如GO、Java和Node.js。
Hyperledger Fabric是分散式賬本技術(DLT)的獨特實現,它可在模組化的區塊鏈架構基礎上提供企業級的安全性、可擴充套件性以及高效能。當前Fabric的最新版本與最早的v0.6版本相比,在安全、保密、部署、維護、實際業務場景需求等方面都進行了很多改進:
· 架構設計上的Peer節點的功能分離、多通道的隱私隔離、共識的可插拔實現等。
· 功能上引入Raft崩潰容錯共識服務、改進可維護性和可操作性、加入私有資料支援等。
Fabric具有以下特性:
身份管理(Identity management):Fabric區塊鏈是一個許可鏈網路,因此Fabric提供了一個成員服務(Member Service),用於管理使用者ID並對網路上所有的參與者進行認證。在Hyperledger Fabric區塊鏈網路中,成員之間可以透過身份資訊互相識別,但是他們並不知道彼此在做什麼,這就是Fabric提供的機密性和隱私性。
隱私和保密(Privacy and confidentiality):Hyperledger Fabric允許競爭的商業組織機構和其他任意對交易資訊有隱私和機密需求的團體在相同的許可鏈網路中共存。其透過通道來限制訊息的傳播路徑,為網路成員提供了交易的隱私性和機密性保護。在通道中的所有資料,包括交易、成員以及通道資訊都是不可見的,並且對於未訂閱該通道的網路實體都是無法訪問的。
高效的效能(Efficient processing):Hyperledger Fabric按照節點型別分配網路角色。為了提供更好的網路併發性和並行性,Fabric對事務執行、事務排序、事務提交進行了有效的分離。先於排序之前執行事務可以使得每個Peer節點同時處理多個事務,這種併發執行極大地提高了Peer節點的處理效率,加速了交易到共識服務的交付過程。
模組化設計(Modular design):Hyperledger Fabric實現的模組化架構可以為網路設計者提供功能選擇。例如,特定的身份識別、共識和加密演算法可以作為可插拔元件插入Fabric中,因此任何行業都可以採用通用的區塊鏈架構,並確保其網路可跨市場、監管和地理邊界進行互操作。
可維護性和可操作性(Serviceability and operations):日誌記錄的改進以及健康檢查機制和運營指標的加入,使得v1.4版本在可維護行和可操作性上實現了巨大飛躍。新的RESTful運營服務為生產運營商提供三種服務來監控和管理對等節點和共識服務節點運營。
第一種服務使用日誌記錄/logspec端點,允許操作員動態獲取和設定對等節點和共識服務節點的日誌記錄級別。
第二種服務使用健康檢查/healthz端點,允許運營商和業務流程容器檢查對等節點和共識服務節點的活躍度和健康情況。
第三種服務使用運營指標/metrics端點,允許運營商利用Prometheus記錄來自對等節點和共識服務節點的運用指標。
Hyperledger Fabric 架構解讀
Fabric主要由3個服務模組組成,分別是成員服務(Membership Service)、區塊鏈服務(Blockchain Service)和合約服務(Chaincode Service)。在邏輯架構圖中,還能看到事件流貫穿三大服務元件間,它的功能是為各個元件的非同步通訊提供技術支援。
通道:在v1.0之後的版本中,Fabric引入了新的通道概念,共識服務上的訊息傳遞支援多通道,使得Peer節點可以基於應用訪問控制策略來訂閱任意數量的通道。
· Peer節點的子集可以被應用程式指定架設相關通道,指定相同通道的Peer節點組成集合提交該通道的交易,而且只有這些Peer節點可以接收相關交易區塊,與其他交易完全隔離。
· Fabric支援多鏈與多通道,即系統中可以存在多個通道以及多條鏈。應用根據業務邏輯決定將每個交易傳送到指定的一個或多個通道,不同通道上的交易不會存在任何聯絡。
私有資料支援:從v1.2開始,Fabric能夠在賬本中建立私有資料集,允許通道上組織的子集能夠認可、提交或查詢私有資料,不用建立單獨的通道就能實現通道上的一組組織的資料向其他組織保密的功能。
私有資料儲存在授權組織的對等節點上的私有狀態資料庫中(有時候被稱為“side”資料庫),能被授權節點上的鏈碼透過gossip協議訪問。共識服務不涉及私有資料,也無法看到它們。
私有資料的雜湊值能夠被認可、排序並寫入通道上每個節點的帳本中,可作為交易的證據,用於狀態驗證,還可用於審計。
節點分類:Fabric中多種型別的節點,具體分類和功能介紹如下:
客戶端節點:客戶端是終端使用者操作的實體,它必須連線到某個Peer節點或者orderer節點,與整個區塊鏈網路進行通訊。
CA節點:CA節點接收客戶端的註冊申請,返回註冊密碼用於登入,以便獲取身份證書。在區塊鏈網路上所有的操作都會驗證使用者的身份。
Peer節點:每個Peer節點可以擔任如下多種角色:Endorser Peer (背書節點)、Leader Peer(主節點)、Committer Peer(記賬節點)、Anchor Peer(錨節點)。
注意:每個Peer節點必定是一個記賬節點,除記賬節點外,它還可以擔任其它一到多種角色,即某個節點可以同時是記賬節點和背書節點,也可以同時是記賬節點、背書節點、主節點,錨節點。
Endorser Peer (背書節點):所謂背書(Endorsement),就是指特定Peer執行交易並向生成交易提案(proposal)的客戶端應用程式返回YES/NO響應的過程。只有在應用程式向節點發起交易背書請求時才成為背書節點,其他時候是普通的記賬節點,只負責驗證交易並記賬。
Leader Peer(主節點):主節點負責和Orderer排序服務節點通訊,從排序服務節點處獲取最新的區塊並在組織內部同步。
Committer Peer(記賬節點):負責驗證從排序服務節點接收的區塊裡的交易,然後將塊提交(寫入/追加)到其通道賬本的副本。
Anchor Peer(錨節點):錨節點主要用來同步同一通道中各組織間的資訊。
Orderer(排序服務節點):排序服務節點接收包含背書籤名的交易,對未打包的交易進行排序生成區塊,廣播給Peer節點。
Hyperledger Fabric就介紹到這裡啦,下一期我們將帶大家瞭解Hyperledger Fabric的專案架構組成敬請期待~