- 區塊鏈國產化實踐指南:基于Fabric 2.0
- 王雅震編著
- 1022字
- 2022-04-13 16:10:51
2.2 網絡配置
Fabric區塊鏈網絡配置主要指系統通道(system channel)配置。系統通道配置主要定義了整個網絡的所有聯盟和orderer組織的信息,該配置作為第一個塊,即創世紀塊,在啟動網絡時被用作整個網絡的基礎配置。這里,我們從配置來源的角度講述系統通道配置。生成系統通道配置的文件為configtx.yaml,參見sampleconfig/configtx.yaml,基本結構如圖2-1所示。

圖2-1 系統通道配置文件基本結構
在圖2-1中,要理解configtx.yaml文件,除需理解YAML的基礎知識外,重點需要理解configtx.yaml文件中“錨節點和引用”的用法,如第2行和第15行,使用類似于C語言中的取地址符號“&”,定義了錨節點SampleOrg、ChannelDefaults。引用錨節點共有兩種方式,如第18行,在該處插入ChannelDefaults所有的下級配置項;如第21行,在該處直接插入SampleOrg配置項。
configtx.yaml文件主要由configtxgen程序使用,該程序使用Profiles下的配置項。Profiles下的配置項代表一個完整的通道配置,由configtxgen -profile指定。Profiles下的配置項更多通過引用上文定義的各類配置,匯總成自己的配置。該文件中主要的配置項含義如下。
●Organizations,定義了聯盟所有成員的配置,如名稱、MSP ID、MSP目錄、組織策略、錨節點,包括peer組織、orderer組織。
●Capabilities,定義了關于通道、節點的服務能力。Fabric從0.6.x版本開始迭代,至現在的2.0版本,各版本在數據結構、服務流程的兼容性等方面存在一定問題。例如A企業所使用的節點版本是1.4.x,而與之處于同一網絡中的B企業所使用的節點版本則是2.0,在這種情況下,由Capabilities規定通道或節點必須實現的對應版本的服務能力,如圖2-1中第4~5行,定義了通道具有Fabric 2.0的服務能力。
●Application,定義了應用通道中的公用配置。例如圖2-1中第7行,定義了應用通道的ACL(Access Control List,訪問控制列表)策略;第8行,定義了應用通道中的組織,由于每個通道的組織不一樣,所以這里自然是空的,在下文使用的時候單獨配置;第9行,定義了應用通道的基本策略;第10行,定義了應用通道的版本服務能力。
●Orderer,定義了系統通道中的公用配置。系統通道主要提供共識排序服務,輔以創建應用通道的職責。因此,這里主要定義了供共識排序服務使用的各種配置,如圖2-1中第13行,定義了塊的大?。坏?4行,定義了etcdraft類型的共識排序服務的配置。
●Channel,定義了通道的公共配置。這個通道配置可用于系統通道,也可用于應用通道。
●Profiles,利用已定義的各類配置,根據需要進行組合,形成一個完整的通道配置,并通過configtxgen工具生成對應配置文件。例如圖2-1中第17行,用于生成一個聯盟中只有一個SampleOrg組織的系統通道配置(創世紀塊,啟動orderer集群時使用)。系統通道配置和應用通道配置的區別,在于系統通道會定義聯盟,如圖2-1中第22~23行,定義了名為SampleConsortium的聯盟的成員組成。
- Apache Spark 2.x Machine Learning Cookbook
- Network Automation Cookbook
- Java開發入行真功夫
- PostgreSQL 11從入門到精通(視頻教學版)
- Mastering RStudio:Develop,Communicate,and Collaborate with R
- Learning Probabilistic Graphical Models in R
- 持續輕量級Java EE開發:編寫可測試的代碼
- 零基礎學C語言第2版
- 編寫高質量代碼之Java(套裝共2冊)
- PhoneGap 3.x Mobile Application Development Hotshot
- Learning Ext JS(Fourth Edition)
- 自然語言處理NLP從入門到項目實戰:Python語言實現
- Hybrid Mobile Development with Ionic
- Building Probabilistic Graphical Models with Python
- Java Coding Problems