搭建Fabric网络:生成组织结构与身份证书

自动化脚本 byfn.sh 可以自动帮我们创建网络环境运行时所需的所有内容,但在一些特定情况之下,我们根据不同的需求需要自定义一些设置。

现在,我们来实现最重要的环节,哪些配置文件的相关设置会影响创建 Hyperledger Fabric 网络环境运行时所需要的相应内容。

3.1.1 与组织结构及身份证书关联的配置文件

如果要生成 Hyperledger Fabric 网络环境中所需的组织结构及身份证书信息,组织中的成员提供节点服务,相应的证书代表身份,可以在实体间进行通信以及交易时进行签名与验证。生成过程依赖crypto-config.yaml 配置文件,该配置文件路径 :fabric-samples/first-network/crypto-config.yaml

crypto-config.yaml 配置文件包含如下内容:

区块链技术QQ交流群:263270946 掌握更多技术干货,关注微信公众号“ChainDesk”

该配置文件指定了 OrdererOrgs 及 PeerOrgs 两个组织信息。在 PeerOrgs 配置信息中指定了 Org1 与 Org2 两个组织。每个组织使用 Template 属性下的 Count 指定了两个节点, Users 属性下的 Count 指定了一个用户。

组织信息中还包含组织名称、域名、节点数量、及新增的用户数量等相关信息。

Peer 节点的域名组成为 peer + 起始数字0 + Domain,如 Org1 中的两个 peer 节点的完整域名为:

peer0.org1.example.com,peer1.org1.example.com。

3.1.2 如何生成组织结构及身份证书

下面我们来实现组织结构及身份证书的生成。在 Hyperledger Fabric 中提供了一个工具 cryptogen ,该工具根据指定的配置文件实现标准化自动生成。执行过程如下:

区块链技术QQ交流群:263270946 掌握更多技术干货,关注微信公众号“ChainDesk”

证书和密钥(即MSP材料)将被输出到当前一个名为 crypto-config 的目录中,该目录下有两个子目录:

ordererOrganizations 子目录下包括构成 Orderer 组织(1个 Orderer 节点)的身份信息

peerOrganizations 子目录下为所有的 Peer 节点组织(2个组织,4个节点)的相关身份信息. 其中最关键的是 MSP 目录, 代表了实体的身份信息

Cryptogen 工具按照配置文件中指定的结构生成了对应的组织和密钥、及相关的证书文件

生成的 crypto-config 的完整结构如下:

区块链技术QQ交流群:263270946 掌握更多技术干货,关注微信公众号“ChainDesk”

在生成的目录结构中最关键的是各个资源下的 msp 目录内容,存储了生成的代表 MSP 实体身份的各种证书文件,一般包括:

admincerts :管理员的身份证书文件

cacerts :信任的根证书文件

keystore :节点的签名私钥文件

signcerts :节点的签名身份证书文件

tlscacerts::TLS 连接用的证书

intermediatecerts (可选):信任的中间证书

crls (可选):证书撤销列表

config.yaml (可选):记录OrganizationalUnitldentifiers 信息,包括根证书位置和ID信息

这些身份文件随后可以分发到对应的Orderer 节点和Peer 节点上,并放到对应的MSP路径下,用于签名验证使用。

FAQ

组织结构中可以添加新的组织吗?

生成组织结构前,可以通过 crypto-config.yaml 配置文件指定具体的组织信息,如果是多个组织,只需要在该配置文件中 PeerOrgs 节点最后添加新的组织信息即可。

Org 组织中可以指定多个 Peer 节点吗?

可以指定多个节点,只需要修改 Template 下的 Count 值即可(该值代表组织下有几个节点)。

组织结构生成之后可以随时添加或修改吗?

目前,Hyperledger Fabric 无法对已生成的组织结构进行修改;所以需要提前做好规划。在未来会支持对组织结构的节点进行动态修改。

本文由 区块链技术网 作者:区块链 发表,其版权均为 区块链技术网 所有,文章内容系作者个人观点,不代表 区块链技术网 对观点赞同或支持。如需转载,请注明文章来源。

发表评论