Ошибка: сбой подтверждения во время вызова. ответ: статус: 500 сообщений:»34524420434722020634….»

#hyperledger-fabric

#hyperledger-ткань

Вопрос:

Я использую hyperledger fabric 1.4 для написания цепного кода с именем task.go.In в task.go есть функция, которую я написал, называется transferBalance, которая реализует перевод между двумя учетными записями.

функция (t * TaskChaincode) балансировки переноса (прокладка-заглушка.ChaincodeStubInterface,аргументы[] строка) pb.Ответ {

 if len(args) != 3{
    return shim.Error("Wrong number of given parameters")
}

source := args[0]
target := args[1]
amount,err := strconv.Atoi(args[2])

if err != nil{
    return shim.Error("Format conversion failed")
}

if amount <= 0{
    return shim.Error("The number of designated transfer tokens must be greater than 0")
}


sacc,err := stub.GetState(source)
if err != nil {
    return shim.Error("Failed to obtain account information according to the specified account")
}

if sacc == nil {
    return shim.Error("The source account does not exist")
}


tacc,err := stub.GetState(target)
if err != nil {
    return shim.Error("Failed to obtain account information according to the specified account")
}

if tacc== nil {
    return shim.Error("The source account does not exist")
}

sval,err := strconv.Atoi(string(sacc))
if err != nil {
    return shim.Error("An error occurred while processing the source account balance")
}

tval,err := strconv.Atoi(string(tacc))
if err != nil {
    return shim.Error("An error occurred while processing the target account balance")
}

if sval < amount{
    return shim.Error("Insufficient balance")
}

sval = sval - amount
tval = tval   amount

err = stub.PutState(source,[]byte(strconv.Itoa(sval)))  
if err != nil {
    return shim.Error("Failed to save the status of the source account after the transfer")
}

err = stub.PutState(target,[]byte(strconv.Itoa(tval)))  
if err != nil {
    return shim.Error("Failed to save the status of the target account after the transfer")
}

return shim.Success([]byte("Successful tr"))
 

}

И я успешно установил цепной код и выполнил следующую команду для вызова вышеупомянутой функции. вызов однорангового цепного кода -n taskcc -c ‘{«Args»:[«transferBalance»,»user1_account»,»user2_account»,»2″]}’ -C myc

Я получаю сообщение об ошибке, показанное ниже: Ошибка: сбой подтверждения во время вызова. ответ: статус: 500 message:»345244204347220206345216237350264246346210267344275231351242235346227266345217221347224237351224231350257257″

Я не знаю, как решить эту проблему. И я хочу знать, что означают цифры в приведенной выше ошибке. Как я должен попытаться найти источник ошибки и решить ее. Пожалуйста, помогите мне, большое вам спасибо.

Комментарии:

1. Что ж, сообщение выглядит как строка октета, которая преобразуется в китайский, и это китайское сообщение переводится на английский как «Произошла ошибка при обработке исходного баланса счета».

2. Интерпретация чисел, предложенных в вопросе, заключается в следующем. восьмеричный в текст

3. 户余额时发生错误 Произошел этот журнал ошибок. Можете ли вы показать мне соответствующий код?

4. Большое вам спасибо за ваш ответ. Я думаю, что нашел решение проблемы.

5. Не могли бы вы, пожалуйста, поделиться решением этой проблемы? Я сталкиваюсь с той же ошибкой.