dfuse 上手指南

背景介绍

EOS 因为 TPS 高,对交易数据的存储和查询反而成为一个让人头疼的事情,成本问题 EOS 自带的 history 插件也很少有节点会开放。一般解决方案有两种:自己搭建大数据库导入链上交易数据,使用第三方的 API 进行查询。

dfuse 能看得出是 EOS Canada 团队开发 eosq 区块浏览器时的 side project。试用了一下,比较让我惊讶的是其查询的自由度非常高,比如可以查询某个账户在过去某个区块高度的余额。

使用步骤

申请 API Key

https://www.dfuse.io/zh/

点击右上角【获得免费API密钥】

注册完成后你会收到类似下面这样的key:
eyJhbGciOiJLTVNFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NTQ5NjcxNDksImp0aSI6Ijc5YmE0ZjdkLTU5NTMtNDA4NC1iNDQwLTFlMWE5MGVmMmRjMyIsImlhdCI6MTU1MjM3NTE0OSwiaXNzIjoiZGZ1c2UuaW8iLCJzdWIiOiJDaVFBNmNieWUrc2o3SFVyTXZ4eW1…

根据文档进行测试

本文主要介绍 REST API 的使用方法,WebSocket的接口大家自行测试

打开 https://docs.dfuse.io 可以查看到接口的文档

我们来测试一下 【REST API】-【GET /v0/state/tables/accounts】这个接口

把下面这些参数填到 POSTMAN 工具中,URL那边如下填写

https://mainnet.eos.dfuse.io/v0/state/tables/accounts?accounts=eosio.token|eosadddddddd&scope=eosadddddddd&table=accounts&block_num=19000000&json=true

Headers – Authorization 的值是 【Bearer 之前收到的KEY】

account

这个查询的意思是返回:eosadddddddd这个账号在区块高度 19000000 时,EOS 和 ADD token的余额。
accounts 的值是 EOS 和 ADD token 的合约地址。

如何学习交易记录查询参数怎么写

交易记录的查询是一个更加常用的查询,我们可以通过 eosq 这个浏览器来学习其写法,熟练掌握基础写法后就可以进行更多高级查询了,如果有不支持的语法,你也可以加 dfuse 的 telegram 进行反馈。

介绍下通过 eosq 学习查询的步骤

打开:
https://eosq.app/account/eoscanadacom

鼠标移动,可以在界面上找到如下图中的 搜索 小图标
search

点击后在搜索框就是当前的查询语句
questy

复制查询语句到 dfuse transactions API 即可直接使用
(action:delegatebw OR action:undelegatebw) receiver:eosio data.receiver:eoscanadacom

下面的查询做的是:eoscanadacom 这个账号从 19000000 开始往后 19038649 个块里面倒序前10条 抵押和赎回 的交易记录

https://mainnet.eos.dfuse.io/v0/search/transactions?start_block=19000000&block_count=19038649&limit=10&sort=desc&q=(action:delegatebw OR action:undelegatebw) receiver:eosio data.receiver:eoscanadacom

transaction

更多资料

https://www.dfuse.io/zh/blog

有一个用 dfuse 开发的很有意思的项目:
https://eosinbox.io

发表评论

电子邮件地址不会被公开。 必填项已用*标注