configtx.yaml是Hyperledger Fabric区块链网络运维工具configtxgen用于生成通道创世块或通道交易的配置文件,configtx.yaml的内容直接决定了所生成的创世区块的内容。本文将给出configtx.yaml的详细中文说明。
如果需要快速掌握Fabric区块链的链码与应用开发,推荐访问汇智网的在线互动教程:
Capabilities / 通道能力配置
Capabilities段用来定义fabric网络的能力。这是版本v1.0.0引入的一个新的配置段,当与版本v1.0.x的对等节点与排序节点混合组网时不可使用。
Capabilities段定义了fabric程序要加入网络所必须支持的特性。例如,如果添加了一个新的MSP类型,那么更新的程序可能会根据该类型识别并验证签名,但是老版本的程序就没有办法验证这些交易。这可能导致不同版本的fabric程序中维护的世界状态不一致。
因此,通过定义通道的能力,就明确了不满足该能力要求的fabric程序,将无法处理交易,除非升级到新的版本。对于v1.0.x的程序而言,如果在Capabilities段定义了任何能力,即使声明不需要支持这些能力,都会导致其有意崩溃。
Capabilities:
# Global配置同时应用于排序节点和对等节点,并且必须被两种节点同时支持。
# 将该配置项设置为ture表明要求节点具备该能力
Global: &ChannelCapabilities
V1_3: true
# Orderer配置仅应用于排序节点,不需考虑对等节点的升级。将该配置项
# 设置为true表明要求排序节点具备该能力
Orderer: &OrdererCapabilities
V1_1: true
# Application配置仅应用于对等网络,不需考虑排序节点的升级。将该配置项
# 设置为true表明要求对等节点具备该能力
Application: &ApplicationCapabilities
V1_3: true
Organizations / 组织机构配置
Organizations配置段用来定义组织机构实体,以便在后续配置中引用。例如,下面的配置文件中,定义了三个机构,可以分别使用ExampleCom、Org1ExampleCom和Org2ExampleCom引用其配置:
Organizations:
- &ExampleCom
Name: ExampleCom
ID: example.com
AdminPrincipal: Role.ADMIN
MSPDir: ./ordererOrganizations/example.com/msp
Policies:
Readers:
Type: Signature
Rule: OR('example.com.member')
Writers:
Type: Signature
Rule: OR('example.com.member')
Admins:
Type: Signature
Rule: OR('example.com.admin')
Endorsement:
Type: Signature
Rule: OR('example.com.member')
- &Org1ExampleCom
Name: Org1ExampleCom
ID: org1.example.com
MSPDir: ./peerOrganizations/org1.example.com/msp
AdminPrincipal: Role.ADMIN
AnchorPeers:
- Host: peer0.org1.example.com
Port: 7051
Policies:
Readers:
Type: Signature
Rule: OR('org1.example.com.member')
Writers:
Type: Signature
Rule: OR('org1.example.com.member')
Admins:
Type: Signature
Rule: OR('org1.example.com.admin')
Endorsement:
Type: Signature
Rule: OR('org1.example.com.member')
- &Org2ExampleCom
Name: Org2ExampleCom
ID: org2.example.com
MSPDir: ./peerOrganizations/org2.example.com/msp
AdminPrincipal: Role.ADMIN
AnchorPeers:
- Host: peer0.org2.example.com