Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
OnFinality Learn
网络与协议指南12 分钟阅读

Monad RPC 端点:测试网设置、方法与延迟

了解如何连接 Monad 的 EVM 兼容 JSON-RPC 端点,将 Monad 添加到 MetaMask,运行 curl 示例,并验证端点健康与延迟。

TL;DR

Monad 是一个 EVM 兼容的第 1 层区块链,具有高性能和并行执行能力。本指南介绍如何查找和使用 Monad RPC 端点、将 Monad 添加到 MetaMask、运行基本的 JSON-RPC 调用,以及验证端点健康和延迟。还涵盖常见问题和限制。

直接回答:Monad RPC 端点

Monad 是一个 EVM 兼容的第 1 层区块链,旨在通过并行执行和自定义共识机制提供高吞吐量。要与 Monad 交互,您需要一个支持标准以太坊 JSON-RPC 协议的 RPC 端点。截至撰写本文时,Monad 处于测试网阶段,官方公共 RPC 端点为 https://testnet-rpc.monad.xyz。Monad 测试网的链 ID 为 10143。您可以使用此端点查询区块链数据、发送交易和部署智能合约。但请注意,端点和网络参数可能在最终主网启动前发生变化,因此请始终参考 Monad 开发者文档 获取最新信息。

对于生产级访问,您可以使用像 OnFinality 这样的托管 RPC 提供商,它提供可靠且可扩展的端点。OnFinality 提供了一个专门的 Monad RPC 端点页面,您可以在其中找到最新的端点和连接详细信息。本指南将引导您完成设置、常用方法以及如何测量延迟。

  • 官方测试网 RPC:https://testnet-rpc.monad.xyz
  • 链 ID:10143
  • WebSocket (WSS) 端点:wss://testnet-rpc.monad.xyz/ws(如果可用)
  • 始终从官方来源验证当前端点。

Monad 的 EVM 兼容 JSON-RPC 接口

Monad 被设计为完全 EVM 兼容,这意味着它支持与以太坊相同的 JSON-RPC 方法。这包括标准方法,如 eth_chainIdeth_blockNumbereth_getBalanceeth_calleth_sendRawTransaction 等。这种兼容性允许开发人员使用熟悉的工具,如 MetaMask、Hardhat 和 ethers.js,而无需进行重大更改。

在底层,Monad 使用并行执行引擎,可以并发处理交易,但这对于 RPC 层是透明的。JSON-RPC 接口保持标准,因此您可以像与以太坊交互一样与 Monad 交互。有关支持的方法的完整列表,请参阅 Monad 文档

一个重要方面是,与以太坊相比,Monad 的测试网可能具有不同的 gas 机制或区块时间,但 RPC 方法本身是相同的。这意味着任何适用于 JSON-RPC 的以太坊工具都应该可以直接用于 Monad。

查找当前的测试网和主网 RPC 端点

查找当前 Monad RPC 端点最可靠的方法是查看官方 Monad 文档和网络状态页面。截至发布日期,测试网 RPC 为 https://testnet-rpc.monad.xyz。对于 WebSocket 连接,如果支持,您可以使用 wss://testnet-rpc.monad.xyz/ws。但是,这些端点可能会发生变化,尤其是在 Monad 向主网推进的过程中。

对于托管且稳定的端点,OnFinality 提供了一个专门的 Monad RPC 端点页面,您可以在其中找到最新的端点,包括 HTTP 和 WebSocket URL。OnFinality 还提供了 Monad 主网网络页面(一旦主网上线)和测试网端点。使用托管提供商可确保高可用性和性能,这对于生产应用程序至关重要。

当主网启动时,链 ID 可能会更改,并将提供新的端点。在部署应用程序之前,请始终从官方来源验证链 ID 和端点。

将 Monad 添加到 MetaMask

要使用 MetaMask 与 Monad 交互,您需要添加自定义网络。步骤如下:

  1. 打开 MetaMask,点击顶部的网络下拉菜单。2. 点击“添加网络”或“自定义 RPC”。3. 填写以下详细信息:网络名称:Monad 测试网,新的 RPC URL:https://testnet-rpc.monad.xyz,链 ID:10143,货币符号:MON,区块浏览器 URL:https://testnet.monadexplorer.com(或官方浏览器)。4. 点击保存。您现在应该已连接到 Monad 测试网。

或者,如果您有专用端点,可以使用 OnFinality RPC 端点。过程相同,只需将 RPC URL 替换为您的 OnFinality 端点。有关更多详细信息,请参阅 Monad 文档OnFinality RPC 助手

  • 网络名称:Monad 测试网
  • RPC URL:https://testnet-rpc.monad.xyz
  • 链 ID:10143
  • 货币符号:MON
  • 区块浏览器:https://testnet.monadexplorer.com

可运行的 curl 示例:eth_chainId、eth_blockNumber、eth_getBalance

您可以使用标准 JSON-RPC 调用与 Monad 的 RPC 端点交互。以下是常用方法的可运行 curl 示例。这些示例假设您的系统上安装了 curl

首先,让我们获取链 ID:

curl -X POST https://testnet-rpc.monad.xyz \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

预期输出:{"jsonrpc":"2.0","result":"0x27af","id":1}。结果 0x27af10143 的十六进制表示。

接下来,获取最新区块号:

curl -X POST https://testnet-rpc.monad.xyz \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

预期输出:{"jsonrpc":"2.0","result":"0x...","id":1},其中 0x... 是当前区块号的十六进制表示。您可以使用 printf '%d\n' 0x... 之类的工具将其转换为十进制。

