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

Hyperledger Fabric 2.4同一组织多节点私有交易背书配置问题

Hyperledger Fabric 2.4 同一组织多节点私有数据背书策略实现方案

问题原因

Fabric 2.x对背书策略的解析逻辑做了优化:重复指定同一个MSP角色主体(比如Org1MSP.member多次)会被自动去重,你之前的AND('Org1MSP.member', 'Org1MSP.member')或OutOf(2, 'Org1MSP.member', 'Org1MSP.member')写法,实际等价于只要求1个该角色的背书,而非多个,这就导致交易背书时不符合预期,触发EndorseError。

正确实现方法

在Fabric 2.4中,需使用计数型组织成员策略来实现同一组织至少N个节点的背书要求,以下是具体配置方案:

1. 私有数据集合配置示例

修改你的集合配置文件(如collections_config.json),在policy字段中采用ApplicationPolicy类型,指定组织、角色及所需背书数量:

{
  "name": "myPrivateCollection",
  "policy": {
    "type": "ApplicationPolicy",
    "value": {
      "principal": {
        "mspId": "Org1MSP",
        "role": "PEER" // 优先选择PEER角色,精准指向组织内的节点身份;也可使用MEMBER,但会包含客户端身份
      },
      "count": 2 // 设置为你需要的最小背书节点数N
    }
  },
  "requiredPeerCount": 2,
  "maxPeerCount": 3,
  "blockToLive": 0,
  "memberOnlyRead": true
}

2. 策略说明

  • 该策略会自动校验是否有来自Org1MSP的N个不同节点身份完成背书,无需硬编码单个节点信息,适配2.x版本的规范,同时保持灵活性。
  • 若需指定固定节点背书(而非任意N个节点),可使用节点具体身份构建签名策略,示例:
"policy": {
  "type": "SignaturePolicy",
  "value": "OutOf(2, 'Org1MSP.peer1', 'Org1MSP.peer2', 'Org1MSP.peer3')"
}

注意:Org1MSP.peer1为节点的身份别名,需确保节点证书已在对应MSP中完成注册。

3. 生效步骤

配置完成后,通过peer chaincode upgrade(或重新安装、实例化链码)更新集合配置,发起交易时确保客户端收集到至少N个目标组织节点的背书,即可正常通过验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:10:39