1. 相关配置文件介绍
- crypto-config.yaml,用于生成相关组织的私钥和证书
- configtx.yaml
- 对相关组织进行配置
- 配置orderer,用以生成orderer端初始化时所需的block(Genesis Block)
- 配置channel,用以生成创建channel时所需的tx文件
- core.yaml,peer端的配置文件
- orderer.yaml,orderer端的配置文件
- docker-compose.yaml,用以配置fabric网络的相关容器
下文中所有的配置文件解析,都以 fabric-samples/first-network 中的配置来解析,如果需要可以克隆仓库:fabric-samples
2. 私钥证书配置文件crypto-config.yaml
先来理解一下,私钥与证书的相关概念
- 使用公钥和私钥就是所谓的非对称加密方式
- 公钥:是公布出去的给别人使用的,可以被很多人获取。用来加密和验章
- 私钥:私钥只能自己持有,并且不可以被别人知道。用来解密和签章
- 证书:是为公钥做认证,为了使公钥真实可信,防止他人伪造公钥;证书颁发机构(CA)会用自己的私钥对用户的公钥和相关信息进行加密,生成“数字证书”,然后证书中心会公布自己的公钥给所有人,用来让别人使用此公钥验证“数字证书”是否由CA颁发,即是否真实可信。
Fabric 中会有两种类型的公私钥和证书
-
给节点之间通讯安全而准备的TLS证书
-
用户登录和权限控制的用户证书。
来看下first-network/crypto-config.yaml
中的配置信息
原始文件注释信息较多,下面我用自己的理解中文表示代替了原始的英文注释,之后的文件解析也会是这样
OrdererOrgs: ## 定义管理orderer节点的组织
- Name: Orderer ## 这个组织的名字叫 Orderer
Domain: example.com ## 这个组织的域名是 example.com
# 生成证书的时候,证书内会包含Name和Domain信息,orderer.example.com就是这个组织的地址
EnableNodeOUs: true ## 如果设置了 EnableNodeOUs ,就在msp下生成config.yaml文件
# 对于一个Spec来说,配置了CommonName,那么文件夹则命名为CommonName
# 如果没有配置CommonName,则文件名为:{
{.Hostname}}.{
{Domain}}
# 在下面的例子中,在 crypto-config/ordererOrganizations/example.com/orderers 目录下
# 则会产生两个文件orderer.test.com和orderer5.test.com,
# 如果没有加CommonName,则目录名为order.example.com与order5.example.comn
Specs:
- Hostname: orderer
CommonName: orderer.test.com
# - Hostname: orderer2
# - Hostname: orderer3
# - Hostname: orderer4
- Hostname: orderer5
CommonName: orderer5.test.com
PeerOrgs: ## 定义管理peer节点的组织
- Name: Org1