摘要
Moonbeam RPC 端点是一个 URL,允许兼容以太坊的钱包和 dApp 向 Polkadot 上的 Moonbeam 平行链发送 JSON-RPC 请求。它使用标准的以太坊方法以及 Moonbeam 特有的扩展,链 ID 为 1284,原生代币为 GLMR。
开发者使用这些端点进行读取、交易、事件订阅和索引。本页介绍所需的网络设置、如何使用 curl 测试端点,以及为生产工作负载选择提供商时需要评估哪些事项。
Moonbeam 是 Polkadot 生态中一个兼容以太坊的智能合约平行链。Moonbeam RPC 端点是您的钱包、dApp、索引器或自动化服务用来向 Moonbeam 网络发送 JSON-RPC 请求的 URL。有了正确的端点,您可以读取链上数据、估算并发送交易,以及通过 WebSocket 订阅事件。
本页介绍您需要的 Moonbeam 网络设置,展示如何使用 curl 测试 Moonbeam RPC 端点,并梳理从公共端点迁移到生产基础设施时需要关注的关键决策。
Moonbeam RPC 决策清单
- 确认您需要 HTTPS、WSS 还是两者兼顾。标准请求使用 HTTPS,实时事件订阅使用 WSS。
- 验证链 ID。Moonbeam 主网使用 1284(
0x504);Moonbase Alpha 测试网使用 1287。 - 在接入交易签名之前,先用
eth_chainId或eth_blockNumber等简单读取方法进行测试。 - 确定是否需要归档状态或 trace 方法。索引和分析工具经常需要这些,但并非每个提供商都提供。
- 检查针对预期流量的速率限制和请求定价。
- 当您需要隔离或稳定的吞吐量时,比较共享端点和专用节点选项。
什么是 Moonbeam RPC 端点?
RPC 端点是暴露 Moonbeam 网络 JSON-RPC API 的 URL。由于 Moonbeam 兼容 EVM,该端点接受软件在其他 EVM 链上已经使用的相同以太坊方法,例如 eth_call、eth_getBalance、eth_sendRawTransaction 和 eth_subscribe。
开发者通过 HTTPS 发送标准调用请求,或通过 WSS 发送订阅请求。响应格式为 JSON-RPC 2.0,因此现有的 web3 库和框架只需极少的配置即可连接。Moonbeam 还添加了原生 Polkadot 功能,如最终性和跨链消息传递,RPC API 也包含 Moonbeam 特有的方法来查询这些行为。
在实际层面,Moonbeam RPC 端点的行为类似于您可能已经使用的以太坊 RPC 端点:您的应用程序发送一个包含方法名和参数的 JSON 对象,端点返回结果或错误。主要区别在于该端点特定于 Moonbeam 平行链,因此不能用于读取其他 Polkadot 平行链或以太坊本身的状态。
Moonbeam 网络规格
| 属性 | 值 |
|---|---|
| 链 ID | 1284 |
| 十六进制链 ID | 0x504 |
| 原生代币 | GLMR |
| 区块浏览器 | Moonscan |
| 公共 HTTPS 端点 | https://rpc.api.moonbeam.network |
| 公共 WSS 端点 | wss://wss.api.moonbeam.network |
| API 风格 | 以太坊 JSON-RPC + Moonbeam 方法 |
公共端点 URL 可能会被网络团队更新。在应用程序中依赖它们之前,请查阅官方 Moonbeam 文档验证当前值。
在哪里找到 Moonbeam RPC 端点
查找端点最简单的方法是使用网络列表、RPC 提供商或官方 Moonbeam 文档。公共端点适合原型开发,但通常有速率限制、不太可预测的延迟,以及对归档或 trace 方法的支持有限。
对于生产工作负载,大多数团队使用托管基础设施提供商或运行专用节点。OnFinality 提供对 Moonbeam 的 RPC API 访问以及专用的 Moonbeam 节点基础设施。您可以在 Moonbeam 网络页面 上找到端点详细信息和当前网络支持。如果您需要更全面的了解,RPC API 服务 页面解释了托管端点的工作原理。
在评估端点时,先对其运行几个查询,再编写代码。检查以太坊方法是否可用,验证链 ID,并测试 WSS 可用性(如果您计划使用订阅)。在浏览器中看起来正常的端点在负载下仍然可能失败。
如何连接到 Moonbeam RPC 端点
使用 curl 进行快速健康检查。下面的示例向 Moonbeam 公共 HTTPS 端点发送 eth_chainId 请求。
curl -X POST https://rpc.api.moonbeam.network \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
成功响应返回十六进制链 ID:
{"jsonrpc":"2.0","result":"0x504","id":1}
0x504 是十进制的 1284。如果遇到错误,请检查 URL、连接,以及端点是否暂时被限流。
以下是使用 ethers.js 的相同调用:
import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider('https://rpc.api.moonbeam.network');
const network = await provider.getNetwork();
console.log(network.chainId.toString()); // 1284
对于实时数据,使用支持订阅的客户端连接到 WSS 端点。相同的 JSON-RPC 接口适用于 HTTPS 和 WSS,主要区别在于您如何维护连接。
如何将 Moonbeam 添加到钱包
要将 Moonbeam 添加到 MetaMask 等钱包,请使用以下主网设置:
- 网络名称:Moonbeam
- RPC URL:Moonbeam 主网的 HTTPS 端点
- 链 ID:1284
- 符号:GLMR
- 区块浏览器:https://moonscan.io
有些钱包支持 WSS 端点,有些则不支持。对于生产 dApp,请将 HTTPS 端点作为主要 RPC URL,并使用单独的 WSS 客户端进行实时订阅。
如果您在测试,Moonbase Alpha 使用链 ID 1287 和不同的代币。测试网水龙头可通过官方 Moonbeam 文档获取。请将主网和测试网设置分开,避免将测试交易发送到错误的链。
为生产环境选择 Moonbeam RPC 提供商
合适的提供商取决于您的工作负载。一个只读取余额的简单 dApp 与一个重放历史事件的索引器需要不同的基础设施。在确定之前,请比较以下各项。
| 标准 | 需要检查的内容 | 为什么重要 |
|---|---|---|
| HTTPS 和 WSS 支持 | 您的套餐中包含两种端点类型 | 流式应用需要 WSS 进行订阅;大多数 API 使用 HTTPS |
| 吞吐量和速率限制 | 您所在层级的每秒请求数和每日上限 | 用户活动激增时不应返回 429 错误 |
| 归档和 trace 数据 | 归档 RPC 和 debug_traceTransaction 的可用性 | 索引器、分析和区块浏览器需要历史状态 |
| 地理覆盖 | 区域端点和全局负载均衡 | 降低不同区域用户的延迟 |
| 专用节点选项 | 能够为您的项目隔离资源 | 避免“吵闹邻居”效应并支持自定义调优 |
| 定价模式 | 按请求、按 RU、固定或超额收费 | 随着流量增长保持成本可预测 |
| 故障转移行为 | 冗余 URL、重试逻辑和状态页面 | 防止单个端点中断导致您的 dApp 宕机 |
对于许多团队来说,托管 RPC 是交付的最快方式。OnFinality 提供共享和专用的 Moonbeam 基础设施,因此您可以从 API 密钥开始,当工作负载需要时再迁移到专用节点。查看 RPC 定价 和 受支持的 RPC 网络 列表以了解当前选项。如果您需要私有环境,专用节点 页面涵盖了操作上的权衡。
排查常见的 Moonbeam RPC 问题
- 429 Too Many Requests(请求过多):降低请求速率、增加批量处理,或改用吞吐量更高的套餐。
- 403 Forbidden(禁止访问):检查您的 API 密钥是否有效,以及端点是否允许您调用的方法。
- 超时:使用区域端点,或将大型请求拆分为较小的批次。
- 错误的链 ID:调用
eth_chainId并确认它返回0x504。 - WebSocket 断开:添加自动重连逻辑,如果您运行基础设施,请监控地址变化。
- 不支持的方法:在围绕归档或 trace 方法构建功能之前,请确认您的套餐中包含这些方法。
- 最终性检查:当您需要确认交易已最终确定(而非仅被包含)时,请使用 Moonbeam 的最终性方法,如
moon_isBlockFinalized和moon_isTxFinalized。
大多数 RPC 错误并非链特有。如果您看到 -32000 服务器错误,端点可能不支持您调用的方法。如果您看到空响应,请检查端点是否需要 API 密钥或自定义请求头。
关键要点
- Moonbeam RPC 遵循以太坊 JSON-RPC,因此大多数 EVM 工具只需极少的更改即可使用。
- 主网链 ID 为 1284,原生代币为 GLMR。
- 公共端点适合测试,但生产应用应使用具有限流余量和支持的提供商。
- WSS 端点对于实时订阅和事件监听器很重要。
- 在选择提供商之前,比较吞吐量、归档数据、定价和故障转移行为。
常见问题
什么是 Moonbeam RPC 端点?
Moonbeam RPC 端点是接受兼容以太坊的 JSON-RPC 请求的 URL。主网 HTTPS 端点通常是 https://rpc.api.moonbeam.network,但您应在官方 Moonbeam 文档中验证当前 URL。
Moonbeam 链 ID 是什么?
Moonbeam 主网使用链 ID 1284,即十六进制的 0x504。Moonbase Alpha 测试网使用链 ID 1287。
Moonbeam RPC 支持以太坊方法吗?
是的。由于 Moonbeam 兼容 EVM,标准方法(如 eth_call、eth_sendRawTransaction、eth_getLogs 和 eth_subscribe)在 Moonbeam 上均可使用。
如何为生产环境找到可靠的 Moonbeam RPC?
使用支持 HTTPS 和 WSS、在需要时提供归档或 trace 方法,并具有透明速率限制的托管提供商。OnFinality 在其 网络页面 上列出了 Moonbeam 及当前可用的 RPC 选项。