通过矿工地址(address),获取发生的所有交易的hash值,和该矿工所打包的区块
2017-07-10 09:14
155 查看
以太坊Go-ethereum客户端是没有根据地址查询交易列表的API的。然而,在使用过程中我们往往会用到类似的API。针对是否要在客户端上添加此API,github已经有激励的讨论了。点击一下网址可以了解一下:
https://github.com/ethereum/go-ethereum/issues/1897
两个思路,但是都避免不了遍历所有数据手动收集区块链交易来实现这一功能。或者,你可以依赖第三方探索者的API,如EtherChain。 对于合约执行的交易,可以筛选合约日志以实现此目的。
通过Json Rpc去遍历所有区块,把指定地址的交易 和 此地址所打包的区块筛选出来,此方法效率比较低,但是实现起来比较简单,对于无存量数据的处理还是可以的,比如比特币,10分钟才出一个新块,那么通过Json Rpc去请求上一个块中所有数据还是戳戳有余的。调用第三方API接口。此类接口很多,不仅能在官网上查询区块信息,而且提供了查询的API。比如:https://etherchain.org/apidoc 。接口都很简单,不过有访问频次的限制,除非很大的访问量,还是可以使用此类接口。简单,方便。
直接解析账本数据文件,此方法效率较高,但是实现起来较为复杂一点,特别是对于有大量存量数据的情况,推荐这个方法。自行维护数据,自行实现此功能。此方法的基本思路是,查询每个区块的具体交易,录入到自己的数据库中,然后通过sql语句查询自己的数据。此方法就需要有一定的编码基础和设备投入。现有的API是支持查询每一个区块内的交易记录的。虽然比较笨重,但一旦数据由自己维护之后,想怎么查询只是sql语句不同的事情了。
筛选出来的数据一般是存储在关系型数据库中,方便对接你的业务,所以你可能还需要根据实际情况,把表先建好。
如果要查询合约的交易历史,那么可以通过过滤(filter)合约日志来达到此目的。此种场景是有相应的API进行支撑的。
https://github.com/ethereum/go-ethereum/issues/1897
两个思路,但是都避免不了遍历所有数据手动收集区块链交易来实现这一功能。或者,你可以依赖第三方探索者的API,如EtherChain。 对于合约执行的交易,可以筛选合约日志以实现此目的。
通过Json Rpc去遍历所有区块,把指定地址的交易 和 此地址所打包的区块筛选出来,此方法效率比较低,但是实现起来比较简单,对于无存量数据的处理还是可以的,比如比特币,10分钟才出一个新块,那么通过Json Rpc去请求上一个块中所有数据还是戳戳有余的。调用第三方API接口。此类接口很多,不仅能在官网上查询区块信息,而且提供了查询的API。比如:https://etherchain.org/apidoc 。接口都很简单,不过有访问频次的限制,除非很大的访问量,还是可以使用此类接口。简单,方便。
直接解析账本数据文件,此方法效率较高,但是实现起来较为复杂一点,特别是对于有大量存量数据的情况,推荐这个方法。自行维护数据,自行实现此功能。此方法的基本思路是,查询每个区块的具体交易,录入到自己的数据库中,然后通过sql语句查询自己的数据。此方法就需要有一定的编码基础和设备投入。现有的API是支持查询每一个区块内的交易记录的。虽然比较笨重,但一旦数据由自己维护之后,想怎么查询只是sql语句不同的事情了。
筛选出来的数据一般是存储在关系型数据库中,方便对接你的业务,所以你可能还需要根据实际情况,把表先建好。
例外情况
如果要查询合约的交易历史,那么可以通过过滤(filter)合约日志来达到此目的。此种场景是有相应的API进行支撑的。
相关文章推荐
- php通过正则从字符串中获取所有图片url地址
- python通过scapy获取局域网所有主机mac地址示例
- python通过scapy获取局域网所有主机mac地址示例
- 如何获取本机所有MAC地址
- 如何通过VB获取网卡地址
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过
- 如何获取本机所有MAC地址
- Linux 2.6版内核中通过模块获取sys_call_table地址的方法
- C#通过ARP获取指定IP的MAC地址
- 通过sql语句 获取表的所有字段名 类型等属性
- 通过地址获取对应的源代码信息收藏
- 通过ASP.NET获取URL地址方法
- 通过request对象获取访问网站用户的 IP 访问者的浏览器名 操作系统名 从哪里转过来 以及 Url 上的所有参数
- 如何通过VB获取网卡地址
- 获取页面内所有FLASH地址。。。
- 通过反射获取类的所有属性和方法
- 如何通过ADO,获取一个数据库文件里面所有的表?
- jsp获取某网站所有链接地址
- 在windows里通过进程控制块获取所有当前所有进程-其实非常简单
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过【想写基于数据库代码生成器可参考】