以太坊solidity之Event事件监听注意事项

参考:https://www.jianshu.com/p/56f91b1e7985

 

以太坊的Event使用过程中注意事项总结:

区块间隔不易设置过程

在创建filter的时候,如果我们把fromBlock和toBlock设置的间隔特别长,比如从第一个块到最新块,那么启动程序之后要么会等待很久很久,要么直接抛出超时异常。

针对超时异常在可容忍的区块区间之中为了避免异常出现,可将超时时间设长。

针对pending交易的监听需要慎重,引入pending交易可能因为无法查到交易出现异常。

慎重重启节点

首先我们要明确一下,创建的filter其实是放在所链接的节点的内存当中,如果节点重启,那么对应的filter也就随之失效,节点重启之后需要重新创建filter,重新进行监听。

历史交易无法追溯

在使用的时候我们要明确一点,filter虽然可以设置fromBlock但是已经发生且不会变化的交易是无法通过eth_getFilterChanges获取到的。顾名思义,只有changes的交易才能获取到。比如监听在某个区块区间,这个区块区间的交易已经被打包确认,此时再创建filter,eth_getFilterChanges是无法拿到被打包确认的交易,只能获取到创建filter之后发生变化的交易。

【非常重要】因此,在实际使用的过程中要时刻注意filter是否存活。

 

你可能感兴趣的:(solidity)