作者:红红的累累vdHRC_958 | 来源:互联网 | 2023-07-25 13:17
搭建HyperledgerFabric时遇到了很多问题,很多坑,这里汇总一下,有些可能没保存图片,还有些问题没及时记录起来:1、生成orderer区块文件时,如下图所示:
搭建Hyperledger Fabric时遇到了很多问题,很多坑,这里汇总一下,有些可能没保存图片,还有些问题没及时记录起来:
1、生成orderer区块文件时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/d907dafeb7464484.jpeg)
必须要指定channelID修改命令如下即可:
configtxgen -profile TestTwoOrgsOrdererGenesis -channelID qkltestchannel -outputBlock ./order.genesis.block
2、创建orderer区块文件时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/5c84cc34c012df15.jpeg)
原因:OrdererDefaults引用不到,百度了一下,参考文章:https://blog.csdn.net/damonren/article/details/90753164,说是configtx.yaml配置文件的Profiles部分要放到最后面才行,修改下configtx.yaml的内容即可。
3、创建orderer区块文件时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/1d875b7d325476a7.jpeg)
原因:configtx.yaml文件缺少了策略配置,增加对应的policies即可,可参考fabric源码的test-network目录下的configtx.yaml,我的是在这个目录:~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/configtx
4、创建orderer区块文件时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/9b1acbe04f6d625a.jpeg)
原因:权限拒绝,因为要写入一个order.genesis.block文件,所以需要权限,输入命令:
sudo configtxgen -profile TestTwoOrgsOrdererGenesis -channelID qkltestchannel -outputBlock ./order.genesis.block
5、生成锚点更新文件时,即执行下面命令时:
sudo configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID qkltestchannel -asOrg Org1MSP
sudo configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx -channelID qkltestchannel -asOrg Org2MSP
如果出现Error on inspectChannelCreateTx:org 'Org1MSP' does not have any anchor peers这种报错的话,原因:configtx.yaml底下的Org1,即peer节点的配置少了下面的属性:
AnchorPeers:
- Host: peer0.org1.qkltest.com
Port: 7051
6、启动orderer节点时,即输入命令:orderer start时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/220aefe061bfc9db.jpeg)
原因:权限问题,输入命令时,加个sudo orderer start即可
7、启动orderer节点时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/5e6cdfb77201351a.jpeg)
原因:configtx.yaml文件没配置capabilities的原因,因此我们重新改下configtx.yaml文件,增加了Capabilities,不过要重新生成对应的一些区块问题,通道配置文件,锚点更新文件
8、创建通道时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/c37b729b4c461367.jpeg)
原因:出现这种情况时,是因为找不到对应的配置文件,所以要切换到peer目录
9、创建通道时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/e560178f174c96d9.jpeg)
原因:连接不到orderer.qkltest.com:7050,可能网络配置问题,又或者orderer配置问题,又或者orderer没有启动
10、创建通道时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/cee0ff711821c346.jpeg)
原因:就是创建orderer区块文件时的channelID与创建通道配置文件channelID相同导致的
11、创建通道时,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/847ad64d80e57ca7.jpeg)
原因:找不到对应的证书路径,可以加上--cafile指定orderer的证书路径,我的路径:/opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qkltest.com/orderers/orderer.qkltest.com/msp/tlscacerts/tlsca.qkltest.com-cert.pem
又或者,没有设置相关的变量:
export set CORE_PEER_LOCALMSPID=Org1MSP
export set CORE_PEER_ADDRESS=peer0.org1.qkltest.com:7051
export set CORE_PEER_MSPCOnFIGPATH=/opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qkltest.com/users/Admin@org1.qkltest.com/msp
12、用docker-compose启动网络时,orderer节点启动失败,如下图所示:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/2aa643ac8e1eb6b0.jpeg)
原因:通常出现这种情况,就是证书路径配置错了,检查一下docker-compose-test-qkl.yaml路径,发现没有错呀,也可能是docker-compose-test-qkl.yaml文件底下orderer配置的路径下msp没有signcerts目录:
![Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片](https://img7.php1.cn/3cdc5/ca9e/696/505bcafda35f92f2.jpeg)
上面这种的解决就是再搭建Fabric第一步时配置出问题了,我是把一个orderer其中的属性Specs写成小写的specs,导致一些目录和证书缺少,没生成。需要重新修改crypto-config.yaml,再重新执行命令:
sudo cryptogen generate --cOnfig=crypto-config.yaml
可能还有很多问题,可以参考这篇文章:https://studygolang.com/articles/20611
我这边也会持续更新,有问题可以在下方提出,大家一起讨论学习,谢谢!