最后,获取地址的余额(将 0x... 替换为有效地址):

curl -X POST https://testnet-rpc.monad.xyz \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYourAddress","latest"],"id":1}'

预期输出:{"jsonrpc":"2.0","result":"0x...","id":1},其中 0x... 是以 wei 为单位的余额。要获取 MON,请除以 10^18。

curl -X POST https://testnet-rpc.monad.xyz -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
curl -X POST https://testnet-rpc.monad.xyz -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
curl -X POST https://testnet-rpc.monad.xyz -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYourAddress","latest"],"id":1}'

如何验证公共端点的延迟和健康状态

延迟是 RPC 端点的关键因素,尤其是对于需要实时数据的应用程序。要测量延迟,您可以使用 curl 等带有计时选项的工具或专门的网络监控工具。以下是测量 JSON-RPC 调用往返时间的简单方法:

curl -o /dev/null -s -w "Total time: %{time_total}s\n" -X POST https://testnet-rpc.monad.xyz -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

此命令将输出请求所用的总时间。但请注意,这测量的是从您的机器到端点再返回的时间,其中包括网络延迟。为了更准确的测量,您可以使用像 OnFinality 的 RPC 助手 这样的服务,它提供来自多个位置的延迟统计。

要检查端点的健康状态,您还可以验证它是否返回正确的链 ID,以及区块号是否随时间递增。健康的端点应该快速且一致地响应。如果您遇到超时,请参阅我们的 RPC 超时诊断和修复指南

请记住,公共端点可能有速率限制,并且在高峰时段可能较慢。对于生产环境,请考虑使用像 OnFinality 这样的托管提供商,它提供 API 服务,保证性能和正常运行时间。

  • 使用 curl -w 测量总时间。
  • 检查链 ID 是否正确。
  • 监控区块号进展。
  • 考虑使用托管提供商以获得一致的性能。
curl -o /dev/null -s -w "Total time: %{time_total}s\n" -X POST https://testnet-rpc.monad.xyz -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

常见故障与修复

在使用 Monad RPC 端点时,您可能会遇到几个常见问题。以下是一些典型故障及其修复方法:

  1. 链 ID 错误:如果您收到类似 invalid chain id 的错误,请确保您使用的是 10143 作为测试网。请仔细检查 MetaMask 或应用程序中的配置。

  1. 连接超时:如果您的请求超时,端点可能已关闭或过载。尝试使用其他端点或托管提供商。有关详细故障排除,请参阅我们的 RPC 超时指南

  1. 速率限制:公共端点通常有速率限制。如果您收到 429 Too Many Requests,请降低请求频率或使用 OnFinality 的专用端点。

  1. 资金不足:发送交易时,请确保您的账户有足够的 MON 用于 gas。您可以从 Monad 测试网水龙头 获取测试网 MON。

  1. 不支持的方法:如果您收到 method not found 错误,请验证该方法是否受 Monad 支持。大多数以太坊方法都受支持,但某些方法可能出于安全原因被禁用。

  • 检查链 ID 和网络配置。
  • 使用可靠的端点或托管提供商。
  • 监控速率限制并调整请求频率。
  • 确保有足够的测试网资金用于交易。
  • 在官方文档中验证方法支持。

权衡与限制

虽然 Monad 的 EVM 兼容性使入门变得容易,但有一些重要的限制需要牢记。首先,测试网端点可能会随时更改,网络可能会重置。这意味着您存储在测试网上的任何数据都可能丢失。始终设计您的应用程序以处理网络重置。

其次,公共端点不是性能基准。它们用于开发和测试,可能具有速率限制或停机时间。对于生产使用,您应该使用像 OnFinality 这样的托管 RPC 提供商,它提供 定价计划,保证正常运行时间和吞吐量。

第三,Monad 的并行执行可能导致与以太坊不同的交易排序或 gas 行为。虽然 RPC 接口相同,但底层共识和执行模型可能会影响您估算 gas 或处理 nonce 的方式。始终在测试网上进行充分测试。

最后,您执行的延迟测量是相对于您的位置和网络条件的。它们并不代表 Monad 网络本身的性能。为了准确的延迟比较,请使用从多个地理位置测试的工具,例如 OnFinality RPC 助手

  • 测试网端点可能会更改或重置。
  • 公共端点不是性能基准。
  • 并行执行可能会影响 gas 和 nonce 处理。
  • 延迟测量取决于位置。

后续步骤和更多资源

既然您对 Monad RPC 端点有了扎实的了解,您就可以开始在 Monad 上构建了。以下是一些后续步骤:

  1. Monad 水龙头 获取测试网 MON 来为您的交易提供资金。2. 使用 Hardhat 或 Foundry 部署智能合约,指向 Monad RPC 端点。3. 通过 Monad 状态页面 监控网络状态。4. 探索 Monad 文档 了解并行执行和共识等高级主题。

对于可靠的 RPC 基础设施,请考虑使用 OnFinality 的 API 服务。您还可以查看 Monad 主网网络页面 以获取主网启动时的更新。如果您遇到任何问题,我们的 RPC 超时指南学习中心 是很好的资源。

请记住始终从官方来源验证端点和链 ID,因为它们可能会更改。祝您在 Monad 上构建愉快!

  • 从水龙头获取测试网 MON。
  • 使用标准以太坊工具部署智能合约。
  • 监控网络状态和更新。
  • 使用 OnFinality 获取生产级 RPC 服务。

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始