INVOKE_CHAINCODE 失败:没有这样的文件或目录

时间:2021-04-12 07:29:58

标签: hyperledger-fabric

当我尝试使用 invokechaincode API 调用其他链码数据时,系统返回 err,说找不到该链码文件。 这是我的命令

peer chaincode invoke -o orderer.trace.com:7050 -C mychannel -n sellcc --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/trace.com/orderers/orderer.trace.com/msp/tlscacerts/tlsca.trace.com-cert.pem --peerAddresses peer0.sell.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/sell.trace.com/peers/peer0.sell.trace.com/tls/ca.crt -c '{"Args":["gethistory","s-001"]}'

和错误信息

Error: endorsement failure during invoke. response: status:500 message:"InvokeChaincode error ......INVOKE_CHAINCODE failed: transaction ID: 71993ee260225d1d4f9a5d7391294a730321e62aebc7d5c1e543e40f2f30b0d2: cannot retrieve package for chaincode dealercc/1.0, error open /var/hyperledger/production/chaincodes/dealercc.1.0: no such file or directory"

对不起,我是面料方面的新手,我尝试搜索,但似乎没有这样的问题。我认为可能是由配置或其他原因引起的,但我不知道如何解决。 提前致谢。

补充: 我关于链码调用的代码

text := t.getvalue(stub, args)
if text.Status != shim.OK {
    return shim.Error("getvalue error ......")
}
var result string
var fromID string

var sellItem SellInfo
json.Unmarshal(text.Payload, &sellItem)
fromID = sellItem.FromId
result += fmt.Sprintf("Sell:%s, ID:%s, FromID:%s <--- ", sellItem.Name, sellItem.Id, sellItem.FromId)

myArgs := [][]byte{[]byte("getvalue"), []byte(fromID)}
response := stub.InvokeChaincode("dealercc", myArgs, "mychannel") 
if response.Status != shim.OK {
    return shim.Error("InvokeChaincode error ......" + string(response.Payload))
}
var dealerItem DealerInfo
json.Unmarshal(response.Payload, &dealerItem)
fromID = dealerItem.FromId
result += fmt.Sprintf("Dealer:%s, ID:%s, FromID:%s <--- ", dealerItem.Name, dealerItem.Id, dealerItem.FromId)

myArgs = [][]byte{[]byte("getvalue"), []byte(fromID)}
response = stub.InvokeChaincode("hennrycc", myArgs, "mychannel") 
if response.Status != shim.OK {
    return shim.Error("InvokeChaincode error ......")
}
var hennryItem HennryInfo
json.Unmarshal(response.Payload, &hennryItem)
result += fmt.Sprintf("Hennry:%s, scale:%s, breed:%s 。 ", hennryItem.Name, hennryItem.Quality, hennryItem.Breed)

//jsonText, error := json.Marshal(myList)
//if error != nil {
//  return shim.Error("json.Marshal(myList) fail...")
//}
return shim.Success([]byte(result))

1 个答案:

答案 0 :(得分:0)

现在我知道如何解决它了。所有的链码都应该通过使用'peer chaincode install -n org1cc/org2cc'

安装在使用InvokeChaincode API的对等点上
相关问题