3

我目前正在编写一些程序来监控 bsc 节点的内存池。由于我的 BSC 节点是按请求计数收费的,因此我正在尝试探索节省时间和成本的最佳方法。这是我找到的一些计划:

  1. 使用 mempool exploer 的服务。https://www.blocknative.com/。这显然不是最好的计划,因为我已经在 quicknode 服务上支付了 99 美元,而且我发现一些交易仍然不在它提供的列表中。
  2. 用户 web3py 挂起过滤器:new_transaction_filter = w3.eth.filter('pending') new_transaction_filter.get_new_entries()w3.eth.get_transaction(entry)为每个条目。这也不是有效的,因为它非常浪费时间并且花费了大量的 web3 请求。
  3. 使用 pending_block = w3.eth.get_block(block_identifier='pending', full_transactions=True)该调用仅返回具有已开采块号的交易,而显然不是“待处理”的交易。
  4. 使用w3.geth.txpool.content(). 这可以一次打印出所有待处理的交易,但是当您继续调用它时,会出现重复的记录。

谁能给我一个提示,这是获取内存池的正确方法吗?谢谢你。

4

1 回答 1

1

我认为选项 2 是最好的,我一直在尝试查看是否有办法仅将特定地址应用于过滤器,但我没有运气,我尝试了选项 3,但为时已晚,选项 4仅适用于 geth 节点(我一直在使用 speedynode 所以不是最好的)。

于 2022-01-13T17:52:50.280 回答