已知的以太坊节点缺乏获取ETH地址(账户)交易列表的功能。
为了解决这个问题,有一个免费且开源的第三方解决方案——以太坊交易索引器:
https://github.com/Adamant-im/ETH-transactions-storage
该索引器允许通过以太坊地址探索交易,并在一步之内获取任何用户或钱包的历史记录,就像Etherscan一样。索引器使用Python编写,作为后台服务运行:
- 连接以太坊节点(与geth或parity兼容)
- 将所有交易存储在Postgres数据库中(包括智能合约交易)
- 提供API数据以获取地址的交易
索引器连接以太坊节点并使用JSON RPC获取交易,创建Postgres数据库中的交易索引。首次创建索引时,索引器将从指定的区块开始存储交易。之后,它将每20秒检查新的区块并更新索引。您可以更改间隔时间。
以太坊交易索引器的API由Postgrest工具发布。如果需要提供公共API,请使用任何Web服务器(如nginx),并在配置中设置代理到Postgrest端口。
在创建索引后,您可以使用以下请求:
curl -k -X GET "http://localhost:3000/?and=(contract_to.eq.,or(txfrom.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094,txto.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094))&order=time.desc&limit=25"
或者
https://yourserver.com/ethtxs?and=(contract_to.eq.,or(txfrom.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094,txto.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094))&order=time.desc&limit=25
该请求将显示以时间戳排序的以太坊地址0x6b924750e56a674a2ad01fbf09c7c9012f16f094的最近25笔交易记录。