Hyperledger Fabric 2.0新特性

參考資料:官方文檔

智能合約的去中心化治理

  Fabric v2.0 引入了智能合約的去中心化治理,新的Fabric 鏈碼生命週期支持多個組織在鏈碼和賬本交互之前協商鏈碼的參數,例如鏈碼背書策略。和以前的生命週期相比,新的模式有幾個改進:
  多個組織必須認同鏈碼參數: 在 Fabric 1.x 版本中,一個組織可以爲通道中的所有其他成員設置鏈碼的參數(例如背書策略),這些成員只能拒絕安裝鏈碼,因此不能參與和該鏈碼相關的交易。新的 Fabric 鏈碼生命週期更加靈活,它既支持中心化的信任模型(如以前的生命週期模型),也支持去中心化的模型,去中心化的模型要求在鏈碼在通道上變爲活動狀態之前,要有足夠數量的組織就背書策略和其他細節達成一致意見。
  更周密的鏈碼升級過程: 在以前的鏈碼生命週期中,升級交易可能由單個組織發起,這會給尚未安裝新鏈碼的通道成員帶來風險。新的模式要求只有在足夠數量的組織批准升級後才能升級鏈碼。
  更簡單的背書策略和私有數據集合更新: Fabric 生命週期支持在不重新打包或重新安裝鏈碼的情況下,更改背書策略或私有數據集合配置。用戶還可以利用新的默認背書策略,該策略要求獲得通道上大多數組織的背書。在通道中添加或刪除組織時,會自動更新此策略。
  可查驗的鏈碼包: Fabric 生命週期將鏈碼封裝在可讀性更強的 tar 文件中。這使得檢查鏈碼包和跨多個組織協調安裝變得更加容易。
  使用一個包在通道上啓動多個鏈碼: 以前的生命週期在安裝鏈碼包時,會使用打包時指定的名稱和版本定義通道上的鏈碼。現在可以使用同一個鏈碼包,以不同的名稱在同一通道或不同通道上多次部署它。
  通道成員之間的鏈碼包不需要爲同一個: 組織可以自己擴展鏈碼,例如爲了他們組織的利益執行不同的驗證。只要有所需數量的組織的鏈碼執行結果匹配併爲交易背書,該交易就會被驗證並提交到帳本中。這還允許組織按照自己的時間單獨推出小的修補程序,而不需要整個網絡同步進行。

用於協作和共識的新鏈碼應用程序模式

  自動檢查: 組織可以在鏈碼功能中添加自動檢查,以便在背書交易提案之前驗證附加信息。
  去中心化協議: 人們的決定可以通過鏈碼中的多個交易來建模。鏈碼可能要滿足來自不同組織的參與者在賬本交易中的協議和條件。然後,最終的鏈碼提案可以驗證所有交易者的條件是否得到滿足,並最終“解決”所有通道成員之間業務交易。

隱私數據增強

  共享和驗證隱私數據: 當私有數據與不是集合成員的通道成員共享時,或者與包含一個或多個通道成員的另一個私有數據集合共享時(通過向該集合寫入密鑰),接收方可以利用鏈碼的 GetPrivateDataHash() API 驗證私有數據是否與以前交易中創建的私有數據在鏈上哈希相匹配。
  集合級別的背書策略: 現在可以選擇使用背書策略來定義私有數據集合,該背書策略會覆蓋集合內鍵的鏈碼級的背書策略。例如,您可能有一個鏈碼背書策略,該策略要求大多數組織背書,但對於任何給定的交易,您可能需要兩個交易處理組織在它們自己的私有數據集合中單獨背書它們的協議。
  每個組織的隱式集合: 如果您想利用每個組織的私有數據模式,那麼在 Fabric v2.0 中部署鏈碼時甚至不需要定義集合。不需要任何前期定義就可以使用隱式的特定組織集合。

  隱私數據更多內容可參考:Fabric Hyperledger(2.0 )之隱私數據(Private data)

外部的鏈碼啓動器

  外部鏈碼啓動器功能使運營者能夠使用他們選擇的技術構建和啓動鏈碼。默認構建和運行鏈碼的方式與之前的版本相同,都是使用 Docker API,但是使用外部構建器和啓動器就不必這樣了。
  消除 Docker 守護進程依賴: Fabric 以前的版本要求 Peer 節點能夠訪問 Docker 守護進程,以便構建和啓動鏈碼,但是 Peer 節點進程所需的特權在生產環境中可能是不合適的。
  容器的替代品: 不再要求鏈碼在 Docker 容器中運行,可以在運營者選擇的環境(包括容器)中執行。
  可執行的外部構建器: 操作員可以提供一組可執行的外部構建器,以覆蓋 Peer 節點構建和啓動鏈碼方式。
  作爲外部服務的鏈碼: 傳統上,鏈碼由 Peer 節點啓動,然後連接回 Peer 節點。現在可以將鏈碼作爲外部服務運行,例如在 Kubernetes pod 中,Peer 節點可以連接到該 pod,並利用該pod 執行鏈碼。

用於提高 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(Certificate Authorities)部署網絡。

升級到 Fabric v2.0

  支持從 v1.4.x 到 v2.0 的滾動升級,因此可以每次升級一個網絡組件而不會停機。

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