В моем коде цепи 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
Есть идеи?Заранее спасибо