原文地址:www.xuanzhangjiong.top/2019/04/11/…
作者:TopJohn
Hyperledger Fabric 2.0 Alpha釋出了!
隨著近期Fabric v1.4.1 LTS的釋出,Fabric專案目前工作的重點正在向1.4.1和2.0的正式版推進。v2.0.0是2019年的主要目標,重點集中在更多的新特性上,包括增強的鏈碼生命週期管理,raft共識機制,以此來循序漸進地遷移至拜占庭容錯演算法,以及更強大的token支援。近期釋出的2.0版本建議大家僅作為嚐鮮之用,生產環境暫時不要考慮。
Fabric chaincode lifecycle
Fabric 2.0 Alpha介紹了分散式治理鏈碼的特性,包括在你的節點上安裝鏈碼以及在一個通道中啟動鏈碼的新流程。新的Fabric生命週期允許多組織對鏈碼的引數達成共識,例如鏈碼在開始和賬本進行互動前的背書策略。新的模型在之前的生命週期上進行了改進:
-
多個組織必須同意鏈碼的引數:在Fabric 1.x版本中,一個組織能夠為所有其他通道成員設定鏈碼引數(例如背書策略)。新的Fabric鏈碼生命週期將變得更靈活,提供了中心化的信任模型(例如之前版本的生命週期模型)以及去中心化的要求足夠多的組織同意才能生效的模型。
-
更安全的鏈碼升級過程:在之前的鏈碼生命週期中,升級鏈碼可以由單個組織進行釋出,從而尚未安裝新鏈碼的通道成員將可能產生風險。新的模型要求只有足夠數量的組織批准後才能允許升級鏈碼。
-
更輕鬆的背書策略升級:Fabric生命週期允許你在沒有重新打包或者安裝鏈碼的情況下,變更背書策略。使用者可以體驗到預設的要求通道內大多數成員同意的策略的好處。這個策略會在通道新增或者移除組織的時候自動更新。
-
可檢查的鏈碼包:Fabric生命週期將鏈碼以易於閱讀的tar檔案的形式打包。這樣可以更加輕鬆地檢查鏈碼程式碼包並協調跨多個組織安裝。
-
使用同一個安裝包啟動多個鏈碼:在之前的生命週期管理中一個通道上的鏈碼可以使用名字和版本來指定一個安裝的鏈碼。在現在的版本中你可以使用一個鏈碼安裝包在同一個通道或者不同的通道使用不同的名字進行多次部署。
使用新的鏈碼生命週期
可以使用下列教程來開始使用新的鏈碼生命週期:
-
Chaindoce for Operators:提供了安裝和定義鏈碼所需步驟的詳細概述,以及新模型可用的功能。
-
Building Your First Network:如果你想立即開始使用新的生命週期,BYFN教程已經更新為使用新的鏈碼生命週期來安裝和定義鏈碼了。
-
Using Private Data in Fabric:已經更新演示如何通過新的鏈碼生命週期來使用隱私資料集合。
-
Endorsement policies:瞭解使用新的鏈碼生命週期如何使用通道配置中的策略作為背書策略。
限制
Fabric v2.0 Alpha版本中鏈碼生命週期尚未完成。具體來說,請注意Alpha版本中的以下限制:
- 尚不支援CouchDB索引
- 使用新生命週期定義的鏈碼還不能通過服務發現來發現
這些限制在後期將被解決。
FabToken
Fabric 2.0 Alpha還為使用者提供了在Fabric通道上輕鬆將資產轉化為token的功能。FabToken是一種token管理系統,它使用Unspent Transaction Output(UTXO)模型,利用Hyperledger Fabric提供的身份和成員服務基礎設施來發布傳輸和兌換token。
- 使用FabToken:這個操作指南提供了有關如何在Fabric網路上使用token的詳細概述。該指南還包含有如何使用tokenCLI建立和傳輸token的示例。
Alpine images
從v2.0開始,Hyperledger Fabric Docker映象將會使用Alpine Linux作業系統,一種面向安全的輕量級的Linux發行版。這意味著Docker映象現在將會小很多,提供更快的下載和啟動時間,以及在主機系統上佔用更少的磁碟空間。Alpine Linux的設計初衷是考慮到安全性,而Alpine的發行版的極簡主義特性大大降低了安全漏洞的風險。
Raft 排序服務
Raft是v1.4.1中引入的,它是一種基於etcd的崩潰容錯(CFT)排序服務。Raft遵循“領導者和追隨者”模型,其中每個通道都會選舉一個leader,而且它的決策會複製給追隨者。和基於Kafka的排序服務相比,基於Raft的排序服務將變得更容易設定和管理,並且它的設計允許遍佈全球的組織成為分散的排序服務貢獻節點。
- The Ordering Service:描述Fabric中排序服務的作用以及三種排序服務實現的概述:Solo、Kafka和Raft。
- Configuring and operating a Raft ordering service:展示部署基於Raft的排序服務時所需注意的配置引數和注意事項。
- Setting up an ordering node:描述部署排序服務節點的過程,與排序服務的實現無關。
- Building Your First Network:已經更新,允許使用基於Raft的排序服務來構建樣本網路。