Невозможно вызвать GetState сразу после GetQueryResult (queryString) в сетевом коде Hyperledger Fabric - PullRequest
0 голосов
/ 24 октября 2018

В моем коде цепи Fabric Golang мне нужно найти список объектов, затем выполнить цикл и вызвать getState() для других объектов в бухгалтерской книге.Он работает с GetStateByRange(), но не с GetQueryResult().Все они из shim.ChaincodeStubInterface

С GetQueryResult() я получаю «Тег ревизии не обнаружен» после каждого getState()

Примеры:

Это работает!

func (s *SmartContract) queryAllFormations(APIstub shim.ChaincodeStubInterface, args []string) sc.Response {

                resultsIterator, _ := APIstub.GetStateByRange("FORM_1","FORM_99")
                for resultsIterator.HasNext() {
                    var formation Formation
                    json.Unmarshal(formationAsBytes.Value, &formation)
                    formationAsBytes, _:= resultsIterator.Next()
                    // Will succeed !
                    personAsBytes, _:= APIstub.GetState(formation.PersonID)
                    [...]
                 }
                 resultsIterator.Close()

Это не удастся!

func (s *SmartContract) queryAllFormations(APIstub shim.ChaincodeStubInterface, args []string) sc.Response {
            queryString := ...
            resultsIterator, _ := APIstub.GetQueryResult(queryString)
            for resultsIterator.HasNext() {
                formationAsBytes, _:= resultsIterator.Next()
                var formation Formation
                json.Unmarshal(formationAsBytes.Value, &formation)
                // WILL fail
                personAsBytes, _:= APIstub.GetState(formation.PersonID)
                [...]
            }
            resultsIterator.Close()

ошибка: [client-utils.js]: sendPeersProposal - Обещание отклонено: Ошибка: сбой GET_STATE: ИД транзакции: 2117b32cc69873be0e752eb644250c4156f29d9ec48d705885: 0705885: 0тег ревизии обнаружен по адресуclient / node_modules / grpc / src / client.js: 586: 7

Есть идеи?Заранее спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Когда закончится @DaveEnYeart, некоторые из моих идентификаторов пусты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...