【超級賬本】cryptogen 與 configtxgen 模塊介紹(三)

小生凡一 2021-08-15 11:16:02 阅读数:380

本文一共[544]字,预计阅读时长:1分钟~
cryptogen configtxgen

1. cryptogen模塊

配置文件以及證書生成

1.1 命令介紹

cryptogen --help 命令幫助
cryptogen showtemplate --help 子命令幫助

請添加圖片描述

  • yaml格式介紹
  1. 大小寫敏感
  2. 使用縮進錶示層級關系(縮進的空格數不重要,只要相同層級的元素左對齊即可)
  3. '#'錶示注釋
  4. 進不允許使用tab建,只能使用空格鍵
  • yaml文件使用
  1. 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會自動在前面加peer0peer1按順序這樣的二級域名,可以互換使用 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

注意:

  • 節點的idname最好保持一致
  • 錨節點只能有一個
  • key: value :和value之間是有空格,不然是不對的,正確的話顏色會變的
  • Host: peer1.example.com 和 Port: 7051中 hostport對齊

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

請添加圖片描述

最後

小生凡一,期待你的關注。

版权声明:本文为[小生凡一]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815111544774v.html