cryptogen模块

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

1.cryptogen模块命令说明

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

blob.png

cryptogen模块一共有4个命令,这4个命令及其作用如下所示:

·help:显示帮助信息。

·generate:根据配置文件生成证书信息。

·showtemplate:显示系统默认cryptogen模块配置文件信息。

·version:显示当前模块的版本号。

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

2.cryptogen模块的配置文件

cryptogen模块的配置文件用来描述需要生成的证书文件的特性,比如:有多少个组织,有多少个节点,需要多少个账号等。这里我们通过一个cryptogen模块配置文件的具体例子来初步了解配置文件的结构,该例子是Fabric源代码中自带的示例,其详细路径如下所示:

blob.png

该示例的内容和相关节点的注释如下所示:

blob.png

blob.png

上述模板文件定义了一个orderer节点,这个orderer节点的名字为orderer,orderer节点的根域名为example.com,主机名为orderer。模板文件同时定义了两个组织,两个组织的名字分别为org1和org2,其中组织org1包含了2个节点和1个用户,组织org1包含2个节点和1个用户。

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

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

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

blob.png

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

blob.png

blob.png

在测试环境中域名可以随便定义的,但是在正式的生产环境中,域名最好选择已经通过备案的,如果域名没有备案,需要让机房的防火墙把没有备案的域名放到白名单中。

·生成证书文件

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

blob.png

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

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

blob.png

tree工具是Linux系统中的常用命令,可以显示文件夹中文件的层次结构,在管理和维护类Linux系统的时候非常方便。关于tree工具的详细介绍,可以参考本书的第2章(tree命令及安装

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

blob.png

blob.png

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

4.Fabric证书文件的结构

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

blob.png

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

blob.png

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

注意 上述的节点是指组中的peer节点。

进入文件夹org1.qklszzn.com执行命令tree-L 5显示如下:

blob.png

blob.png

blob.png

cryptogen模块生成的证书是Fabric系统的重要组成部分,是所有Fabric系统的开始,在后面的案例中将详细地向读者介绍这些证书的作用。

868区块链学习网为您整理《cryptogen模块》仅供参考。