python - 通过 Web3.py 在 Infura 节点获取以太坊 txpool 待处理交易的不同方法
问题描述
我想通过 Web3.py 查看以太坊 txpool 中的实时待处理交易。我不运行本地节点,而是使用 Infura。
根据 Web3.py 的文档,显然有三个不同的选项:
选项 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,其中许多是无法查找的。
推荐阅读
- json - 如何使用 T-SQL 从具有相似标签的 json 中获取特定值
- python - 有没有办法在不提交的情况下避免 FK 完整性错误?
- processing - 如何在 Leap Motion 中获取先前的手指位置
- leaflet - baseLayers 的地图控制的传单问题
- c# - Using 语句中的对象不是不可变的?
- django - 如何在 Django Rest Framework 中一次创建多个连接对象?
- html - 我的 CSS 在滚动捕捉点上有一些问题
- swift - iOS 键盘隐藏了一个 UITextField
- wpf - 何时使用基于其他样式的样式变得过度?
- javascript - chrome.storage.sync 调用未触发