详解 cryptogen 的内容和配置

目录

1. cryptogen 模块命令说明

2 . cryptogen 模块的配置文件

3. cryptogen 实例:创建测试配置文件

4. Fabric 证书文件的结构


          cryptogen 模块主要用来生成组织结构和账号相关的文件, 任何 Fabric 系统的开发通常都是从 cryptogen 模块开始的 。 在 Fabric 项目中,当系统设计完成之后第一项工作就是根据系统的设计来编写 cryptogen 的配置文件,然后通过这些配置文件生成相关的证书文件 。cryptogen 模块所使用的配置文件是整个 Fabric 项目的基石 。 下面我们将介绍 cryptogen 模块命令行选项及其使用方式 。


1. cryptogen 模块命令说明


         cryptogen 模块是通过命令行的方式运行的,一个 cryptogen 命令由命令行参数和配置文
件两部分组成,通过执行命令 cryptogen --help 可以显示 cryptogen 模块的命令行选项,执行
结果如下所示 :

usage : cryptogen []  [ . . ]
Utility for generating Hyperledger Fabr 工 C key material
Flags :
--help
Commands :
help
generate
showtemplate
version

 解释:

  • help : 显示帮助信息 。
  • generate :根据配置文件生成证书信息 。
  • showtemplate :显示系统默认 cryptogen 模块配置文件信息 。
  • version : 显示 当前模块的版本号 。

其中 generate 命令选项是用来根据配置文件生成 Fabric 系统相关的证书文件 。

2 . cryptogen 模块的配置文件

        cryptogen 模块的配置文件用来描述需要生成的证书文件的特性,比如 : 有多少个组织,
有多少个节点,需要多少个账号等 。

        这里我们通过一个 cryptogen 模块配置文件的具体例子来初步了解配置文件的结构,该例子是 Fabric 源代码中自带的示例,其详细路径如下所示:
https://github.com/hyperledger/fabric/blob/release/examples/e2e_cli/crypto-config.yaml

OrdererOrgs                    //定义orderer 节点
- Name · Orderer                //orderer 节点的名称
    Domain : example.com        //orderer 节点的根域名
    Specs :    
          - Hostname : orderer        //orderer节点的主机名
PeerOrgs :
- Name : Orgl                         //组织1 的名称
    Domain: orgl.exarnple.com        //组织1 的根域名
    Template :
        Count :2                      //组织1 的节点数目
    Users :
        Count : 3                    //组织1 中的用户数目
- Name : Org2
    Domain : org2.example.com
    Template :
        Count : 2
    Users :
        Count : 1

        除了 Fabric 源码中提供的例子,还可以通过命令 cryptogen showtempl ate 获取默认的模
板文件,在实际项目中稍加修改这些默认的模板文件即可使用 。

3. cryptogen 实例:创建测试配置文件

  • 创建测试配置文件

        现在我们通过一个例子来具体演示 cryptogen 模块的使用 。 我们将定义一个测试用的 Fabric 系统,首先给整个系统定义 一个根域名 qklszzn.com o orderer 节点我们命名为Orderer , 在该测试系统中我们假设有三个组织,分别命名为 org1, org2, org3 。 其中组织org1 包 含 4 个节点和 6 个用户,组织 org2 包含 5 个节点和 l l 个用户,组织 org3 包含 3 个节点和 13 个用户 。 我们将测民用 Fabric 系统的相关信息如表 5-2 和表 5-3 所示 。

详解 cryptogen 的内容和配置_第1张图片

        根据上述 Fabric 系统的基本信息,我们可以编写 cryptogen 模块用的配置文件,配置文
件的内容如下所示:

OrdererOrgs :
    - Name : Orderer
        Domain: qklszzn.com
        Specs :
            - Hostname : orderer
PeerOrgs :
    - Name : Orgl
    Domain : orgl.qklszzn.com
    Template :
        Count : 4
    Users
        Count : 6
    - Name · Org2
        Domain : org2.qklszzn.com
    Template :
        Count: 5
    Users :
        Count : 11
    -Name : Org3
        Domain : org3.qklszzn.com
    Template :
            Count : 3
    Users :
            Count 13
  • 生成证书文件

我们通过 cryptogen 模块的 generate 命令可以生成相关的证书文件 。 命令如下所示 :
 

cryptogen generate --config=/opt/hyperledger/fabricconfig/crypto-config . yaml   --output /opt/hyperledger/fabricconfig/crypto-config

        /opt/hyperledger/fabricconfig 是证 书文件存放目录,也可以是任何具有读写权限的文件夹,但是需妥提前创建。

 进入 /opt/hyperledger/fabricconfig/crypto -config 文件夹之后有两个子文件夹,通过命令
tree -L 2 显示如下:

 命令执行成功之后,进入 ordererOrganizations 子文件夹 , 然后通过命令 tree -L4 显示如下:

详解 cryptogen 的内容和配置_第2张图片

          在实际的开发中 orderer 节点的这些证书其实不需妥直接使用,只是在 orderer节点启动时指明项目的位直即可,在下文关于 orderer 节,点的配直环节中将详细描述如何配直这些证书文件 。

4. Fabric 证书文件的结构
 

          cryptogen 模块生成的证书文件就是 Fabric 系统运行所需要的证书文件,接下来我们将
详细介绍这些证书文件的种类和作用 。 进入文件夹 peerOrganizations 后执行命令 tree -L 1,
命令结果如下所示:

 通过上述命令结果我们可以发现,在文件夹 peerOrganizations 中包含三个子文件,从这三个子文件夹的命名可以发现它们分别对应前面配置文件中定义的三个组织(可以参考表 5 -3 的相关容)。文件夹 peerOrganizations 中的三个子文件夹和表 5 -3 中描述的组织对应关系如表 5 -4 所示 。

详解 cryptogen 的内容和配置_第3张图片

         由于存放这三个组织的文件夹的结构都是一样的,下面我们以组织 orgl 为例来说明这些文件的作用 。 由于 orgl 的用户和节点比较多,但是相同的节点和用户的配置是一样,所以示例中我们只保留一个节点和一个用户的配置信息 。

进入文件夹 orgl .qklszzn.com 执行命令 tree -L 5 显示如下:
详解 cryptogen 的内容和配置_第4张图片

 详解 cryptogen 的内容和配置_第5张图片

         Cryptogen 模块生成的证书是 Fabric 系统的重要组成部分,是所有 Fabric 系统的开始 。

你可能感兴趣的:(hyperledger,fabric,fabric,区块链)