摘要
Moonbeam是Polkadot上兼容以太坊的平行链。要与它交互,你需要一个JSON-RPC端点。本页面涵盖公共端点、支持的JSON-RPC方法以及如何为Moonbeam、Moonriver和Moonbase Alpha选择生产级RPC提供商。
Moonbeam API决策清单
在开始基于Moonbeam构建之前,评估以下因素以选择正确的API方法:
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 网络类型 | Moonbeam(Polkadot)、Moonriver(Kusama)或Moonbase Alpha(测试网) | 每个都有独立的端点和GLMR/MOVR/DEV代币 |
| 端点可靠性 | 运行时间历史、速率限制和专用节点选项 | 公共端点可能限流;生产应用需要一致的可用性 |
| 归档数据 | 提供商是否支持归档节点请求? | 历史状态查询(如过去区块的eth_call)需要 |
| WebSocket支持 | 是否提供WSS URL | 实时订阅(如待处理交易)需要 |
| JSON-RPC方法覆盖 | 完整的以太坊API兼容性加上Moonbeam特有方法 | 大多数dApp需要eth_、net_、web3_*,加上debug/trace |
| 定价模式 | 按需付费 vs. 固定订阅 vs. 专用节点 | 根据请求量和预算选择 |
Moonbeam网络概述
Moonbeam是Polkadot网络上完全兼容以太坊的平行链。它允许开发者部署现有的Solidity智能合约而几乎无需修改,同时受益于Polkadot的共享安全性和跨链互操作性。该网络拥有三个核心环境:
- Moonbeam(主网) – GLMR代币,连接到Polkadot
- Moonriver(金丝雀网络) – MOVR代币,连接到Kusama
- Moonbase Alpha(测试网) – DEV代币,用于开发和测试
三者都支持标准的以太坊JSON-RPC接口,因此与MetaMask、Hardhat、Truffle以及其他熟悉的开发者工具兼容。
公共端点 vs. 生产级RPC端点
公共端点(免费、受限)
Moonbeam基金会和其他提供商提供用于开发和小流量使用的公共端点。它们有速率限制,不建议用于生产应用。
| 网络 | HTTPS URL | WSS URL | 速率限制 |
|---|---|---|---|
| Moonbeam | https://rpc.api.moonbeam.network | wss://wss.api.moonbeam.network | 25 req/s |
| Moonriver | https://rpc.api.moonriver.moonbeam.network | wss://wss.api.moonriver.moonbeam.network | 25 req/s |
| Moonbase Alpha | https://rpc.api.moonbase.moonbeam.network | wss://wss.api.moonbase.moonbeam.network | 25 req/s |
生产级RPC提供商选项
对于生产dApp,你需要一个可靠的RPC提供商,提供更高的速率限制、专用节点和归档数据。OnFinality为所有Moonbeam网络提供RPC端点,具有可扩展的基础设施。你也可以考虑Moonbeam文档中列出的提供商。
选择提供商时,请关注:
- 透明的定价(如免费层、按需付费、专用节点)
- 归档节点支持
- WebSocket(WSS)可用性
- 多区域故障转移和正常运行时间保证(使用谨慎措辞)
- 开发者友好的仪表板和API密钥
Moonbeam上的基本JSON-RPC方法
Moonbeam支持标准的以太坊JSON-RPC方法以及一些额外的API。以下是最常用的方法。
核心以太坊方法
// 示例:获取最新区块号
curl -X POST https://moonbeam.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"eth_blockNumber",
"params":[],
"id":1
}'
方法列表
| 方法 | 描述 | 备注 |
|---|---|---|
eth_blockNumber | 最新区块号 | |
eth_getBalance | 账户余额 | 支持区块标签 |
eth_call | 执行只读合约调用 | 支持归档区块 |
eth_estimateGas | 估算交易燃料 | |
eth_gasPrice | 当前燃料价格 | |
eth_getLogs | 过滤事件日志 | 使用address、topics、block range |
eth_getTransactionReceipt | 通过哈希获取收据 | |
eth_sendRawTransaction | 提交已签名交易 | |
net_version | 网络ID(Moonbeam为1284) | |
web3_clientVersion | 客户端版本 |
Moonbeam特有及调试/追踪
debug_traceTransaction:用于调试交易执行(需要归档节点)trace_filter:Parity风格的追踪过滤eth_subscribe(WSS):实时事件订阅
注意:某些方法(如
trace_*)需要支持trace API的提供商。在依赖这些功能前,请与你的提供商确认。
如何使用流行工具连接
MetaMask
- 打开MetaMask,点击“添加网络”手动添加。
- 为Moonbeam输入以下详细信息:
- 网络名称:Moonbeam
- RPC URL:
https://moonbeam.api.onfinality.io/public - 链ID:
1284 - 货币符号:
GLMR - 区块浏览器URL:
https://moonbeam.subscan.io
Hardhat
// hardhat.config.js
module.exports = {
networks: {
moonbeam: {
url: "https://moonbeam.api.onfinality.io/public",
chainId: 1284,
accounts: ["<PRIVATE_KEY>"]
}
}
};
ethers.js
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider(
"https://moonbeam.api.onfinality.io/public"
);
const blockNumber = await provider.getBlockNumber();
console.log("当前区块:", blockNumber);
常见陷阱与故障排除
- 速率限制:公共端点会在每秒请求达到一定数量后限流。生产环境请使用专用或共享私有端点。
- 归档数据:许多提供商仅提供全节点(最新状态)。如果你需要对历史区块执行eth_call,请确保提供商支持归档模式。
- WebSocket断开:对于实时dApp,监控连接健康并实现重连逻辑。
- 链ID不匹配:Moonbeam使用1284,Moonriver使用1285,Moonbase Alpha使用1287。配置钱包时请仔细检查。
- 水龙头:对于Moonbase Alpha测试网的DEV代币,请使用官方水龙头。
选择提供商:对比什么
并非所有RPC提供商对Moonbeam都同样适用。评估时使用此清单:
- 速率限制:匹配你的预期请求量。免费计划适合测试;生产需要更高限制。
- 地理分布:全球端点可减少用户延迟。
- 归档支持:对分析、历史dApp和一些DeFi协议至关重要。
- Trace API:Tenderly或自定义调试等工具需要。
- 定价透明:无隐藏费用,清晰的每请求或月定价。
- 支持:SLA和开发者支持可用性。
OnFinality提供多层次的RPC服务,支持归档和WebSocket端点。查看Moonbeam网络页面了解端点详情。
常见问题解答
问:Moonbeam和Moonriver有什么区别? Moonbeam是Polkadot上的主网平行链(GLMR),而Moonriver是Kusama上的金丝雀网络(MOVR)。两者共享相同的以太坊兼容性,但代币经济和安全模型不同。
问:我可以在Moonbeam上使用以太坊库(ethers.js、web3.js)吗? 可以,Moonbeam完全兼容以太坊。所有标准的以太坊库都可以直接与Moonbeam RPC端点配合使用。
问:如何获得Moonbase Alpha的免费DEV代币? 使用官方Moonbase Alpha水龙头每天领取DEV代币。
问:Moonbeam支持EIP-1559吗?
是的,Moonbeam支持EIP-1559费用市场。使用eth_feeHistory和eth_maxPriorityFeePerGas方法。
问:在哪里可以找到完整的JSON-RPC方法列表?
Moonbeam API概述列出了所有支持的方法。此外,你可以使用eth_subscribe进行实时事件。
要点总结
- Moonbeam为主网、金丝雀网络和测试网提供兼容以太坊的JSON-RPC端点。
- 公共端点适合开发,但由于速率限制不适合生产。
- 根据速率限制、归档支持、WebSocket和定价选择生产级RPC提供商。
- 标准以太坊工具(MetaMask、Hardhat、ethers.js)可无缝与Moonbeam配合使用。
- 对于调试和高级用例,请确保提供商支持trace和归档API。
今天就开始在Moonbeam上构建,通过OnFinality或其他满足你需求的提供商连接可靠的RPC API。