超级账本cryptogen 与 configtxgen 模块介绍
Posted 小生凡一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超级账本cryptogen 与 configtxgen 模块介绍相关的知识,希望对你有一定的参考价值。
目录
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
命令 | 名称 |
---|---|
-asOrg | 组织名称 |
-channelID | channel的名字,不指定使用默认的testchainid |
-outputAnchorPeersUpdate | 更新peer锚节点的配置信息 |
-outputBlock | 输出创世块文件路径 |
-outputCreateChannelTx | 输出通道的文件路径 |
-profile | 指定配置文件中的节点 |
-inspectBlock | 在指定路径处打印块中包含的配置 |
-inspectChannelCreateTx | 在指定路径处打印交易中包含的配置 |
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
最后
小生凡一,期待你的关注。
以上是关于超级账本cryptogen 与 configtxgen 模块介绍的主要内容,如果未能解决你的问题,请参考以下文章