在从区块链中提取数据时的时候,它返回的大部分信息都是二进制格式的,这么设计目的主要是为了节省空间,让传输数据更快。 但是这样又让它不好筛选,因为你需要去把它解码为 JSON 这样的可读格式。 dfuse 最近扩展了它的 GraphQL 端点,让你在 dfuse Search 的查询结果中可以得到经过了 ABI 解码的 table row 数据。

在没有这个功能的情况下,需要调用多次 REST API 才能得到像下面截图中这样的结果,而多次的调用会导致同步和延迟问题。 现在,GraphQL 通过实时串流读取(或 GraphQL Subscription)将其转换为一个查询,让你可以选择你的有效负载中反馈给你的信息。

dfuse 对深层数据库行为进行跟踪

如果一个叫 Alice 的账户给一个叫 Bob 的账户转了1个EOS,那么 eosio.token 合约中的两个 row 会被更新:一个记录 Alice,一个记录 Bob 的帐户。

在 eosq.app 上查看数据库行为

截图中你看到的信息叫 database operations,也就是数据库行为/操作。 dfuse 是唯一一个提供这些状态增量的 API。这种粒化的信息让你跟踪合约中出现的任何问题,你可以看到执行每个操作产生的副作用,即使一个交易中包含着25个操作。

普通的 nodeos 提供不同合约的 table 数据最新状态,但是这个数据是不断在变动的。这就好像是其他的提供历史的接口只是对信息的简单回顾,而 dfuse 提供每一个细节。

这个新功能让你可以拿到通过 ABI 解码了的 table row 的 JSON 格式数据,它还记录链上 ABI 的任何更改,在查询历史交易时始终使用正确的相关历史 ABI。

有些合约给的 ABI 是无效的,有的与其交易不一致或根本没有 ABI。如果遇到这种情况,error 字段就会给你指出,object 字段也会返回 null

通过 dfuse 的 GraphQL 端点得到统一的交易信息和状态更改

让我们来通过我们的 GraphiQL (我们的 GraphQL 网页版接口)查询一下节点账户 eoscanadacom 的投票奖励操作(eosio.vpay):

"receiver:eosio.token action:transfer data.from:eosio.vpay data.to:eoscanadacom":

在上面的截图中,与所有其它历史API的解决方案一样,你只会收到转账的数量(274.9777 EOS)。但通过我们的 GraphQL ,你还可加上几个简单的字段

然后你收到的数据就会显示出数据库行为:

你看到的 eosio.vpay 和 eoscanadacom 的 dbOps 是任何其它 history API 都不能显示的。

dfuse 让你能看到任何操作执行后提交的每个操作(或任何 table ),准确查看余额。 这更功能对于会计性的工作有着不可忽视的优势!

如果你想追踪不笼统而是完整的信息,那么 dfuse 是唯一应该为你提供信息的平台。

加入 dfuse API Telegram 群、微信群。 获取免费账户,了解为什么很多 dapp 开发人员后端在用 dfuse 提供的信息。

