首次搭建Hyperledger Caliper测试Fabric网络遇发现结果为空错误求助
我之前帮朋友排查过类似的问题,结合你的情况,咱们一步步来解决这个No discovery results found的错误:
检查网络配置文件的发现服务配置
打开你的network-config.yaml,先确认有没有正确配置Fabric节点的访问信息:- 要保证每个peer节点的
url是Caliper所在机器能访问到的地址(别用localhost,要用服务器的公网IP或内网IP) - TLS证书路径要正确,并且Caliper有权限读取这些证书文件
- 示例正确的peer配置片段:
peers: peer0.org1.example.com: url: grpcs://192.168.1.100:7051 tlsCACerts: path: ./networks/fabric/pavan-v2.1/org1/tls-ca-cert.pem grpcOptions: ssl-target-name-override: peer0.org1.example.com
另外别忘了检查服务器防火墙/安全组,有没有放行peer节点的gRPC端口(默认7051),Caliper连不上节点自然拿不到发现结果。
- 要保证每个peer节点的
尝试关闭自动发现,手动指定节点
你命令里用了--caliper-fabric-gateway-discovery开启自动发现,但自动发现有时候会因为网络拓扑或配置细节失效。可以试试:- 去掉命令里的
--caliper-fabric-gateway-discovery参数 - 在
network-config.yaml里明确指定要使用的peer节点 - 在benchmark的
config.yaml里,把交易对应的peer节点配置好,强制Caliper使用指定节点提交交易
- 去掉命令里的
核对Caliper与Fabric的版本兼容性
版本不匹配是容易忽略的坑:Caliper的版本要和你的Fabric网络版本对应,比如Caliper v0.5.x适配Fabric 2.x系列,v0.4.x适配Fabric 1.4.x。你可以用npx caliper version查看Caliper版本,再对比Fabric网络的版本,确保两者兼容。验证Fabric发现服务本身是否正常
虽然你自己用服务器提交交易正常,但还是可以手动验证下发现服务:用Fabric CLI执行以下命令,看看能不能正常获取节点信息:peer discovery peer --channelID your-channel-name --server peer0.org1.example.com:7051如果这个命令返回空或者报错,那就是Fabric发现服务的问题,得先修复网络本身的发现配置。
你可以先从检查网络配置和端口连通性开始,这是最常见的原因。如果还是不行,可以把network-config.yaml的关键片段(隐去敏感信息)贴出来,方便进一步排查。
内容的提问来源于stack exchange,提问作者catsdev

