天天看點

Hyperledger Fabric v2.0發行版的新增功能介紹一、智能合約的去中心化治理二、用于協作和共識的新chaincode應用模式三、私有資料的增強四、外部chaincode啟動器五、狀态資料庫緩存提高CouchDB的性能六、基于Alpine的docker鏡像七、測試網絡樣例八、更新到Fabric v2.0九、發行說明

本文翻譯自Fabric官方文檔,如有需更正之處,請讀者指出,英文原位址為https://hyperledger-fabric.readthedocs.io/en/release-2.0/whatsnew.html

Fabric v2.0是v1.0以來的第一個Hyperledger Fabric主要版本,Fabric v2.0為使用者和操作員帶來了一些重要的新特性和改變,包括對新應用和私有模式的支援、圍繞智能合約的增強型治理、以及用于操作節點的新選項。

保持不變的是,您可以根據自己的條件更新網絡元件,支援從v1.4.x進行滾動更新,并且僅在成員組織準備就緒時才可以啟用新功能。

接下來讓我們來看一下Fabric v2.0版本的一些亮點……

一、智能合約的去中心化治理

Fabric v2.0引入了智能合約的去中心化治理,并且提供了一種在peer節點上安裝chaincode、在channel上啟動chaincode的新過程,新的Fabric chaincode生命周期允許在chaincode和賬本互動前,多個組織間就chaincode的一些參數達成一緻,比如chaincode背書政策。新模型在以前的生命周期基礎上提供的一些改進如下:

  • 必須經多個組織同意chaincode的參數

    在Fabric v1.x版本中,一個組織可以為channel上所有其他成員設定某一個chaincode的參數(比如執行個體背書政策),其他成員有權拒絕安裝chaincode,也就不能參與調用這個chaincode的交易。新的Fabric chaincode生命周期更加靈活,因為它既支援中心化信任模型(例如之前的生命周期模型),也支援去中心化模型,需要在chaincode于channel上生效之前,有足夠數量的組織就背書政策和一些其他細節達成一緻。

  • 更加具有商讨性的chaincode更新過程

    在先前的chaincode生命周期中,更新交易可能由單個組織釋出,這給尚未安裝新chaincode的channel成員帶來了風險。新模型隻有在足夠數量的組織準許更新後才允許更新chaincode。

  • 更簡單的背書政策和私有資料集合更新

    Fabric生命周期使您可以無需重新打包或重新安裝chaincode,就可以更改背書政策和私有資料集合配置。使用者還可以利用新的預設背書政策,該背書政策需要channel上大多數組織的背書。在從channel上添加或删除組織時,該背書政策也會自動更新。

  • 可檢查的chaincode package

    Fabric生命周期将chaincode打包到易于閱讀的tar檔案中。這使得檢查chaincode package和協調跨多個組織的安裝變得更加容易。

  • 使用一個package在channel上啟動多個chaincode

    先前的生命周期用安裝chaincode package時指定的名稱和版本,來定義channel上每個chaincode。現在,你可以使用單個chaincode package,并在同一個channel或不同channel上以不同的名稱多次部署它。例如,如果您想在自己的chaincode副本中跟蹤不同類型的資産。

  • chaincode package在channel的各個成員間不必相同

    組織可以針對自己的用例擴充chaincode,例如為了組織的利益執行不同的驗證。隻要所需數量的組織給具有比對結果的chaincode交易背書,該交易将會被驗證并送出到賬本。這也使組織可以按自己的時間表單獨推出較小的修複程式,而無需整個網絡步調一緻。

關于使用新的chaincode生命周期的說明

對于現有的Fabric部署,你可以繼續将之前的chaincode生命周期與Fabric v2.0一起使用。隻有當channel應用功能更新到v2.0的時候,新的chaincode生命周期才會生效。有關新chaincode生命周期的完整詳細資訊,參見Chaincode for Operators教程。

二、用于協作和共識的新chaincode應用模式

新的chaincode生命周期管理所基于的相同的去中心化達成協定的方法,也可以被用于你自己的chaincode應用中,以確定組織在送出賬本之前同意資料交易。

  • 自動檢查

    如上所述,組織可以将自動檢查添加到chaincode函數中,這樣可以在背書一個交易提案之前驗證其他資訊。

  • 去中心化協定

    可以将人為決策模組化為跨多個交易的chaincode流程。chaincode可能會要求來自各個組織的參與者在賬本交易中指明其協定條款和條件。然後,最終的chaincode提案可以驗證是否滿足所有單個交易者的條件,并在channel的所有成員中确定性地解決業務交易。有關指明私有條款和條件的具體示例,請參閱Private data文檔中的資産轉移方案。

三、私有資料的增強

