You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Explorer所有交易/区块验证报ENDORSEMENT_POLICY_FAILURE求助

问题排查与修正方案

核心排查方向

  • 自定义区块验证规则绕过了节点侧背书校验
    你修改configtx.yaml添加的BlockValidation: Type: ImplicitMeta Rule: "ANY Writers"配置会让peer节点在提交区块时,跳过对交易背书策略的强制校验,因此即使交易未满足背书要求,节点也会返回VALID状态,但Hyperledger Explorer会独立对区块内的交易做背书策略合规校验,因此会统一返回ENDORSEMENT_POLICY_FAILURE错误。
  • 链码背书策略配置不匹配
    你提交链码定义时未显式指定背书策略,默认的通道级背书策略要求收集多数组织的签名,但你提交交易时仅向单个组织的peer请求了背书,未满足策略要求:
    可以执行以下命令查询链码实际生效的背书策略:
peer lifecycle chaincode checkcommitreadiness --channelID samplechannel --name sample --version 1 --sequence 1 --output json

你提供的链码提交日志也可确认当前链码未自定义背书规则,使用的是默认的系统背书插件escc与验证插件vscc:

2021-10-04 14:30:52.864 IST [chaincodeCmd] ClientWait -> INFO 001 txid [eff4729bb0fcb0ac21b6b4c4ee78de75d9fc3bc04b67fdd1cc22c9b67044d93a] committed with status (VALID) at localhost:9051
2021-10-04 14:30:52.911 IST [chaincodeCmd] ClientWait -> INFO 002 txid [eff4729bb0fcb0ac21b6b4c4ee78de75d9fc3bc04b67fdd1cc22c9b67044d93a] committed with status (VALID) at localhost:7051
=============== Commit chaincode definition Org 1 ============================== Committed chaincode definition for chaincode 'sample' on channel 'samplechannel': Version: 1, Sequence: 1, Endorsement Plugin: escc, Validation Plugin: vscc, Approvals: [Org1MSP: true, Org2MSP: true]
=============== query commited from Org 1==================== Committed chaincode definition for chaincode 'sample' on channel 'samplechannel': Version: 1, Sequence: 1, Endorsement Plugin: escc, Validation Plugin: vscc, Approvals: [Org1MSP: true, Org2MSP: true]
  • Hyperledger Explorer配置或同步异常
    Explorer的节点配置、身份证书配置错误,或者本地同步的区块数据存在缓存异常,也会导致误报背书策略错误。

修正步骤

  1. 恢复区块验证规则为默认配置,删除自定义的BlockValidation: Type: ImplicitMeta Rule: "ANY Writers"配置,更新通道配置,恢复节点侧的背书策略强制校验,避免非法交易被误判为有效。
  2. 重新提交链码定义,根据业务需要显式指定背书策略:
    • 如需任意一个组织背书即可生效,添加参数--signature-policy "OR('Org1MSP.peer','Org2MSP.peer')"
    • 如需两个组织同时背书才可生效,添加参数--signature-policy "AND('Org1MSP.peer','Org2MSP.peer')"
  3. 调整交易提交逻辑,确保提交交易时向符合背书策略要求的所有组织的peer节点请求背书,收集到足够的有效签名后再向排序节点提交交易。
  4. 清空Hyperledger Explorer对应的存储数据库,重启Explorer重新全量同步区块数据,排除历史缓存导致的校验错误。

内容的提问来源于stack exchange,提问作者THANGARAJ M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:54:01