项目需要对大量ETH账号的交易情况进行监听,包括ETH交易和ERC20代币交易。如果按单个账号不断轮询交易信息的话,并不能满足我们的数千万的地址监控要求 这个方案延迟无法容忍,同时对节点接口的压力太大。那么换一个思路,我们能否一个区块一个区块来解析呢?这样压力就小了很多了。
以太坊节点有查询区块所有交易的接口,但此接口无法直接获取以太坊的内部交易信息,导致查询的交易数据缺失,有什么替代方案呢。
我们可以将普通ETH交易,ETH内部交易和ERC20代币交易分开查询,确保不会丢失交易数据。
采用web3j库和infura提供的节点以及etherscan的api来查询:
大约 3 分钟