摘要
本页介绍什么是 Arbitrum 端点、如何连接到 Arbitrum One 和 Arbitrum Sepolia,以及如何在公共 RPC、专用节点和 API 服务之间进行选择。它涵盖了链设置、请求示例和常见故障模式,以便您可以自信地配置您的 dApp 或后端。
快速决策指南:您应该使用哪个 Arbitrum 端点?
如果您正在构建一个与 Arbitrum 交互的 dApp、索引器或后端服务,第一个决定是使用公共端点、专用节点还是 API 服务。以下是一种快速判断方法:
- 原型开发或低量测试: 使用公共 Arbitrum RPC 端点。它是免费的,适合开发,但它是共享的,在高负载下可能会受到速率限制。
- 具有稳定流量的生产 dApp 或服务: 使用像 OnFinality 这样的托管 RPC API 服务。您将获得更高的吞吐量、WebSocket 支持以及访问 debug/trace 方法的能力,而无需运行自己的基础设施。
- 繁重的归档或自定义索引工作负载: 考虑使用专用节点。这为您提供对节点的独占访问、对方法可用性的完全控制以及可预测的性能。
对于大多数团队来说,托管 API 服务是成本和可靠性的最佳平衡。您可以从公共端点开始,然后随着流量的增长迁移到专用节点或 API 计划。查看 RPC 定价 页面以比较选项。
什么是 Arbitrum 端点?
Arbitrum 端点是您的应用程序用来向 Arbitrum 网络发送 JSON-RPC 请求的 URL。它是读取区块链数据、发送交易和订阅事件的入口点。端点通常由节点运营商提供,可以是公共服务,也可以通过商业 RPC 提供商提供。
Arbitrum 是一个使用乐观汇总的以太坊 Layer 2。它继承了以太坊的安全性,同时提供更低的费用和更高的吞吐量。要与 Arbitrum 交互,您需要一个指向 Arbitrum One(主网)或 Arbitrum Sepolia(测试网)的端点。
Arbitrum 链设置一览
以下是配置钱包或 dApp 所需的关键链设置:
| 设置 | Arbitrum One | Arbitrum Sepolia |
|---|---|---|
| 链 ID | 42161 | 421614 |
| 网络名称 | Arbitrum One | Arbitrum Sepolia |
| 原生货币 | ETH | Sepolia ETH |
| 区块浏览器 | arbiscan.io | sepolia.arbiscan.io |
| 公共 RPC URL | https://arbitrum.api.onfinality.io/public | https://arbitrum-sepolia.api.onfinality.io/public |
这些设置用于将 Arbitrum 添加到 MetaMask 或其他钱包。公共 RPC URL 由 OnFinality 提供,适用于开发和轻度使用。
如何使用 ethers.js 连接到 Arbitrum
以下是一个使用 ethers.js 连接到 Arbitrum One 并读取最新区块号的简单示例:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://arbitrum.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
对于 WebSocket 订阅,您可以使用 WebSocket 端点(如果可用)来监听新的待处理交易或区块头。OnFinality 支持 Arbitrum One 上的 WebSocket;请查看 Arbitrum 网络页面 获取确切的 URL。
使用 curl 进行快速 JSON-RPC 调用
您可以使用简单的 curl 命令测试端点。例如,要获取 Arbitrum One 上的最新区块号:
curl -X POST https://arbitrum.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
这将返回一个十六进制区块号。您可以使用类似的调用来执行 eth_getBalance、eth_call 或 eth_getLogs。
常见故障模式及如何调试
即使使用可靠的端点,您也可能会遇到问题。以下是常见故障模式及其诊断方法:
| 症状 | 可能原因 | 调试步骤 |
|---|---|---|
ECONNREFUSED 或超时 | 端点已关闭或无法访问 | 检查端点 URL 和网络连接。尝试其他提供商。 |
429 Too Many Requests | 超出速率限制 | 降低请求频率或升级到具有更高限制的计划。 |
-32000 或 -32005 错误 | 方法不受支持或参数无效 | 验证方法名称和参数。某些方法(如 eth_getLogs)可能有区块范围限制。 |
| WebSocket 断开 | 空闲超时或网络问题 | 实现重连逻辑和心跳消息。 |
| 错误的链 ID | 将主网端点用于测试网,反之亦然 | 仔细检查配置中的链 ID。 |
如何在公共 RPC、API 服务和专用节点之间进行选择
您的选择取决于您的工作负载。以下是比较,可帮助您做出决定:
| 选项 | 最适合 | 注意事项 |
|---|---|---|
| 公共 RPC(OnFinality) | 开发、测试、低量应用 | 免费,但共享且有限制。无 SLA。 |
| 托管 API 服务(OnFinality) | 生产 dApp、中高流量 | 更高的吞吐量、WebSocket 支持、访问 debug/trace 方法。按需付费定价。 |
| 专用节点(OnFinality) | 繁重的归档索引、自定义 RPC 方法、高一致性 | 独占节点、完全控制、可预测的性能。成本更高。 |
OnFinality 提供所有三种选项。您可以从公共端点开始,并根据需要升级。请参阅 支持的 RPC 网络 页面以获取完整的网络和可用功能列表。
生产就绪检查清单
在部署到生产环境之前,请完成此检查清单:
- 使用专用或托管端点 – 避免对生产流量使用公共端点。
- 实现重试和退避 – 优雅地处理瞬时故障。
- 监控速率限制 – 跟踪您的使用情况,并在达到限制之前升级。
- 使用 WebSocket 获取实时数据 – 如果您的应用需要实时更新,请使用 WebSocket 而不是轮询。
- 先在测试网上测试 – 在 Arbitrum Sepolia 上部署以验证您的集成。
- 保护您的 API 密钥 – 如果使用私有端点,请将密钥保存在客户端代码之外。
关键要点
- Arbitrum 端点是您通过 JSON-RPC 与 Arbitrum 网络交互的 URL。
- Arbitrum One 使用链 ID 42161,Arbitrum Sepolia 使用 421614。
- OnFinality 为两个网络提供公共端点,以及托管 API 和专用节点选项。
- 根据工作负载选择端点:开发用公共,生产用 API,繁重索引用专用。
- 通过检查速率限制、方法支持和链 ID 来调试常见问题。
常见问题解答
什么是 Arbitrum RPC 端点?
OnFinality 提供公共端点:https://arbitrum.api.onfinality.io/public 用于 Arbitrum One,https://arbitrum-sepolia.api.onfinality.io/public 用于 Arbitrum Sepolia。
什么是 Arbitrum 链 ID?
Arbitrum One 使用链 ID 42161,Arbitrum Sepolia 使用 421614。
我可以在 Arbitrum 上使用 WebSocket 吗?
是的,OnFinality 支持 Arbitrum One 上的 WebSocket。请查看 Arbitrum 网络页面 获取 WebSocket URL。
如何在 Arbitrum Sepolia 上获取测试 ETH?
您可以使用 Sepolia 水龙头获取测试 ETH,然后可以在 Arbitrum Sepolia 上使用。
公共端点和专用节点有什么区别?
公共端点是共享且有限制的,而专用节点是您独占的,提供更高的性能和可定制性。