Hyperledger Fabric 核心模块configtxgen工具
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Fabric 核心模块configtxgen工具相关的知识,希望对你有一定的参考价值。
1. 说明
专门负责生成系统的创始块和通道Channel的创始块 。
- order 模块的genesis block创始块
- channel 模块的 channel configuration transaction;
channel transaction 用于在通道创建的时候广播给排序节点。 - 两个 anchor peer transaction
anchor peer transaction 制定了每个组织在通道上的锚节点
2.configtx.yaml 配置文件
configtx.yaml配置文件用来定义相关的属性。
- 文件路径是 $GOPATH/src/github.com/hyperledger/fabric/sampleconfig
- 修改文件内容可修改相关属性
- 改完后要生效得copy到Orderer 节点相关的文件夹中(创始块文件提供给 Orderer 节点使用 )
2.1 配置文件格式
configtxgen模块的配置文件包括Fabric系统初始块、channel初始块文件等信息。
eg.
Profiles:
#以下部分定义了整个系统配置信息
# TestTwoOrgsOrdererGenesis是组织定义表示符,可以自定义,这个也是命令中的-profile参数对应参数
TestTwoOrgsOrdererGenesis:
#orderer配置属性,这个标识不能自定义,属于系统关键词
Orderer:
#这个表示引用下面OrdererDefaults的属性
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
#定义了系统中包含的组织
Consortiums:
SampleConsortium:
#系统中包含的组织
Organizations:
- *Org1 #引用下文定义的配置
- *Org2
#通道配置信息
#通道定义标识符,可以自定义
TestTwoOrgsChannel:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults #引用下文的Application定义
Organizations:
- *Org1
- *Org2
#order节点相关的配置
Organizations:
- &OrdererOrg #order节点配置信息
Name: OrdererOrg #order节点名称
ID: OrdererMSP #orderer节点编号,orderer.yaml的 LocalMSPID必须要和这个ID相同
#MSP文件夹路径
MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/ordererOrganizations/simple-network.com/msp
- &Org1
Name: Org1MSP #组织名称
ID: Org1MSP #组织编号
MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/peerOrganizations/org1.simple-network.com/msp #组织MSP文件名
AnchorPeers: #组织的锚点信息
- Host: peer0.org1.simple-network.com
- Port: 7051
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: /home/zym/fabric-ws/simple-demo/crypto-config/peerOrganizations/org2.simple-network.com/msp
AnchorPeers:
- Host: peer0.org2.simple-network.com
- Port: 7051
#orderer节点的配置信息
Orderer: &OrdererDefaults
#orderer节点的共识方法
OrdererType: solo
#orderer的监听地址
Addresses:
- orderer.simple-network.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 98 MB
PreferredMaxBytes: 512 KB
#kafka相关配置
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Application: &ApplicationDefaults
Organizations:
3. 运行命令参数
Usage of configtxgen:
- asOrg string #所属组织,也就是为某个特定组织生成配置
- channelID string #channel名称,如果不指定默认是"testchainid"
- inspectBlock string #打印指定区块文件中配置内容
- inspectChannelCreateTx string #打印指定创建通道交易的配置文件
- outputAnchorPeersUpdate string #生成一个更新锚点的更新channel配置信息
- outputBlock string #输出区块文件路径
- outputCreateChannelTx string #指定一个路径,来生成channel配置文件
- profile string #配置文件中的节点,用于生成相关配置文件,默认是 “SampleInsecureSolo”)
- version #显示版本信息
4. 应用场景
创建orderer的初始快
#TestTwoOrgsOrdererGenesis要个配置文件中的配置选项对应
configtxgen -profile TestTwoOrgsOrdererGenesis -outputBlock ./orderer.genesis.block
生成创建channel的提案文件
configtxgen -profile TestTwoOrgsChannel -outputCreateChannelTx ./testchannel.tx
-channelID testchannel
创建锚点更新文件
#创建Org1MSP组织锚点更新文件
configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx
-channelID testchannel -asOrg Org1MSP
#创建org2MSP组织锚点更新文件
configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx
-channelID testchannel -asOrg Org2MSP
依据配置SampleSingleMSPSoloV1_1将通道orderer-system-channel的创世块写入文件genesis_block.pb
~$ configtxgen -outputBlock genesis_block.pb -profile SampleSingleMSPSoloV1_1
-channelID orderer-system-channel
依据配置Sam跑了Sin过了MSPChannelV1_1将通道创建交易写入文件create_chan_tx.pb
~$ configtxgen -outputCreateChannelTx create_chan_tx.pb -profile
SampleSingleMSPChannelV1_1 -channelID application-channel-1
在屏幕以JSON格式显示名为genesis_block.pb的创世块的内容
~$ configtxgen -inspectBlock genesis_block.pb
在屏幕以JSON格式显示通道创建交易文件create_chan_tx.pb的内容
~$ configtxgen -inspectChannelCreateTx create_chan_tx.pb
基于configtx.yaml中的参数(例如MSPDir)构造一个组织定义,并在屏幕以 JSON格式显示
~$ configtxgen -printOrg Org1
将配置更新交易写入文件anchor_peer_tx.pb,该交易为配置SampleSingleMSPChannelV1_1 中的组织Org1设置锚节点
~$ configtxgen -outputAnchorPeersUpdate anchor_peer_tx.pb -profile
SampleSingleMSPChannelV1_1 -asOrg Org1
以上是关于Hyperledger Fabric 核心模块configtxgen工具的主要内容,如果未能解决你的问题,请参考以下文章
Hyperledger Fabric 核心模块configtxgen工具
Hyperledger Fabric 核心模块Fabric-ca-server
Hyperledger Fabric 核心模块Fabric-ca-client
Hyperledger Fabric 核心模块orderer 共识