Fabric v2.0還啟用了用于處理和共享私有資料的新模式,無需為可能要進行交易的channel成員的所有組合建立私有資料集合。具體而言,你可能不想僅在一個擁有在多個成員的集合中共享私人資料,而是希望在集合之間共享私有資料,其中每個集合可能包括一個組織,或者可能包括一個組織以及監管者或審計員。

Fabric v2.0中的一些增強功能使得這些新的私有資料模式成為可能:

  • 共享和驗證私有資料

    當私有資料與不是集合一員的channel成員共享,或者與包含一個或多個channel成員的另一個私有資料集合共享(通過向該集合寫入key)時,接收方可以利用GetPrivateDataHash() chaincode API,來驗證私有資料是否與先前交易中的私有資料建立的鍊上哈希比對。

  • 集合級别的背書政策

    現在,可以選擇使用背書政策來定義私有資料集合,該政策可以覆寫集合中key的chaincode級别的背書政策。這個特性可以用來限制哪些組織可以将資料寫入集合,這也使得前面提到的新chaincode生命周期以及chaincode應用模式成為可能。例如,你可能有一個要求大多數組織進行背書的chaincode背書政策,但是對于任何給定的交易,你可能需要兩個交易組織在他們自己的私有資料集合中單獨背書其協定。

  • 隐式的按組織收集

    如果你想利用按組織的私有資料模式,在Fabric v2.0中部署chaincode時,你甚至不需要定義集合。隐含特定于組織集合可以直接使用,而無需任何前期定義。

要了解有關新的私有資料模式的更多資訊,請參閱Private data(conceptual documentation)。有關私有資料集合的配置和隐式集合的詳細資訊,請參閱Private data(reference documentation)。

四、外部chaincode啟動器

外部chaincode啟動器特性使操作員可以使用自己選擇的技術來建構和啟動chaincode。不需要使用外部建構器和啟動器,因為預設行為以與使用Docker API的先前版本相同的方式建構和運作chaincode。

  • 消除docker守護程序的依賴性

    先前版本的Fabric要求peer節點有權通路Docker守護程序以建構和啟動chaincode——在生産環境中,可能不希望peer節點擁有這些特權。

  • 容器的替代方案

    不再需要在docker容器中運作chaincode了,而是可以在操作員選擇的環境中執行(包括容器)。

  • 外部建構器的可執行性檔案

    操作員可以提供一組外部建構器可執行檔案,以覆寫peer節點建構和啟動chaincode的原本方案。

  • chaincode作為外部服務

    傳統上,chaincode由peer節點啟動,然後再連接配接回peer節點。現在可以将chaincode作為外部服務運作,例如在Kubernetes pod中,peer節點可以連接配接它并用于chaincode執行。有關更多資訊,請參閱Chaincode as an external service。

請參閱External Builders and Launchers以了解有關外部chaincode啟動器特性的更多資訊。

五、狀态資料庫緩存提高CouchDB的性能

  • 使用外部CouchDB狀态資料庫時,在背書和驗證階段的讀延遲曆來是性能瓶頸。
  • 使用Fabric v2.0,新的peer緩存使用快速的本地緩存讀取取代了大量開銷較大的查找。可以通過core.yaml中的屬性“cacheSize”配置緩存大小。

六、基于Alpine的docker鏡像

從v2.0開始,Hyperledger Fabric docker鏡像将會使用Alpine Linux,這是一種面向安全的輕量級Linux發行版。這意味着docker鏡像現在要小得多,提供了更快的下載下傳和啟動時間,并且占用了主機系統上更少的磁盤空間。Alpine Linux在設計時就從頭開始考慮安全性,Alpine發行版的極簡性極大地降低了安全漏洞的風險。

七、測試網絡樣例

fabric-samples倉庫現在包含一個新的Fabric測試網絡。這個測試網絡被建構為一個子產品化、使用者友好的Fabric網絡樣例,可以輕松測試你的應用和智能合約。除了cryptogen,網絡還支援使用CA部署網絡的功能。

有關此網絡的更多資訊,請參閱Using the Fabric test network。

八、更新到Fabric v2.0

這個主要的新版本帶來了一些其他更新注意事項。不過請放心,它支援從v1.4到v2.0的滾動更新,是以可以一次不停機地更新網絡元件。

更新文檔已經進行了很大的擴充和改進,現在在文檔中有一個獨立的首頁:Upgrading to the latest release。在這裡,你将找到有關更新元件和更新channel功能級别的文檔,以及有關更新到v2.0的注意事項,Considerations for getting to v2.0。

九、發行說明

發行說明為使用新版本的使用者提供了更多詳細資訊。具體請檢視新的Fabric v2.0版本釋出的更改和棄用。詳見Fabric v2.0.0 release notes。

繼續閱讀