【问题标题】:peer endorsement policy not working hyperledger fabric对等背书策略不起作用的超级账本结构
【发布时间】:2026-01-23 23:20:02
【问题描述】:

我正在尝试为 2 org 网络执行简单的背书政策。这是我的crypto-config.yaml

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer
PeerOrgs:
  - Name: Org1
    Domain: org1.example.com
    EnableNodeOUs: true
    # CA:
    #   OrganizationalUnit: peer
    Template:
      Count: 1
    Users:
      Count: 1
  - Name: Org2
    Domain: org2.example.com
    EnableNodeOUs: true
    # CA:
    #   OrganizationalUnit: peer
    Template:
      Count: 1
    Users:
      Count: 1

我可以将 OU 视为两个对等方中的对等方。

peer0.org2.example.com  
Identity: peer0.org2.example.com  
Verified by: ca.org2.example.com  
Expires: Saturday 23 December 2028 

主题名称

C (Country):    US  
ST (State): California  
L (Locality):   San Francisco  
OU (Organizational Unit):   peer  
CN (Common Name):   peer0.org2.example.com 

会员支票作品的背书政策

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n chaincode -l node -v v0 -c '{"args":["init"]}' -P "AND('Org1MSP.member', 'Org2MSP.member')"  

但同行检查的背书政策不起作用

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n chaincode -l node -v v0 -c '{"args":["init"]}' -P "AND('Org1MSP.peer', 'Org2MSP.peer')"  

当我调用任何函数时。

Transaction failed to be committed to the ledger due to ::ENDORSEMENT_POLICY_FAILURE

即使"OR('Org1MSP.peer', 'Org2MSP.peer')" 不工作

【问题讨论】:

  • 你是如何创建mychannel的?
  • 通过cli容器,docker exec cli peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/config/channel.tx
  • 在启用 NodeOU 的情况下使用 cryptogen 后,您是否使用了 configtxgen
  • 是的,在 generate.sh 我有以下命令。 cryptogen 生成 --config=./crypto-config.yaml || configtxgen -profile TwoOrgOrdererGenesis -outputBlock ./config/genesis.block || configtxgen -profile TwoOrgChannel -outputCreateChannelTx ./config/channel.tx -channelID $CHANNEL_NAME || configtxgen -profile TwoOrgChannel -outputAnchorPeersUpdate ./config/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP || configtxgen -profile TwoOrgChannel -outputAnchorPeersUpdate ./config/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
  • 遇到了同样的问题。在我的 crypto-config.yaml 中添加 EnableNodeOUs 为我修复了它。谢谢@GariSingh!

标签: hyperledger-fabric hyperledger blockchain


【解决方案1】:
PeerOrgs:
  - Name: Org1
    Domain: org1.example.com
    EnableNodeOUs: true
    # CA:
    #   OrganizationalUnit: peer
    Template:
      Count: 1
    Users:
      Count: 1

......... TEMPLATE COUNT s/b 更改为 2,因为现在有 2 个 Orgs

【讨论】:

  • 不,模板计数是指组织中的对等点数。如果在问题中未明确指定的 Org1 下有 2 个对等点,则应将其更新为“2”。