研究它的原因:
之前跑fabric都是用的默认给的证书、密钥、创世块、配置文件。现在想要完全从头搭自己的链,节点名称也要改。
开始错误操作:以为节点名称在docker-compose的配置文件设置就好,分别配合上相应的证书、私钥。但是在构建网络的过程中,创建通道出现问题,报错connect不上相应节点,在日志和容器中都能看出来证书和节点不匹配。
定位一下问题位置,既然docker配置没问题,网络结构的configtx也没问题,就应该是crypto-config.yaml的问题。
crypto-config.yaml:
分为两大部分,OrdererOrgs和PeerOrgs
- OrdererOrgs
Name:是Org的name
Domain:域名
Specs:细则
-Hostname:主机名
比如说一个orderer节点的全称是orderer.example.com,它的主机名是orderer,域名是example.com
这部分域名和主机名的更改都会在crypto-config目录下有所表示
docker-compose中定义的节点名称需要和Hostname.Domain一致
- PeerOrgs
Name:这个peerorg的name
Domain:域名
Specs:细则
- Hostname:主机名(自己起名)(和下面template不冲突,如果都设置了,就都生成,specs和template只有1个也可以)
Template:(定下数量、起始index,会默认peer+index当做主机名,然后生成count个数个peer (默认从0开始)“peer5 peer6”;如果同时也设置了Template.Hostname,那么结果会只有hostname那个,没有peer5 peer5...这些)
Count:2
Start:5
# Hostname:
Users:
Count:除Admin之外的用户账户数目
所以如果想要改变节点名称,就要更改相应的主机名和域名。并且docker-compose.yaml中名称要与之一致。