dfuse 的 GraphQL 端点现在提供经过 ABI 解码的数据库行为信息相关推荐

  1. TADOQuery parameter对象被不正确地定义。提供了不一致或不完整的信息

    DELPHI中经常出现这样问题 TADOQuery parameter对象被不正确地定义.提供了不一致或不完整的信息 这个错误信息指的是哪里的错误 这里只要将 paramCheck的属性设置为FALS ...

  2. oracle删除表中数据_工作表中提供的特定数据在数据库中批量删除的方法

    大家好,我们今日继续讲解VBA数据库解决方案的第25讲内容:利用VBA,把工作表中提供的数据在数据表中批量删除的方法.在上一讲中,我们讲了实现在数据表中删除记录的一般方法,这种方法可以对重复的数据进行 ...

  3. 11.2.0.3 实例启动现在提供Large Pages Information大内存页信息了

    刚才发现在目前最新的11.2.0.3版本中实例instance startup时alert.log 中会提供Large Pages Information 大内存页的信息了: Starting ORA ...

  4. python连接access数据库未找到提供程序_连接ACCESS数据库时未找到提供程序.该程序可能未正确安装的解决...

    出现错误:ADODB.Connection   错误   '800a0e7a' 未找到提供程序.该程序可能未正确安装. 我的连接字符串是  ConnStr = "Provider = Mic ...

  5. 开源数据库产品平民化,为打破商业数据库垄断提供一条路径 ▏开源数据库系列谈之四...

    " 开源然数据库促使数据库产品走向平民化,为打破商业数据库垄断提供了一条切实可行的路径. " ---刘学习 对于Oracle的忠实粉丝来说,开放源代码对这家数据库巨头产生冲击是不容 ...

  6. 提供html格式全文的数据库有哪些,数据库函数有哪些?

    数据库函数: 一.数学函数abs(x) 返回x的绝对值 bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x) 返回大于x的最小整数值 exp(x) 返回值e(自然 ...

  7. oracle中yest,DBFS就是Oracle数据库11gR2中提供的能够将Oracle数据库当成文件系统来使用的功能...

    简单的来说,DBFS就是Oracle数据库11gR2中提供的能够在Linux操作系统中将Oracle数据库当成文件系统来使用的功能.在DBFS内部,文件是以SecureFiles LOBs(对比与以前 ...

  8. 【算法】两道算法题根据提供字母解决解码方法和城市的天际线天际线问题

    算法目录 解码方法 Java解答参考: 天际线问题 Java解答参考: 大家好,我是小冷. 上一篇了解了项目相关的知识点 接下来看下两道算法题吧,用Java解答,可能更能激发一下大脑思考. 解码方法 ...

  9. Oracle数据库之SQL基础(一)

    主要内容:用户与表空间:表与约束:查询语句. 一.概述 Oracle安装:访问官网,下载 二.用户与表空间 在安装Oracle时在开始菜单里可以用sql puls登录oracle. ★1.系统用户 s ...

  10. Java Web系列:Hibernate 基础

    从以下5个方面学习hibernate ORM. (1)配置文件:hibernate.cfg.xml XML文件和hibernate.properties属性文件 (2)实体映射:1对多.多对多 (3) ...

最新文章

  1. OpenCV 【十七】离散傅立叶变换
  2. datagrid单选多选
  3. php7 出现Class 'DOMDocument' not found的解决方法
  4. python 类属性和对象属性--定义和作用域
  5. 系统架构师学习笔记_第十一章(上)_连载
  6. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
  7. 【干货】Python编程惯例
  8. 在JavaScript中操作Cookie
  9. 百度分享代码_网销侠:网络营销百问百答之51,百度小程序是什么
  10. pnp型三极管 饱和 截至_截至2013年核心Java帖子
  11. 计算机论文答辩2分钟演讲稿,论文答辩演讲稿
  12. windows2012计算机在桌面显示,Windows2012 如何在桌面上显示”我的电脑”
  13. 为什么学习计算机的时候学语文,小学语文“为什么要学拼音呢”?告诉你学拼音技巧!...
  14. ensp-VRRP的配置
  15. 【服务器】 Windows Server 2008 R2 配置HTTPS TLS1.2
  16. “挖矿2.0”:资本方不是只能割区块链的韭菜
  17. 关于企业上云,我们想跟你聊聊!|中机智库
  18. 英语口语232之每日十句口语
  19. 比较好做的计算机毕设,大学几年快结束了,计算机毕设到底该怎么做?
  20. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...

热门文章

  1. 使用Python+多线程下载M3U8格式视频(小白)
  2. 开课吧JAVA高级架构师怎么样_开课吧JavaEE企业级高级架构师
  3. 高德地图大头针功能_有关于高德地图的大头针下落动画。还有就是高德地图的设置...
  4. uwp之图片旋转动画实现
  5. AutoLeaders控制组——C51单片机学习笔记--定时器串口通信LED点阵屏
  6. org.apache.kafka.clients.consumer.CommitFailedException
  7. 114DNS Public DNS+ 阿里DNS 百度DNS 360 DNS派 Google DNS公共DNS评测体验报告
  8. 富爸爸穷爸爸第二章的思考
  9. virtualbox复制vdi
  10. matlab 怎麼卸載乾淨,matlab set gca用法