Функция uploadData не найдена в контракте SmartContract - Hyperledger Fabric - PullRequest
1 голос
/ 16 июня 2020

Я переделываю fabcar-версию hyperledger fabri c и написал несколько функций. Когда я выполнил, я получил указанную ниже ошибку (указанная ниже команда относится к сценарию оболочки)

$ peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile $ORDERER_CA -C $CHANNEL_NAME -n cloud $PEER_CONN_PARMS --isInit -c '{"function":"uploadData","Args":["DATA1","ID12345","/home/samplefile___pdf","3"]}'
Error: endorsement failure during invoke. response: status:500 message:"error in simulation: transaction returned with failure: Function uploadData not found in contract SmartContract"

Ниже приведен цепной код (упомянутый абстрактно)

type SmartContract struct {
    contractapi.Contract
}

type Data struct {
    Owner  string `json:"owner"`
    File string `json:"file"`
    FileChunkNumber string `json:"filechunknumber"`
    SHA256 string `json:"sha256"`
}

// Uploads new data to the world state with given details
func (s *SmartContract) uploadData(ctx contractapi.TransactionContextInterface, args []string) error {
    /*...*/
}

Я не понимаю где изменить изменения

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Я уже сталкивался с подобной проблемой раньше; возможны 2 ошибки:

  1. Fabri c может использовать старый чейнкод docker изображение; поэтому попробуйте удалить это изображение и воссоздать изображение docker с обновленным цепным кодом.
  2. В теле вашей функции uploadData может быть какая-то проблема (может быть синтаксическая или логическая ошибка), которую вы нужно отлаживать.

Надеюсь, что это поможет!

0 голосов
/ 17 июня 2020

Я предполагаю, что вы обновили номер версии цепного кода или имя цепного кода во время установки и создания экземпляра. (1.4.6)

Пробовали ли вы ранее существовавшие функции цепного кода, работают ли они с вашей командой вызова. Если нет, выполните эту команду вызова:

 peer chaincode invoke -o orderer.example.com:7050 -C $CHANNEL_NAME -n cloud $PEER_CONN_PARMS -c '{"Args":["uploadData","DATA1","ID12345","/home/samplefile___pdf","3"]}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...