1.core.yaml : Peer節點的示例組態檔,有六個部分(會隨版本變化略加改動)
- 日志部分:指定模塊日志級別
- peer部分:Peer服務核心配置內容
- vm部分:配置鏈碼運行的環境,比如Docker容器
- 鏈碼部分:鏈碼相關配置
- ledger部分:分類賬本配置資訊
- metrics(指標)部分:系統性能度量框架
2.orderer.yaml :Orderer節點示例組態檔
- General部分 :組態檔的基礎配置資訊部分
- FileLedge部分:如果指定分類賬本型別為檔案型別,則通過該部分組態檔賬本的相關資訊
- RAMLedge:指定記憶體賬本型別區塊最大數量
- Kafka:Kafka排序服務的配置資訊指定
- Debug:主要指定廣播服務與交付服務的請求保存目錄
3.crypto-config.yaml : 指定整個網路中相關組織的詳細資訊(2.x版本后分成了三個yaml檔案)生產組織結構及身份證書所需組態檔
OrdererOrgs:
- Name: Orderer
Domain: example.com #域名
EnableNodeOUs: true
Specs:
- Hostname: orderer #hostname+Domain的值組成Orderer節點完整域名
SANS:
- localhostPeerOrgs:
- Name: Org1
Domain: org1.example.com #完整域名:peer0.org1.example.com
EnableNodeOUs: true #在msp下生產config.yaml檔案
Template:
Count: 1 #指定節點數量
SANS:
- localhost
Users:
Count: 1 #指定用戶數PeerOrgs:
- Name: Org2
Domain: org2.example.com
EnableNodeOUs: true
Template:
Count: 1
SANS:
- localhost
Users:
Count: 1
4.config.tx : 生產創世區塊(GenesisBlock)與通道(Channel)所需組態檔,如指定orderer服務的相關配置,以及當前的聯盟資訊、聯盟中所屬包含的組織資訊,這些資訊的配置被定義在該檔案中,
configtx檔案主要用于生成創世區塊、創建通道配置交易和創建錨節點更新配置交易(配置交易是Fabric中交易的一種,它可以被order節點決議并用來配置order節點),
configtx.yaml檔案分為幾大section:Organizations, Capabilities, Application, Orderer, CHANNEL, Profile,
##################################################################
# Section: Organizations
##################################################################
Organizations: #指定OrdererOrg和PeerOrg的權限資訊
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: ../organizations/ordererOrganizations/example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Writers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Admins:
Type: Signature
Rule: "OR('OrdererMSP.admin')"
OrdererEndpoints:
- orderer.example.com:7050
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: ../organizations/peerOrganizations/org1.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
Writers:
Type: Signature
Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
Admins:
Type: Signature
Rule: "OR('Org1MSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('Org1MSP.peer')"
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: ../organizations/peerOrganizations/org2.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org2MSP.admin', 'Org2MSP.peer', 'Org2MSP.client')"
Writers:
Type: Signature
Rule: "OR('Org2MSP.admin', 'Org2MSP.client')"
Admins:
Type: Signature
Rule: "OR('Org2MSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('Org2MSP.peer')"##################################################################
# SECTION: Capabilities
#Capabilities配置段,capability直接翻譯是能力,這里可以理解為對Fabric網路中組件版本的控制, 通過版本進而控制相應的特性,新更新的特性舊版本的組件不支持, 就可能無法驗證或提交transaction從而導致不同版本的節點上有不同的賬本,因此使用Capabilities來使不支持特性的舊組件終止處理transaction直到其更新升級Channel表示orderers和peers同時都要滿足,Orderer只需要orderers滿足,Application只需要peers滿足即可,
##################################################################
Capabilities: #指定通道的權限資訊
Channel: &ChannelCapabilities
V2_0: true //通道版本號
Orderer: &OrdererCapabilities
V2_0: true //orderer版本
Application: &ApplicationCapabilities
V2_0: true //應用版本
##################################################################
# SECTION: Application 應用程式
#Application配置段用來定義要寫入創世區塊或配置交易的應用引數,
# Application配置段,一些和應用有關的將會編進創世區塊或配置transaction的應用相關的引數,其中 organizations:在此處不進行配置,在后面profiles配置段中,根據需要生成的檔案型別進行配置,##################################################################
Application: &ApplicationDefaults #指定初始加入通道的組織
Organizations:
Policies: # 定義本層級的應用控制策略
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
LifecycleEndorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
Endorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
Capabilities:
<<: *ApplicationCapabilities
##################################################################
# SECTION: Orderer 排序節點
#Orderer配置段用來定義要編碼寫入創世區塊或通道交易的排序節點引數,
##################################################################
Orderer: &OrdererDefaults #指定Orderer節點的資訊
OrdererType: etcdraft //排序演算法
Addresses:
- orderer.flight.com:7050 //排序節點地址與埠號
EtcdRaft: //raft共識配置
Consenters:
- Host: orderer.flight.com
Port: 7050
ClientTLSCert: ../organizations/ordererOrganizations/flight.com/orderers/orderer.flight.com/tls/server.crt //客戶端TLS認證路徑
ServerTLSCert: ../organizations/ordererOrganizations/flight.com/orderers/orderer.flight.com/tls/server.crt //服務器端TLS認證路徑
BatchTimeout: 2s //批處理超時時間
BatchSize: //與訊息相關的批處理大小
MaxMessageCount: 10 //一個區塊最大交易數
AbsoluteMaxBytes: 99 MB //一個區塊最大位元組數
PreferredMaxBytes: 512 KB //一個區塊的建議位元組數(若超過,放入更大的區塊)
Organizations:
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
BlockValidation: //塊驗證條件
Type: ImplicitMeta
Rule: "ANY Writers"
##################################################################
# CHANNEL 通道部分 本節定義了將代碼編碼為與通道相關的引數的配置事務或生成塊的值,
##################################################################
Channel: &ChannelDefaults # 定義本層級的通道訪問策略
Policies:
Readers: //可以invoke “deliver”API的
Type: ImplicitMeta
Rule: "ANY Readers"
Writers: //可以invoke “broadcast”API的
Type: ImplicitMeta
Rule: "ANY Writers"
Admins: # 默認情況下,誰可以在此配置級別上修改元素
Type: ImplicitMeta
Rule: "MAJORITY Admins"
Capabilities: # Capabilities配置描通道層級的能力需求,這里直接參考
<<: *ChannelCapabilities
##################################################################
# Profile# 自定義配置部分
# profiles配置段相當于configtxgen工具的統一入口,通過設定不同的configtxgen -profile引數決定要使用 configtxgen生成什么檔案,profiles配置段通過使用上面準備好的配置段來根據需要配置不同的檔案(雖然可以顯示配置但是最好采用參考默認配置的方式,有封裝的意思),
##################################################################
Profiles: //這個部分按照專案角色來更改
TwoOrgsApplicationGenesis: #組織定義識別符號,可自定義,命令中的 -profile引數二者要保持一致
<<: *ChannelDefaults # 參考為 ChannelCapabilities 的屬性
Orderer: # 配置屬性,系統關鍵字,不能修改
<<: *OrdererDefaults # 參考為 OrdererDefaults 的屬性
Organizations:
- *OrdererOrg # 參考為 OrdererOrg 的屬性
Capabilities:
<<: *OrdererCapabilities
Consortiums: # 定義了系統中包含的組織
SampleConsortium:
Organizations: # 系統中包含的組織
- *Org1 # 參考了下文包含的配置
- *Org2
TwoOrgsChannel: # 通道定義識別符號,可自定義
Consortium: SampleConsortium
<<: *ChannelDefaults
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
Capabilities:
<<: *ApplicationCapabilities
configtxgen --help
# 輸出創始塊區塊檔案的路徑和名字
`-outputBlock string`
# 指定創建的channel的名字, 如果沒指定系統會提供一個默認的名字.
`-channelID string`
# 表示輸通道檔案路徑和名字
`-outputCreateChannelTx string`
# 指定組態檔中的節點
`-profile string`
# 更新channel的配置資訊
`-outputAnchorPeersUpdate string`
# 指定所屬的組織名稱
`-asOrg string`
生成創始塊檔案,其中-profile后面對應的是我們在前面組態檔中所定義的名稱,-outputBlock指定生成的創世塊檔案路徑以及名稱,-channelID為通道的名稱(通道的名稱隨意起,但是注意要與下面生成通道檔案時的通道名稱不同),使用以下命令在當前目錄下的channel-artifacts目錄下得到一個檔案genesis.block,
configtxgen -profile TwoOrgsApplicationGenesis -outputBlock ./channel-artifacts/genesis.block -channelID fabric-channel
生成通道檔案,其中-profile后面對應的是我們在前面組態檔中所定義的名稱,-outputBlock指定生成的通道檔案路徑以及名稱,-channelID 為通道的名稱,通道的名稱隨意起,但是注意要與上面生成創世塊檔案時的通道名稱不同),使用以下命令在當前目錄下的channel-artifacts目錄下得到一個檔案channel.tx,
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
生成錨節點更新檔案,其中-profile后面對應的是我們在前面組態檔中所定義的名稱,-outputBlock指定生成的錨節點檔案路徑以及名稱,-channelID為通道的名稱(要與上面生成通道檔案時的通道名稱相同),使用以下命令在當前目錄下的channel-artifacts目錄下得到一個檔案Org1MSPanchors.tx,
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/413967.html
標籤:區塊鏈
下一篇:區塊鏈能夠應用在哪些行業
