cryptogen 超级账本的实用工具

cryptogen是Hyperledger Fabric提供的为网络实体生成加密材料(公私钥、证书等)的实用程序。这些证书代表一个身份,并允许在网络实体间通信和交易时进行签名和身份认证。

cryptogen使用一个包含网络拓扑的crypto-config.yaml文件,为文件中定义的组织和属于这些组织的实体生成一组证书和密钥。每个组织都配置了唯一的根证书(ca-cert),并包含了特定实体(peers和orders),这就形成了一种典型的网络结构——每个成员都有所属的CA。Hyperledger Fabric网络中的交易和通信都使用实体的私钥签名,使用公钥验证。

1 编译生成cryptogen工具

cryptogen源码在fabric/common/tools/cryptogen/中,是一个独立的可执行程序。

生成cryptogen可执行程序有两种方式。

1)在fabric/下执行make cryptogen,如果正常执行,则会在fabric/build/bin/下生成可执行文件cryptogen。

2)直接在fabric/common/tools/cryptogen/下执行go build。

2 cryptogen命令说明

执行cryptogen–help-long命令显示如下信息。

cryptogen [] [ …]

(1)超级账本密钥证书生成工具选项

·–help——显示帮助文档;

·–help-long——显示详细的帮助文档。

(2)命令

help […]

1)显示帮助文档。

generate []

2)生成密钥证书。

·–config——指定配置文件,如果不指定,则使用默认配置(即cryptogen showtemplate中的内容);

·–output——生成密钥证书的目录,默认为crypto-config。

3)showtemplate——显示配置模版。

4)version——显示版本信息。

最常用的命令语法是:

cryptogen generate –config=./crypto-config.yaml

根据crypto-config.yaml文件的配置,生成组织信息及其密钥证书等,保存在crypto-config目录下。

3 crypto-config.yaml文件解析

Crypto-config.yaml是cryptogen工具使用的配置文件,cryptogen工具根据该配置文件生成加密材料。但该文件名字并非固定,也可自定义,只需在cryptogen generate命令中指定对应文件即可。

下面我们分析一下该文件的内容:

# ——————————————————————————# “OrdererOrgs” —— 定义排序服务节点的组织# ——————————————————————————OrdererOrgs: # ————————————————————————— # 排序服务节点的名称和域名 # ————————————————————————– – Name: Orderer Domain: example.com # ————————————————————————— # “Specs” —— 手动定义节点名称,命名规范是:{{.Hostname}}.{{.Domain}} # —— 如果没有定义CommonName,自动生成的节点名称是:orderer.example.com # —— 如果定义了CommonName,就以CommonName为准 # —— Hostname可以定义多个 # ————————————————————————— Specs: – Hostname: orderer # CommonName: order.example.net# ——————————————————————————# “PeerOrgs” —— 定义Peer节点的组织# ——————————————————————————PeerOrgs: # ————————————————————————— # 组织Org1的配置 # ————————————————————————— – Name: Org1 Domain: org1.example.com # ————————————————————————— # “CA” —— 默认会生成的名称:ca.{{.Domain}} # ————————————————————————— # CA: # Hostname: ca # ————————————————————————— # “Template” —— 按模版生成Peer节点MSP证书 # —— 默认生成的Peer节点名称:peer{{.Index}}.{{.Domain}} # —— Index是从Start到Count-1,Start默认是0 # —— Hostname可以自定义节点名称规则 # ————————————————————————— Template: Count: 2 # Start: 5 # Hostname: {{.Prefix}}{{.Index}} # ————————————————————————— # “Users” —— 默认生成的用户数:User1@{{.Domain}},User2@{{.Domain}} # —— 默认生成1个管理员:Admin@{{.Domain}} # ————————————————————————— Users: Count: 1 # ————————————————————————— # 组织Org2的配置 # ————————————————————————— – Name: Org2 Domain: org2.example.com Template: Count: 2 Users:

Count: 1

按照以上文件定义的内容,使用cryptogen generate命令生成的文件目录结构。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享