如何修复Badrequest错误?附Orderer节点日志详情
修复Orderer的BadRequest错误方案
先把你提供的Orderer日志贴出来方便参考:
Attaching to orderer.asset.com, peer0.legaldept.asset.com, peer0.sellerbank.asset.com, peer0.buyerbank.asset.com, peer0.registration.asset.com, cli orderer.asset.com | 2018-04-09 13:12:22.351 UTC orderer/common/server] prettyPrintStruct -> INFO 001 Orderer config values: orderer.asset.com | General.LedgerType = "file" orderer.asset.com | General.ListenAddress = "0.0.0.0" orderer.asset.com | General.ListenPort = 7050 orderer.asset.com | General.TLS.Enab...
结合日志里的信息,BadRequest错误通常和请求合法性、配置不匹配有关,给你几个排查和修复的方向:
- 检查TLS配置一致性:日志里TLS配置没显示完整,先确认Orderer是否启用了TLS(查看完整的
General.TLS.Enabled值)。如果Orderer开了TLS,所有和它交互的客户端(CLI、Peer)都必须在请求时带上正确的TLS参数——比如CLI提交命令要加--tls true --cafile <orderer的TLS根证书路径>,Peer的配置文件里也要正确指定Orderer的TLS证书,不然就会触发BadRequest。 - 验证通道合法性:如果是提交通道相关请求(创建/加入通道等),先确认目标通道是否存在于Orderer的账本中(因为日志里
General.LedgerType = "file",可以去Orderer的账本目录下查看对应通道的文件夹)。另外,检查交易文件(比如通道创世块)是否用正确的configtxgenProfile生成,格式错误会被Orderer直接拒绝。 - 确认Orderer身份配置:Orderer的
General.LocalMSPID和General.MSPDir必须正确指向对应的MSP配置文件,要是这两个配置出错,Orderer无法验证请求的签名合法性,也会返回BadRequest。你可以去Orderer的orderer.yaml配置文件里核对这两个值。 - 检查请求签名完整性:交易提案必须经过正确签名才能被Orderer接受,比如创建通道时,是否所有需要签名的组织都完成了签名?签名缺失或无效都会触发BadRequest错误。
你可以先从TLS配置开始排查,毕竟日志里刚好截断了这部分内容,大概率是TLS相关的配置不匹配导致的。
内容的提问来源于stack exchange,提问作者praveen
相关产品推荐
相关产品推荐

