目录
1. cryptogen模块
1.1 命令介绍
1.2 生成证书
1.2.1 生成模板配置文件
1.2.2 生成证书
2. configtxgen模块
2.1 configtxgen命令介绍
2.2 修改配置文件
2.3 配置信息介绍
2.4 生成创世块
2.5 生成通道文件
2.6 更新锚节点
最后
1. cryptogen模块
配置文件以及证书生成
1.1 命令介绍
cryptogen --help 命令帮助 cryptogen showtemplate --help 子命令帮助
yaml格式介绍
大小写敏感
使用缩进表示层级关系(缩进的空格数不重要,只要相同层级的元素左对齐即可)
'#'表示注释
进不允许使用tab建,只能使用空格键
yaml文件使用
key:对象值表达方式
name: zhiliao age: 18 # key:数组,-后面有个空格 subject: - math - chinese - eng
配置信息介绍–yaml格式
OrderOrgs:# order组织配置项,有多个,所以是数据 Name:组织名称 Domain:根域名 Specs -Hostname:二级域名 e.g.:orderer.example.com PeerOrgs:# peer组织配置项 Name:组织名字 Domain EnableNode0Us:是不是支持node.js Template:模板 Count:生成的peer节点数(2个的话,peer0.根域名,peer1.根域名) Users:创建的普通用户,管理员会自动生成 Count:用户数
Specs和Template的区别:
specs可以指定二级域名
Template会自动在前面加peer0,peer1按顺序这样的二级域名,可以互换使用 peer0.org1.example.com
1.2 生成证书
1.2.1 生成模板配置文件
指令
cryptogen showtemplate > conf.yaml
修改conf.yaml文件
修改成如下形式
1.2.2 生成证书
根据前面生成的模板配置文件生成证书
指令
cryptogen generate --help cryptogen generate 如果不指定参数则会使用默认的配置 cryptogen generate --config conf.yaml
指定刚刚修改的conf.yaml的文件,于是就会生成两个结点的证书了。
然后可以看见目录多出了一个crypto-config文件
进去就能看见这些结点的信息了。
2. configtxgen模块
创世块和通道文件的生成
2.1 configtxgen命令介绍
configtxgen --help
2.2 修改配置文件
配置文件已存在,叫configtx.yaml,文件名字不能修改,因为configtxgen命令没有指定配置文件的参数,使用默认的
配置文件路径:sampleconfig/configtx.yaml
拷贝配置文件到自己的目录下
2.3 配置信息介绍
我的配置信息是这样的,每个人的可能会由于上面的配置文件的不同而不同
但是如果你是按照我上面的进行配置的话,那可以直接复制了~
my_yaml/configtx.yaml
Organizations: # orderer 组织 - &OrdererOrg # & 取地址 组织名称 Name: OrdererMSP # 组织名称 ID: OrdererMSP # MSP id MSPDir: crypto-config/ordererOrganizations/orderer.com/msp # msp路径 # 无需设置锚节点 # peer 组织, 下面两个锚节点 - &Org1 Name: Org1MSP ID: Org1MSP MSPDir: crypto-config/peerOrganizations/org1.example.com/msp AnchorPeers: # 锚节点 - Host: peer0.org1.example.com # 组织下任意节点,选为锚节点 Port: 7051 - &Org2 Name: Org2MSP ID: Org2MSP MSPDir: crypto-config/peerOrganizations/org2.example.com/msp AnchorPeers: - Host: peer0.org2.example.com Port: 7051 Orderer: &OrdererDefaults # 不用改,使用默认即可 OrdererType: solo # 共识机制类型,solo和kafka Addresses: # 排序节点的域名 - orderer.example.com:7050 # 域名:端口号,默认是7050 BatchTimeout: 2s # 批次,多长时间产生新的区块 BatchSize: # 批次大小 MaxMessageCount: 100 #交易的最大数量,达到后产生新的区块,100条左右 AbsoluteMaxBytes: 64 MB # 数据量达到后产生新的区块,32或64MB左右 PreferredMaxBytes: 512 KB #建议的交易数值大小,512KB即可 MaxChannels: 0 # 最大通道数 Kafka: # kafka信息 # Brokers: A list of Kafka brokers to which the orderer connects. # NOTE: Use IP:port notation Brokers: - 127.0.0.1:9092 # Organizations is the list of orgs which are defined as participants on # the orderer side of the network. Organizations: ################################################################################ Application: &ApplicationDefaults # Organizations is the list of orgs which are defined as participants on # the application side of the network Organizations: Profiles: # 创世块命令的配置 GenGenesis: Orderer: # Orderer配置项 <<: *OrdererDefaults Organizations: # orderer组织 - *OrdererOrg # orderer组织引用 Consortiums: # 联盟 SampleConsortium: # 这个可以改,下面Consortium的值也要着改 Organizations: # peer节点组织 - *Org1 - *Org2 # 通道命令配置 GenChannel: # 可以改生成通道的命令名字 Consortium: SampleConsortium # 和上面Consortiums 下面的SampleConsortium保持一致 Application: <<: *ApplicationDefaults Organizations: # peer节点 - *Org1 - *Org2
注意:
节点的id和name最好保持一致
锚节点只能有一个
key: value :和value之间是有空格,不然是不对的,正确的话颜色会变的
Host: peer1.example.com 和 Port: 7051中 host和port对齐
2.4 生成创世块
由于是在win下写的,所以我们要把这个东西传到linux下面。还是使用xftp6
一定要设置环境变量
设置FABRIC_CFG_PATH=$PWD
然后让环境生效
进入存放configtx.yaml配置文件的路径
生成创世块命令:
configtxgen -profile GenGenesis(配置文件中profiles下的创世块命令) -outputBlock ./genesis.block(存放文件的路径,后缀为.block)
configtxgen -profile GenGenesis -outputBlock ./genesis.block
就可以看到这创世块genesis.block文件了
2.5 生成通道文件
进入存放configtx.yaml配置文件的路径
channelID: 使用小写 configtxgen -profile GenChannel(配置文件中profiles下的通道命令) -channelID fanonechannel -outputCreateChannelTx ./channel.tx(存放文件的路径,后缀为.tx)
然后我们就可以看到这个channel.tx文件了。
2.6 更新锚节点
进入存放configtx.yaml配置文件的路径
configtxgen -profile GenChannel(这里是通道的命令) -- channelID zlktChannel(所属哪个通道) -asOrg (配置文件中peer节点设置的组织名字,Name的名称) -outputAnchorPeersUpdate anchorPeers.tx(后缀是tx,名字最好和节点名字有关系,可能多个节点都会更新锚节点) e.g.: configtxgen -profile GenChannel -outputAnchorPeersUpdate ./Peer1OrgsAnchorUpdate.tx -asOrg Peer1 -channelID fanonechannel