当前位置: 首页 > 知识库问答 >
问题:

如何在Hyperledger Fabric中获取特定键的事务历史记录?

公孙阳羽
2023-03-14
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(零)

然而,每次我检查chaincode容器,它只打印最后的贸易价值比它所经历的更新次数,谁能让我知道我在这里做错了什么?

共有1个答案

宋育
2023-03-14

嗯,只使用历史迭代器一次而不是实际迭代它的问题。

而不是:

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))
}

您需要做:

for 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))
}
 类似资料:
  • 我能够在Hyperledger(fabric实现)中进行事务处理。我希望通过传递用户的密钥来查看由用户发起的所有事务及其有效载荷细节。

  • 另外,如果我在浏览器上访问,它在web界面中只显示当前歌曲。 有人能指导我如何完成这件事吗?

  • 问题内容: 我从React-Router v3迁移到v4时遇到一些小问题。在v3中,我可以在任何地方执行此操作: 如何在v4中实现这一目标。 我知道当您在Component中时,可以使用hoc ,react上下文或事件路由器props。但对我而言并非如此。 我正在寻找v4中的NavigatingOutsideOfComponents的等效项 问题答案: 您只需要有一个导出对象的模块。然后,您将在整

  • 我在从React路由器v3迁移到v4时遇到了一些小问题。在v3中,我可以在任何地方执行此操作: 如何在v4中实现这一点。 我知道,当您在组件中时,我可以使用hoc、react context或event router道具。但我不是这样。 我正在寻找v4中组件的外部导航的等价性

  • 在我的Corda项目中,项目状态可能会随着时间的推移而发展。我已经制作了线性状态类型的状态。现在我想检索Corda状态的历史,这意味着,它是如何随着时间的推移而演变的。如何查看科尔达特定州的演变历史? 特别是,我想访问一个州的完整交易链。

  • 我正在使用telegram bot api获取频道的聊天历史记录https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getupdates 我的机器人连接到许多频道,我的问题是如何获取使用我的机器人的任何特定频道的聊天历史。 但当我使用getupdates方法时,它会显示所有通道的所有消息。 我的问题是如何使用电报机器人API获得解决方案? 就像我们需要使用