У меня есть сеть Hyperledger Fabric с несколькими одноранговыми узлами с соответствующим StateDB (CouchDB), и я дал CORE_LEDGER_HISTORY_ENABLEHISTORYDATABASE = true во всех конфигурациях одноранговых узлов в файле компоновки Docker. Идея, что я буду в состоянии извлечь историю обновлений на основе ключа записи. Ключ здесь - это номер сделки, и всякий раз, когда обновляется какой-либо атрибут Trade, я вижу, что обновление происходит в CouchDB, когда я вижу увеличение значения ревизии. Теперь, в моей функции цепного кода, добавили фрагмент кода ниже (пример кода на данный момент)
_, args: = stub.GetFunctionAndParameters ()
tradeNumber := args[1]
historyIer, err := stub.GetHistoryForKey(tradeNumber)
if err != nil {
fmt.Println(err.Error())
return shim.Error(err.Error())
}
if historyIer.HasNext() {
modification, err := historyIer.Next()
if err != nil {
fmt.Println(err.Error())
return shim.Error(err.Error())
}
fmt.Println("Returning information about", string(modification.Value))
}
возврат shim.Success (ноль)
Однако, каждый раз, когда я проверяю контейнер с цепочечным кодом, он печатает только последнее значение Trade, а не количество обновлений, через которые он прошел. Может кто-нибудь сообщить мне, что я здесь не так делаю?