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

Hyperledger Fabric中Org3执行evaluateTransaction报错的解决咨询

Hyperledger Fabric供应链应用问题解决指南

问题1:Org3执行evaluateTransaction报错

报错信息:

ERROR MESSAGE: 2022-12-07T12:45:38.620Z - error: [SingleQueryHandler]: evaluate: message=Query failed. Errors: ["Error: Peer peer0.org3.example.com:11051 is not running chaincode SupplychainContract"], stack=FabricError: Query failed. Errors: ["Error: Peer peer0.org3.example.com:11051 is not running chaincode SupplychainContract"]

原因分析

./network.sh deployCC 默认仅将链码安装到Org1和Org2的Peer节点上,Org3的Peer0未安装该链码。evaluateTransaction 默认查询当前客户端关联的本地Peer(即Org3的Peer0),由于该Peer上没有链码实例,因此触发报错。而submitTransaction执行背书时,会从符合背书策略的Peer中选择(此处策略包含Org1/Org2/Org3),实际可能使用了已安装链码的Org1/Org2 Peer,因此无异常。

解决步骤

  1. 切换到Org3的环境变量配置:
    cd ../test-network
    export PATH=${PWD}/../bin:$PATH
    export FABRIC_CFG_PATH=$PWD/../config/
    export CORE_PEER_TLS_ENABLED=true
    export CORE_PEER_LOCALMSPID="Org3MSP"
    export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
    export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
    export CORE_PEER_ADDRESS=localhost:11051
    
  2. 安装链码到Org3的Peer0节点:
    # network.sh deployCC生成的链码包默认在test-network/chaincode-installable目录下
    peer lifecycle chaincode install ./chaincode-installable/SupplychainContract.tar.gz
    
    安装完成后,再次执行evaluateTransaction即可正常查询,第一次调用会自动启动链码容器。

问题2:docker-compose启动Org3与addOrg3.sh容器冲突

原因分析

addOrg3.sh up 已经创建了Org3相关的容器(peer0.org3.example.com、ca.org3.example.com等),再次执行docker-compose -f ./compose/docker/docker-compose-org3.yaml up -d会尝试创建同名容器,导致冲突。

解决方法

方法1:使用addOrg3.sh管理Org3容器

如果已经通过addOrg3.sh up启动了Org3,直接使用该脚本进行启停操作:

  • 停止Org3容器:./addOrg3.sh down
  • 重新启动Org3容器:./addOrg3.sh up -c mychannel -ca -s couchdb

方法2:改用docker-compose启动(需清理现有容器)

若要切换为docker-compose管理,先彻底清理Org3相关资源:

cd ../test-network/addOrg3
./addOrg3.sh down
docker rm -f $(docker ps -aq | grep org3)
docker volume rm $(docker volume ls | grep org3)

清理完成后,再执行docker-compose命令启动Org3,确保之前已完成Org3加入通道的配置操作(如生成org3.json并更新通道配置)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:15:37