通过Web3.py在InFura节点获取Etherum txpool挂起事务的不同方式

Different ways of getting Ethereum txpool pending transactions at Infura node via Web3.py(通过Web3.py在InFura节点获取Etherum txpool挂起事务的不同方式)

本文介绍了通过Web3.py在InFura节点获取Etherum txpool挂起事务的不同方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望通过Web3.py查看Etherum txpool中的实时挂起事务。我不运行本地节点,而是使用InFura。

根据Web3.py的文档,显然有三个不同的选项:

  1. 使用TX Pool API
  2. 使用web3.eth.getBlock('pending')
  3. 使用web3.eth.filter('pending')
选项1不可行,因为API似乎不支持InFura节点。因此,我尝试了选项2和选项3,他们给出了两组不同的待定交易。有没有人知道为什么会这样?这两个方法检索不同的挂起事务吗?谢谢!

选项2

pending_block= w3.eth.getBlock(block_identifier='pending', full_transactions=True)
pending_transactions= pending_block.['transactions']

选项3

pending_transactions_filter= w3.eth.filter('pending')
pending_transactions= pending_transactions_filter.get_new_entries()

推荐答案

这些是根本不同的事务集,因为选项2似乎只筛选挂起块,但选项3甚至包括甚至不在挂起块中的更多挂起事务。这对我来说是显而易见的,因为选项2允许您获取完整的TX内容/信息,但选项3只给了我txhash ID,其中许多ID无法查找。

这篇关于通过Web3.py在InFura节点获取Etherum txpool挂起事务的不同方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:通过Web3.py在InFura节点获取Etherum txpool挂起事务的不同方式

基础教程推荐