首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过web3获取“`txpool`”中的挂起事务

通过web3获取“`txpool`”中的挂起事务
EN

Ethereum用户
提问于 2018-10-31 22:16:26
回答 2查看 2.5K关注 0票数 4

我想监视待定事务的备忘录池。据我所知,eth_subscribe可以监视挂起的事务(例如已回答的这里)。但我的一些交易被困在了txpool, and they don't seem to show up in the result ofeth_subscribe`中。

我对从eth_subscribe返回的内存池、by池和挂起事务之间的区别感到困惑。

  1. 如何检索txpool中已经存在的事务?
  2. eth_subscribe只返回txid。其中一些是eth.getTransaction找不到的。那是什么意思?
  3. eth_subscribe返回的事务与txpool中的事务不同。目前尚不清楚它们是否构成了txpool的超集。
EN

回答 2

Ethereum用户

发布于 2021-06-27 17:17:52

实际上,Web3有一个返回您所寻找的内容的方法,您可以在这里找到详细信息:https://web3py.readthedocs.io/en/fix_文档_build/web3.txpool.html#web3.txpool.TxPool.content

一个简单的呼吁如下:

代码语言:javascript
复制
w3 = Web3(HTTPProvider("http://provider.com"))
w3.geth.txpool.content()

这样就可以很好地获取dict中挂起的事务的所有数据,如下所示:

代码语言:javascript
复制
{
'pending': {
    '0x0216d5032f356960cd3749c31ab34eeff21b3395': {
    806: [{
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x0216d5032f356960cd3749c31ab34eeff21b3395",
        'gas': "0x5208",
        'gasPrice': "0xba43b7400",
        'hash': "0xaf953a2d01f55cfe080c0c94150a60105e8ac3d51153058a1f03dd239dd08586",
        'input': "0x",
        'nonce': "0x326",
        'to': "0x7f69a91a3cf4be60020fb58b893b7cbb65376db8",
        'transactionIndex': None,
        'value': "0x19a99f0cf456000"
    }]
    },
    '0x24d407e5a0b506e1cb2fae163100b5de01f5193c': {
    34: [{
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x24d407e5a0b506e1cb2fae163100b5de01f5193c",
        'gas': "0x44c72",
        'gasPrice': "0x4a817c800",
        'hash': "0xb5b8b853af32226755a65ba0602f7ed0e8be2211516153b75e9ed640a7d359fe",
        'input': "0xb61d27f600000000000000000000000024d407e5a0b506e1cb2fae163100b5de01f5193c00000000000000000000000000000000000000000000000053444835ec580000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        'nonce': "0x22",
        'to': "0x7320785200f74861b69c49e4ab32399a71b34f1a",
        'transactionIndex': None,
        'value': "0x0"
    }]
    }
},
'queued': {
    '0x976a3fc5d6f7d259ebfb4cc2ae75115475e9867c': {
    3: [{
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x976a3fc5d6f7d259ebfb4cc2ae75115475e9867c",
        'gas': "0x15f90",
        'gasPrice': "0x4a817c800",
        'hash': "0x57b30c59fc39a50e1cba90e3099286dfa5aaf60294a629240b5bbec6e2e66576",
        'input': "0x",
        'nonce': "0x3",
        'to': "0x346fb27de7e7370008f5da379f74dd49f5f2f80f",
        'transactionIndex': None,
        'value': "0x1f161421c8e0000"
    }]
    },
    '0x9b11bf0459b0c4b2f87f8cebca4cfc26f294b63a': {
    2: [{
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x9b11bf0459b0c4b2f87f8cebca4cfc26f294b63a",
        'gas': "0x15f90",
        'gasPrice': "0xba43b7400",
        'hash': "0x3a3c0698552eec2455ed3190eac3996feccc806970a4a056106deaf6ceb1e5e3",
        'input': "0x",
        'nonce': "0x2",
        'to': "0x24a461f25ee6a318bdef7f33de634a67bb67ac9d",
        'transactionIndex': None,
        'value': "0xebec21ee1da40000"
    }],
    6: [{
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x9b11bf0459b0c4b2f87f8cebca4cfc26f294b63a",
        'gas': "0x15f90",
        'gasPrice': "0x4a817c800",
        'hash': "0xbbcd1e45eae3b859203a04be7d6e1d7b03b222ec1d66dfcc8011dd39794b147e",
        'input': "0x",
        'nonce': "0x6",
        'to': "0x6368f3f8c2b42435d6c136757382e4a59436a681",
        'transactionIndex': None,
        'value': "0xf9a951af55470000"
    }, {
        'blockHash': "0x0000000000000000000000000000000000000000000000000000000000000000",
        'blockNumber': None,
        'from': "0x9b11bf0459b0c4b2f87f8cebca4cfc26f294b63a",
        'gas': "0x15f90",
        'gasPrice': "0x4a817c800",
        'hash': "0x60803251d43f072904dc3a2d6a084701cd35b4985790baaf8a8f76696041b272",
        'input': "0x",
        'nonce': "0x6",
        'to': "0x8db7b4e0ecb095fbd01dffa62010801296a9ac78",
        'transactionIndex': None,
        'value': "0xebe866f5f0a06000"
    }],
    }
}
}

我在Python中提供了这个示例,因为您没有指定您正在使用的任何语言。

票数 0
EN

Ethereum用户

发布于 2018-11-01 04:08:02

如果您感到困惑,我建议您使用JSON-RPC。

代码语言:javascript
复制
curl -X POST -d '{"jsonrpc":"2.0","method":"txpool_status","params":[],"id":1}' http://ip:port
curl -X POST -d '{"jsonrpc":"2.0","method":"txpool_content","params":[],"id":1}' http://ip:port
curl -X POST -d '{"jsonrpc":"2.0","method":"txpool_inspect","params":[],"id":1}' http://ip:port

如果您熟悉用您使用的语言创建POST请求,请将上面的curl命令更改为并使用。

票数 -1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/61560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档