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 共识

Hyperledger Fabric 核心模块configtxlator工具

Hyperledger Fabric 核心模块cryptogen 工具