HyperLedger Fabric 介紹
title: HyperLedger Fabric 介紹
tags: 區塊鏈,HyperLedger,Fabric
hyperledger全家桶
2015年,Linux基金會啟動了Hyperledger專案,目標是發展跨行業的區塊鏈技術。Hyperledger專案並不僅僅是定義一個單一的區塊鏈標準,它更鼓勵通過開源社群的力量協作開發區塊鏈技術。
- BURROW和SAWTOOTH:是對以太坊智慧合約虛擬機器方面的拓展
- INDY:做去中心化的數字身份平臺
- CALIPER:是一個去中心化的效能測試工具
- COMPOSER:區塊鏈模板部署,設一些引數,直接部署
- EXPLORER:是區塊鏈web端檢視工具
Hyperledger Fabric是什麼
Hyperledger Fabric是Hyperledger中的一個區塊鏈專案。與其他區塊鏈技術類似,Hyperledger Fabric包含一個賬本,使用智慧合約並且是一個通過所有參與者管理交易的系統。
Hyperledger Fabric與其他區塊鏈系統最大的不同體現在私有和許可。與開放無需許可的網路系統允許未知身份的參與者加入網路不同(需要通過工作量證明協議來保證交易有效並維護網路的安全),Hyperledger Fabric通過Membership Service Provider(MSP)來登記所有的成員。
Hyperledger Fabric提供了建立channel的功能,這允許參與者為交易新建一個單獨的賬本。當網路中的一些參與者是競爭對手時,這個功能變得尤為重要。因為這些參與者並不希望所有的交易資訊——比如提供給部分客戶的特定價格資訊——都對網路中所有參與者公開。只有在同一個channel中的參與者,才會擁有該channel中的賬本,而其他不在此channel中的參與者則看不到這個賬本。
Hyperledger Fabric有以下四個內容:
- 共享的許可制賬本 (Shared,Permissioned Ledger) 是僅可附加的記錄系統 (SOR) 和單一事實來源。它對業務網路的所有參與成員均可見。
- 共識協議 (Consensus Protocol) 是業務網路的所有參與成員都贊同的協議,可確保僅使用經過網路驗證的交易來更新賬本。
- 加密 (Crytography) 可確保交易的防篡改安全性、身份驗證和完整性。
- 智慧合約 (Smart Contract) 封裝了在網路上發生的交易的參與者協議條款;它們儲存在區塊鏈中的驗證節點上並通過交易觸發。
1.共享賬本
Hyperledger Fabric包含一個賬本子系統,這個子系統包含兩個元件:世界狀態(world state)和交易記錄。在Hyperledger Fabric網路中的每一個參與者都擁有一個賬本的副本。
世界狀態元件描述了賬本在特定時間點的狀態,它是賬本的資料庫。交易記錄元件記錄了產生世界狀態當前值的所有交易,它是世界狀態的更新歷史。那麼,賬本則是世界狀態資料庫和交易歷史記錄的集合。
賬本的世界狀態儲存資料庫是可更換的。預設配置下,這是一個key-value儲存資料庫。交易記錄模組不需要被接入。只需要記錄在區塊鏈網路中賬本資料庫被使用時之前和之後的值就可以了。
2.共識
在網路中,不同的參與者寫入的交易必須按照產生順序依次被寫入賬本中。要實現這一目標,交易順序必須被正確的建立並且必須包含拒絕錯誤(或者惡意)插入賬本中的無效交易的方法。
3.加密
根據網路的需求,在一個Business-to-Business(B2B)網路中的參與者會對資訊共享的程度極為敏感。然而,對於其他的網路,隱私並不是首要考慮的因素。Hyperledger Fabric支援構建隱私保護嚴格的網路,也支援構建相對開放的網路。
4.智慧合約
Hyperledger Fabric智慧合約被稱為chaincode,當一個區塊鏈外部的一個應用程式需要訪問賬本時,就會呼叫chaincode。大多數情況下,chaincode只會訪問賬本的資料庫元件和世界狀態(world state)(比如查詢),但不會查詢交易記錄。
Fabric特點
Hyperledger Fabric 是一種通用的區塊鏈技術,其設計目標是利用一些成熟的技術實現分散式賬本技術( Distributed Ledge Technology,DLT)。超級賬本採用模組化架構設計,複用通用的功能模組和介面。模組化的方法帶來了可擴充套件性、靈活性等優勢,會減少模組修改、升級帶來的影響,能很好地利用微服務實現區塊鏈應用系統的開發和部署。 Hyperledger fabric設計有幾個特點:
-
模組外掛化:很多的功能模組(如CA模組、共識演算法、狀態資料庫儲存、ESCC、VSCC、 BCCSP等)都是可插拔的,系統提供了通用的介面和預設的實現,這滿足了大多數的業務需求。這些模組也可以根據需求進行擴充套件,整合到系統中。
-
充分利用容器技術:不僅節點使用容器作為執行環境,鏈碼也預設執行在安全的容器中。應用程式或者外部系統能直接操作鏈碼,必須通過背書節點提供的介面轉發給鏈碼來執行。容器給鏈碼執行提供的是安仝沙箱環境,把鏈碼的環境和背書節點的環境隔離開,鏈碼存在安全問題也不會影響到背書節點。
-
可擴充套件性: Hyperledger Fabric1.0在0.6版本的基礎上,對Per節點的角色進行了拆分,有背書節點( Endorser)、排序服務節點( Orderer)、記賬節點( Committer)等,不同角色的節點有不同的功能。節點可以加入到不同的通道(Channel)中,鏈碼可以執行在不同的節點上,這樣可以更好地提升並行執行的效率和吞吐量。
-
安全性: Hyperledger Fabric10提供的是授權訪問的區塊鏈網路,節點共同維護成員資訊,MSP( Membership service Provider)模組驗證、授權了終端使用者後才能使用區塊鏈網路的功能。多鏈和多通道的設計容易實現資料隔離,也提供了應用程式和鏈碼之間的安全通道,實現了隱私保護。