Skip to content

支持的以太坊RPC方法

概览

虽然Moonbeam致力于兼容以太坊Web3 API和EVM,但开发者仍需了解Moonbeam在以太坊API JSON-RPC支持方面与以太坊之间的重要差异。

Moonbeam团队与Parity密切合作开发Frontier。Frontier是基于Substrate的以太坊兼容层,它允许开发人员运行未经修改的以太坊DApp。

尽管如此,并非所有的以太坊JSON-RPC方法都被支持,一些被支持的方法返回默认值(尤其是与以太坊PoW共识机制相关的那些)。本教程将概述关于以太坊RPC支持的一些主要差异,以及首次使用Moonbeam时需要了解的事项。

基本以太坊JSON-RPC方法

Moonbeam支持的以太坊API的基本JSON-RPC方法:

过滤器相关以太坊JSON-RPC方法

Moonbeam支持的以太坊API的过滤器相关JSON-RPC方法:

  • eth_newFilter —— 根据所提供的输入创建过滤器对象。返回一个过滤器ID
  • eth_newBlockFilter —— 在节点中创建过滤器以在新的区块到达时进行通知。返回一个过滤器ID
  • eth_getFilterChanges —— 过滤器的轮询方法(参考以上方法)。返回自上次轮询以来发生的日志数组
  • eth_getFilterLogs —— 返回匹配指定ID过滤器的所有日志数组
  • eth_uninstallFilter —— 卸载指定ID的过滤器。应在不需要轮询时使用。一段时间后未使用eth_getFilterChanges请求过滤器超时

事件订阅以太坊JSON-RPC方法

截止本文撰写时,Moonbeam支持的以太坊API的事件订阅JSON-RPC方法

已支持订阅

截止本文撰写时,已支持的订阅

  • newHeads —— 每次将新的标题附加至链都会触发通知
  • logs —— 返回包含在新导入区块中并匹配指定过滤条件的日志
  • newPendingTransactions —— 返回所有增加至待处理状态的交易哈希
  • syncing —— 表示节点开始或停止与网络同步

如果您想获得跟多关于这些订阅的详细教程,请查看事件订阅教程。

Debug与Trace JSON-RPC方法

Moonbeam支持的GethdebugtxpoolAPI,以及 OpenEthereum的trace模块如下:

  • debug_traceTransaction - 通过一个交易哈希,这个方法试着按照原始交易步骤重新执行该交易
  • debug_traceBlockByNumber - 给定一个区块编号,此方法尝试以与网络上执行的完全相同的方式重新执行该区块。
  • debug_traceBlockByHash - 给定一个区块哈希,此方法尝试以与网络上执行的完全相同的方式重新执行该区块。
  • trace_filter - 根据filter,此方法返回对应的trace
  • txpool_content - 返回所有当前处于待处理状态的交易的详细信息,这些交易正在等待被纳入未来的下个或几个区块,并排队等待未来执行。
  • txpool_inspect - 返回所有当前处于待处理状态的交易的摘要,这些交易正在等待被纳入未来的下个或几个区块,并排队等待未来执行。
  • txpool_status - 返回所有当前处于待处理状态的交易数量,这些交易正在等待被纳入未来的下个或几个区块,并排队等待未来执行

学习更多关于这些debug和trace方法,访问Debug API & Trace模块教程.

Last update: January 23, 2024
| Created: October 1, 2021