Hyperledger 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章