是否可以过滤以太坊的待处理交易?

Sam*_*son 2 rpc json-rpc ethereum

为了获取我的节点所知道的待处理事务的列表,我可以轻松地调用eth_pendingTransactionsjRPC 调用。这将给出一个待处理事务的大列表,所有这些都需要解析以找到客户端关心的待处理事务。

是否可以预先过滤交易?有eth_newpendingtransactionfilter什么帮助https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newpendingtransactionfilter吗?我似乎无法理解这与待处理交易有何关系。

Sam*_*son 5

好吧,我做了更多的挖掘,找到了答案。

  • eth_pendingTransactions无法过滤。
  • eth_newpendingtransactionfilter不过滤任何内容,而是订阅客户端以在新的待处理事务进入事务池时接收事件。

然而,以太坊节点的 OpenEthereum 实现中有一个 JSON_RPC 方法,允许过滤挂起的交易。

parity_pendingtransactions

例子:

{
  "jsonrpc":"2.0",
  "method":"parity_pendingTransactions",
  "params":[
    null,
    {
      "to": { "eq": "0xe8b2d01ffa0a15736b2370b6e5064f9702c891b6" }
    }
  ],
  "id":1
}
Run Code Online (Sandbox Code Playgroud)

显然这意味着运行一个 OpenEthereum 节点。