Я искал подобный вопрос, но ничего не нашел, извините, если я напишу что-то ранее написанное.
Я разрабатываю смарт-контракт для SAP Hyperledger Fabri c в Go, и у меня проблема с цепным кодом «qs cc», когда я пытаюсь вызвать его через Swagger API, код цепного кода:
func (cc *registroHorario) query(stub shim.ChaincodeStubInterface, args []string) peer.Response {
TxId := args[0]
invokeArgs := ToChaincodeArgs("GetBlockByTxID", "gesjornada", TxId)
response := stub.InvokeChaincode("qscc", invokeArgs, "gesjornada")
if response.Status != shim.OK {
return shim.Error(BytesToString(response.Payload))
}
value := response.Payload
// JSON := Decode("common.Block", value)
logger.Infof("QueryResult: %s", value)
return shim.Success(value)
}
//ToChaincodeArgs converts string args to []byte args.
func ToChaincodeArgs(args ...string) [][]byte {
bargs := make([][]byte, len(args))
for i, arg := range args {
bargs[i] = []byte(arg)
}
return bargs
}
и Код Swagger:
/{txId}: #-------------------------------------------------------- GET /{txId} ==> QUERY
get:
tags:
- Marcaje
operationId: query
summary: Listar marcaje por TxId
parameters:
- $ref: '#/parameters/txId'
responses:
200:
description: OK
schema:
type: object
400:
description: Parameter Mismatch
404:
description: Not Found
Когда я вызываю API, я передаю свой txId в качестве аргумента и получаю следующую ошибку:
500: Error: Internal Server Error
{
"error": {
"message": "INVOKE_CHAINCODE failed: transaction ID: 5172ad78a74af6fd0c45af6e7e54f92b03c8e34db1e6387d5d359d27550538fc: failed to find ledger for channel: gesjornada",
"code": "CustomError",
"status": 500
}
}
Я думал, что это проблема имя канала, но я видел это имя канала, которое я получил, когда вызвал Hyperledger Fabri c API через SAP API HUB, так что я застрял здесь почти на месяц, может кто-нибудь мне помочь, пожалуйста? Заранее спасибо !!!