美文网首页区块链
Fabric 最有价值的接口 -- GetHistoryForK

Fabric 最有价值的接口 -- GetHistoryForK

作者: cystone | 来源:发表于2019-01-29 17:38 被阅读22次

写在前边

文中暂时没有给出具体的实验过程,有时间再补,有经验的读者可以自行实验。我的实验环境 StateDB 为 CouchDB。

Fabric 的查询

先说一说 Fabric 的查询,说到查询得先明白一个东西-- StateDB,Fabric 中有一个 StateDB 来维护 “World State” 我们使用的查询接口,无论是 GetState(),还是支持 CouchDB 富查询的接口 GetQueryResult(),都是从 StateDB 中查询的,并非从 ledger 中查询。这里所说的 StateDB 是指 golevelDB 和 CouchDB,ledger 是账本也就是区块文件。

GetHistoryForKey() 的功能是根据 key 查询历史记录。只有这个查询接口才是根据账本的记录从账本中把历史记录都找出来。

为什么 GetHistoryForKey 最有价值

上边说了 GetHistoryForKey 是从账本中查找历史记录,我们知道区块链不可篡改的是账本上的内容,而 World State 是记录在数据库中的,并没有防篡改的机制,所以说只有从账本中查询到的数据才是可信的。所以当需要保证查找到的数据的真实性时最好还是使用 GetHistoryForKey 进行查找。

如何验证

可以在链码中使用 PutState(key, value) 写入一条记录,然后使用 GetState(key) 和 GetHistoryForKey(key) 分别获取记录。然后直接把 CouchDB 中的 key 对应的数据改了,再使用 GetState(key) 和 GetHistoryForKey(key) 查询的时候,你会发现,GetState(key) 获取到的数据是改了 CouchDB 中数据之后的,而 GetHistoryForKey(key) 得到的才是真正的数据。

实验步骤可以参考 https://www.cnblogs.com/studyzy/p/7101136.html 这篇博文。

相关文章

  • Fabric 最有价值的接口 -- GetHistoryForK

    写在前边 文中暂时没有给出具体的实验过程,有时间再补,有经验的读者可以自行实验。我的实验环境 StateDB 为 ...

  • fabric之chaincode方法GetHistoryForK

    随时间返回键值的历史记录。对于每一个历史的key更新,历史的值,有关联的交易ID和时间戳会被返回,这个时间戳是客户...

  • 利用jmeter做接口测试的方案

    一、为什么要进行接口测试 在分层测试中,单元测试→接口测试→UI测试 (这种简单分层)下,在接口层是最有价值做自动...

  • Chaincode

    一.是什么 • 一个接口的实现代码• 部署在Fabric区块链网络结点上• 与Fabric区块链交互的唯一渠道• ...

  • Hyperledger Fabric java sdk 链码访问

    在超级账本Fabric区块链中,应用通过节点的RPC协议接口访问链码。Java应用可以使用官方提供的Fabric-...

  • Fabric java sdk 1.4简明教程

    在超级账本Fabric区块链中,应用通过节点的RPC协议接口访问链码。Java应用可以使用官方提供的Fabric-...

  • fabric gossip 源码解析

    fabric 中的 gossip 接口,最底层通信接口,实际只有两个操作,所有的 Gossip相关操作都是在这两个...

  • fabric gossip 源码解析 fabric/gossip

    fabric 中的 gossip 接口,最底层通信接口,实际只有两个操作,所有的 Gossip相关操作都是在这两个...

  • HyperLeder Fabric源码解读(1)-gossip接

    该文件位于fabric项目的gossip文件夹下子gossip目录下,主要定义gossip service相关接口...

  • Fabric原理剖析

    Fabric架构 Fabric网络 Fabric模块 Fabric交易流 根据Hyperledger Fabric...

网友评论

    本文标题:Fabric 最有价值的接口 -- GetHistoryForK

    本文链接:https://www.haomeiwen.com/subject/npaxsqtx.html