Hyperledger Fabric 链码调用错误 - “交易返回失败:调用了未定义的合约”

问题描述

我正在尝试 Hyperledger Fabric readthedocs page 中所述的 fabcar 智能合约示例。

区别在于:

  1. 我使用的是最新版本的结构 - 2.3.0 以及 fabric-samples 存储库中文件的最新版本。
  2. 我使用 ./network.sh up createChannel -ca 创建了网络。

我正在使用用 Java 编写的链代码,并按照 Fabric readthedocs 页面中所述的说明部署 Java 链代码

我需要使用 ca 运行网络,因为我还计划测试示例存储库中提供的用 Java 编写的 clientApp,然后再编写自己的。

当我运行命令来调用 initledger 函数时出现以下错误

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabcar --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"initLedger","Args":[]}'
Error: endorsement failure during invoke. response: status:500 message:"error in simulation: transaction returned with failure: Undefined contract called" 

我该如何解决这个问题?

运行命令时使用logspout的日志输出

dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,5,main] 10:22:42:085 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got invoke routing request
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:086 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got the invoke request for:initLedger []
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:087 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got invoke routing request
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:087 SEVERE  org.hyperledger.fabric.Logger error                                              Undefined contract calledorg.hyperledger.fabric.contract.ContractRuntimeException: Undefined contract called
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.routing.impl.RoutingRegistryImpl.getContract(RoutingRegistryImpl.java:119)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.getRouting(ContractRouter.java:146)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.processRequest(ContractRouter.java:107)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:087 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got the invoke request for:initLedger []
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.invoke(ContractRouter.java:126)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.shim.impl.ChaincodeInvocationTask.call(ChaincodeInvocationTask.java:100)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.shim.impl.InvocationTaskManager.lambda$newTask$17(InvocationTaskManager.java:255)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.lang.Thread.run(Thread.java:834)
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|
dev-peer0.org2.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:088 SEVERE  org.hyperledger.fabric.shim.impl.ChaincodeInvocationTask call                    [49b7b2b9] Invoke Failed with error code 500. Sending ERROR
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:088 SEVERE  org.hyperledger.fabric.Logger error                                              Undefined contract calledorg.hyperledger.fabric.contract.ContractRuntimeException: Undefined contract called
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.routing.impl.RoutingRegistryImpl.getContract(RoutingRegistryImpl.java:119)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.getRouting(ContractRouter.java:146)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.processRequest(ContractRouter.java:107)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.contract.ContractRouter.invoke(ContractRouter.java:126)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.shim.impl.ChaincodeInvocationTask.call(ChaincodeInvocationTask.java:100)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at org.hyperledger.fabric.shim.impl.InvocationTaskManager.lambda$newTask$17(InvocationTaskManager.java:255)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|at java.base/java.lang.Thread.run(Thread.java:834)
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|
dev-peer0.org1.example.com-fabcar_1-a7641e0ac440b26f906acf486741b1d19db8bd9254505dc1c90d81f1eb55534c|Thread[fabric-txinvoke:3,main] 10:22:42:089 SEVERE  org.hyperledger.fabric.shim.impl.ChaincodeInvocationTask call                    [49b7b2b9] Invoke Failed with error code 500. Sending ERROR
                                                                              peer0.org2.example.com|2021-01-30 10:22:42.091 UTC [endorser] callChaincode -> INFO 05f finished chaincode: fabcar duration: 7ms channel=mychannel txID=49b7b2b9
                                                                              peer0.org2.example.com|2021-01-30 10:22:42.091 UTC [endorser] SimulateProposal -> ERRO 060 Failed to invoke chaincode fabcar,error: transaction returned with failure: Undefined contract called
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/chaincode.processChaincodeExecutionResult
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:182
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:156
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:119
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:187
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessproposalSuccessfullyOrError
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:397
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).Processproposal
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:340
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).Processproposal
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).Processproposal
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric-protos-go/peer._Endorser_Processproposal_Handler.func1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/internal/peer/node.unaryGrpclimiter.func1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/internal/peer/node/grpc_limiters.go:51
                                                                              peer0.org2.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
                                                                              peer0.org2.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
                                                                              peer0.org2.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org2.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
                                                                              peer0.org2.example.com|github.com/hyperledger/fabric-protos-go/peer._Endorser_Processproposal_Handler
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
                                                                              peer0.org2.example.com|google.golang.org/grpc.(*Server).processUnaryRPC
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1180
                                                                              peer0.org2.example.com|google.golang.org/grpc.(*Server).handleStream
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1503
                                                                              peer0.org2.example.com|google.golang.org/grpc.(*Server).serveStreams.func1.2
                                                                              peer0.org2.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:843
                                                                              peer0.org2.example.com|runtime.goexit
                                                                              peer0.org2.example.com|/usr/local/go/src/runtime/asm_amd64.s:1373 channel=mychannel txID=49b7b2b9
                                                                              peer0.org2.example.com|2021-01-30 10:22:42.091 UTC [comm.grpc.server] 1 -> INFO 061 unary call completed grpc.service=protos.Endorser grpc.method=Processproposal grpc.peer_address=172.22.0.1:40830 grpc.code=OK grpc.call_duration=9.889267ms
                                                                              peer0.org1.example.com|2021-01-30 10:22:42.093 UTC [endorser] callChaincode -> INFO 068 finished chaincode: fabcar duration: 10ms channel=mychannel txID=49b7b2b9
                                                                              peer0.org1.example.com|2021-01-30 10:22:42.093 UTC [endorser] SimulateProposal -> ERRO 069 Failed to invoke chaincode fabcar,error: transaction returned with failure: Undefined contract called
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/chaincode.processChaincodeExecutionResult
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:182
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/chaincode.(*ChaincodeSupport).Execute
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/chaincode/chaincode_support.go:156
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/endorser.(*SupportImpl).Execute
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/support.go:126
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).callChaincode
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:119
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).SimulateProposal
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:187
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessproposalSuccessfullyOrError
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:397
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/endorser.(*Endorser).Processproposal
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/endorser/endorser.go:340
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/handlers/auth/filter.(*expirationCheckFilter).Processproposal
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/expiration.go:61
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/core/handlers/auth/filter.(*filter).Processproposal
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/core/handlers/auth/filter/filter.go:32
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric-protos-go/peer._Endorser_Processproposal_Handler.func1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:107
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/internal/peer/node.unaryGrpclimiter.func1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/internal/peer/node/grpc_limiters.go:51
                                                                              peer0.org1.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/common/grpclogging.UnaryServerInterceptor.func1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/common/grpclogging/server.go:92
                                                                              peer0.org1.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric/common/grpcmetrics.UnaryServerInterceptor.func1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/common/grpcmetrics/interceptor.go:31
                                                                              peer0.org1.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25
                                                                              peer0.org1.example.com|github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34
                                                                              peer0.org1.example.com|github.com/hyperledger/fabric-protos-go/peer._Endorser_Processproposal_Handler
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-protos-go/peer/peer.pb.go:109
                                                                              peer0.org1.example.com|google.golang.org/grpc.(*Server).processUnaryRPC
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1180
                                                                              peer0.org1.example.com|google.golang.org/grpc.(*Server).handleStream
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1503
                                                                              peer0.org1.example.com|google.golang.org/grpc.(*Server).serveStreams.func1.2
                                                                              peer0.org1.example.com|/go/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:843
                                                                              peer0.org1.example.com|runtime.goexit
                                                                              peer0.org1.example.com|/usr/local/go/src/runtime/asm_amd64.s:1373 channel=mychannel txID=49b7b2b9
                                                                              peer0.org1.example.com|2021-01-30 10:22:42.093 UTC [comm.grpc.server] 1 -> INFO 06a unary call completed grpc.service=protos.Endorser grpc.method=Processproposal grpc.peer_address=172.22.0.1:39212 grpc.code=OK grpc.call_duration=11.732076ms
                                                                                 orderer.example.com|2021-01-30 10:22:42.096 UTC [orderer.common.broadcast] Handle -> WARN 045 Error reading from 172.22.0.1:37090: rpc error: code = Canceled desc = context canceled
                                                                                 orderer.example.com|2021-01-30 10:22:42.096 UTC [comm.grpc.server] 1 -> INFO 046 streaming call completed grpc.service=orderer.Atomicbroadcast grpc.method=broadcast grpc.peer_address=172.22.0.1:37090 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=15.897578ms

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)