【发布时间】: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