启动Hyperledger Fabric网络时Orderer容器异常退出问题
Hyperledger Fabric Orderer启动异常退出故障排查
故障现象
启动Hyperledger Fabric网络过程中Orderer容器异常退出,节点输出如下运行日志:
2022-06-11 05:12:53.108 UTC [orderer.common.server] initializeServerConfig -> INFO 004 已启用TLS,正在启动Orderer节点 2022-06-11 05:12:53.120 UTC [blkstorage] NewProvider -> INFO 005 正在路径/var/hyperledger/production/orderer/chains下创建新的文件账本目录 2022-06-11 05:12:53.128 UTC [orderer.common.server] Main -> PANI 006 引导区块校验失败:初始化通道配置失败:无法创建通道Orderer子组配置:MSP管理器初始化失败:提供的身份凭证无效:x509: certificate signed by unknown authority(尝试验证候选权威证书"ca.example.com"时触发"x509: ECDSA verification failure"错误,为可能诱因) panic: 引导区块校验失败:初始化通道配置失败:无法创建通道Orderer子组配置:MSP管理器初始化失败:提供的身份凭证无效:x509: certificate signed by unknown authority(尝试验证候选权威证书"ca.example.com"时触发"x509: ECDSA verification failure"错误,为可能诱因)
故障根因
该故障属于MSP证书链信任校验失败,Orderer启动加载引导创世区块时,无法验证区块内配置的ca.example.com根CA证书合法性,触发进程panic退出,常见触发场景包括:
- 创世区块生成时使用的证书材料,和Orderer容器实际挂载的证书材料不配套,比如重新生成过组织证书但未重新生成创世区块
- 本地存储的CA证书、Orderer节点身份证书文件损坏、被篡改,或者证书与对应私钥不匹配,导致ECDSA签名校验不通过
- 容器编排配置错误,错将其他组织、其他节点的证书目录,或旧版本证书挂载到Orderer容器内
- Orderer配置文件中MSP路径、MSP ID配置错误,导致节点加载了错误的身份材料
排查修复步骤
- 校验证书与创世区块匹配性
用openssl x509 -in <证书文件路径> -noout -fingerprint -sha256命令,分别计算创世区块中写入的Orderer组织根CA证书、Orderer本地msp/cacerts/目录下ca.example.com对应证书的指纹,若指纹不一致说明材料不配套。此时需要使用当前最新的组织证书材料,通过configtxgen工具重新生成创世区块,替换所有节点存储的旧创世区块文件。 - 校验证书本身合法性
执行openssl verify -CAfile <根CA证书路径> <Orderer节点身份证书路径>命令验证证书链信任关系,若返回校验失败,说明证书损坏、被篡改或者私钥不配对,需要通过CA重新签发Orderer对应的MSP身份证书、TLS证书,确保所有证书由ca.example.com正确签发。 - 校验挂载与节点配置
检查容器编排配置(docker-compose/k8s资源文件)中,Orderer的MSP目录、TLS证书目录、创世区块文件的挂载路径是否正确,确认没有错挂其他节点、其他环境的证书材料;同时检查orderer.yaml中General.LocalMSPDir、General.LocalMSPID、TLS证书路径配置,确保和实际部署的组织信息、文件路径一致。 - 清理残留数据重启
配置修复完成后,先删除Orderer节点本地/var/hyperledger/production/orderer/路径下的旧账本残留数据,再启动Orderer容器即可。
内容的提问来源于stack exchange,提问作者Samyak Jain
相关产品推荐
相关产品推荐

