以太坊go-ethereum客户端查询交易列表(二)
2017-01-02 08:22
197 查看
玩过比特币的朋友都知道,比特币是可以通过api(listtransactions)查询指定地址的历史交易的。但在eth中没有提供类似的查询api。今天这篇博客就简单介绍一下如果解决这个问题。
https://github.com/ethereum/go-ethereum/issues/1897
(1)调用第三方API接口。此类接口很多,不仅能在官网上查询区块信息,而且提供了查询的API。比如:https://etherchain.org/apidoc 。接口都很简单,不过有访问频次的限制,除非很大的访问量,还是可以使用此类接口。简单,方便。
(2)自行维护数据,自行实现此功能。此方法的基本思路是,查询每个区块的具体交易,录入到自己的数据库中,然后通过sql语句查询自己的数据。此方法就需要有一定的编码基础和设备投入。现有的API是支持查询每一个区块内的交易记录的。虽然比较笨重,但一旦数据由自己维护之后,想怎么查询只是sql语句不同的事情了。
问题
以太坊go-ethereum客户端是没有根据地址查询交易列表的API的。然而,在使用过程中我们往往会用到类似的API。针对是否要在客户端上添加此API,github已经有激励的讨论了。点击一下网址可以了解一下:https://github.com/ethereum/go-ethereum/issues/1897
解决方案
那么既然有此需求,即使没有针对性的API也需要找到相应的解决方案。目前有效的解决方案有两种:(1)调用第三方API接口。此类接口很多,不仅能在官网上查询区块信息,而且提供了查询的API。比如:https://etherchain.org/apidoc 。接口都很简单,不过有访问频次的限制,除非很大的访问量,还是可以使用此类接口。简单,方便。
(2)自行维护数据,自行实现此功能。此方法的基本思路是,查询每个区块的具体交易,录入到自己的数据库中,然后通过sql语句查询自己的数据。此方法就需要有一定的编码基础和设备投入。现有的API是支持查询每一个区块内的交易记录的。虽然比较笨重,但一旦数据由自己维护之后,想怎么查询只是sql语句不同的事情了。
例外情况
如果要查询合约的交易历史,那么可以通过过滤(filter)合约日志来达到此目的。此种场景是有相应的API进行支撑的。相关文章推荐
- 以太坊go-ethereum客户端查询交易列表(二)
- oracle客户端plsql,sql语句查询的结果列表自动刷新功能
- 以太坊go-ethereum客户端docker安装(一)
- 利用DirectoryEntry组件来查看网络,显示域用户的列表, 查询客户端域账户
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- 以太坊go-ethereum客户端JSON-RPC API调用(一)
- 以太坊go-ethereum客户端JSON-RPC API调用(一)
- 002 Ubuntu16.04上基于docker搭建以太坊go-ethereum客户端
- 以太坊go-ethereum客户端docker安装(一)
- 以太坊go-ethereum客户端(三)两种全节点启动模式
- 以太坊go-ethereum客户端docker安装(一)
- 以太坊go-ethereum客户端(三)两种全节点启动模式
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- SharePoint Foundation 2010 托管客户端对象模型概述(五) --使用 CAML 查询列表
- 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建
- 建立时间索引后,按照时间排序来获得列表的查询,速度增快了不少
- C#WinForm利用Web Service API查询数据库并显示到客户端
- 客户端Microsoft AJAX Library相关》定稿+详细章节列表
- 列表查询
- WSS3.0开发-过滤列表内容(2)--一个增强的列表元数据查询webpart(SmartQueryWebPart)