Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

Optimism 公共 RPC 端点:如何连接以及何时切换

摘要

公共 Optimism RPC 端点让你无需运行节点即可读取 OP Mainnet 数据并广播交易。本页提供链设置、可用的 curl 和 JavaScript 示例,以及共享公共基础设施可能出现的故障模式。它还说明了共享公共端点何时不再是最佳选择,以及如何在不重写应用的情况下迁移到托管或专用设置。

公共 Optimism RPC 端点是开始读取 OP Mainnet 状态和发送交易的最快方式。你将钱包或脚本指向 HTTP 或 WebSocket URL,设置链 ID,即可接入网络。代价是公共端点为共享资源,因此你无法控制吞吐量、速率限制或节点升级速度。本页涵盖确切的链设置、可用的请求示例、你将遇到的错误,以及托管或专用端点成为更优选择的时机。

链设置一览

在发送任何请求之前,请确保这些值正确。错误的链 ID 或不匹配的 RPC URL 是钱包显示错误余额或交易广播失败的最常见原因。

设置值
网络名称OP Mainnet (Optimism)
链 ID10
货币符号ETH
货币小数位18
区块浏览器https://optimistic.etherscan.io
RPC 传输HTTP 和 WebSocket
公共端点https://optimism.api.onfinality.io/public

Optimism 是 EVM 等效的 Layer 2,因此 JSON-RPC 接口与以太坊高度匹配。这意味着相同的库、相同的方法名和相同的 ABI 工具无需更改即可使用。不同之处在于链 ID、排序器行为,以及你读取的是 L2 状态而非 L1 状态。

如果你在接触主网之前进行测试,Optimism Sepolia 使用链 ID 11155420 和端点 https://optimism-sepolia.api.onfinality.io/public。在代码库中将两个配置分开,以免意外将测试网交易广播到主网。

决定连接方式

这里没有唯一正确答案。正确的选择取决于你的应用做什么以及你需要对端点背后的节点有多少控制权。

在以下情况使用公共端点:你正在原型设计、运行脚本、检查余额或构建低流量、突发性流量的应用。公共端点可免费试用且无需账户。它们非常适合本地开发、黑客松项目和只读仪表板。

在以下情况迁移到托管 RPC API:你正在向真实用户发布。托管端点提供稳定的 URL、可预测的请求处理以及出问题时的支持路径。这通常是应用有生产流量后的下一步。

在以下情况选择专用节点:你需要一致的吞吐量、归档数据、trace 方法或大量 eth_getLogs 查询。专用基础设施消除了吵闹邻居问题,因为节点仅服务于你的工作负载。

快速判断方法:如果请求失败会在凌晨 2 点把你叫醒,说明你已经超出了公共端点的能力。如果请求失败只意味着你在终端重试,那么公共端点就足够了。

使用 curl 连接

在将端点接入应用之前,你可以验证它是否在线并返回预期的链。此请求查询链 ID,应返回 0xa(十六进制的 10)。

curl -X POST https://optimism.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_chainId",
    "params": [],
    "id": 1
  }'

健康的响应如下所示:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0xa"
}

如果返回 0xa,则端点位于 OP Mainnet。如果返回不同的值,则你指向了错误的网络。如果返回错误对象,请先阅读 message 字段,然后再更改其他内容。

从 JavaScript 连接

大多数应用使用库而非原始 HTTP。使用 ethers 时,获得 URL 后提供程序设置只需一行。

import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider(
  "https://optimism.api.onfinality.io/public",
  { chainId: 10, name: "optimism" }
);

const block = await provider.getBlockNumber();
console.log("Latest OP Mainnet block:", block);

显式传递链 ID 值得多写几个字符。它让 ethers 检测到不匹配,而不是静默地从错误的链读取,后者是以后很难发现的 bug。

对于实时用例,如监视待处理交易或跟踪特定地址,请使用 WebSocket 传输而非通过 HTTP 轮询。Optimism 支持 ws,因此你可以订阅新区块头并在到达时做出反应,而不是每隔几秒询问一次。

将 Optimism 添加到钱包

如果你手动配置钱包,请使用链设置表中的值。在 MetaMask 中,打开网络选择器,选择添加网络,然后输入网络名称、RPC URL、链 ID、符号和浏览器。链 ID 可防止钱包将 OP Mainnet 与以太坊主网或测试网混淆。

一个常见错误是粘贴来自博客文章的 RPC URL,而该文章可能已下线。在保存之前始终确认端点有响应,并保留第二个 URL 以便在第一个降级时快速切换。

常见故障模式

公共端点以可预测的方式失败。了解症状可避免你在错误的层面进行调试。

症状可能原因应对措施
429 或速率限制消息共享端点正在限制你的请求速率添加退避、批量请求或迁移到托管端点
负载下超时共享基础设施拥塞使用抖动重试,然后评估专用节点
eth_getLogs 返回错误查询范围或结果大小过大缩小区块范围并分页
交易卡在待处理状态Gas 价格对当前条件太低重新估算 Gas 并考虑替换交易
余额或链错误链 ID 或 URL 不匹配重新检查链 ID 10 和端点主机

速率限制是开发者低估的一点。公共端点被许多调用者共享,因此你的有效吞吐量取决于当时其他人在做什么。在测试中有效的代码在繁忙时段可能会变慢。从一开始就构建带指数退避的重试逻辑,并在库支持的情况下批量处理独立读取。

依赖端点前应检查什么

如果你在比较端点或提供商,请针对实际工作负载进行测试,而不是通用基准。几项检查可将可用端点与会导致事故的端点区分开来。

  • 方法覆盖。 确认端点支持你调用的方法,包括归档查询和 trace 方法(如果需要历史状态)。
  • 传输支持。 如果需要订阅,请验证 WebSocket 可用,而不仅仅是 HTTP。
  • 负载下的行为。 发送现实的突发流量并观察限流或延迟上升。
  • 故障转移。 配置第二个端点,以便单次中断不会导致应用宕机。
  • 可观测性。 跟踪每个端点的错误率和延迟,以便在用户之前注意到性能下降。

OnFinality 通过托管 API 和专用节点选项提供 Optimism RPC。你可以在 Optimism RPC API 页面 查看网络详情,在 RPC 定价 比较成本,并在 支持的 RPC 网络 查看完整链列表。如果你需要一致的吞吐量或归档访问,专用节点 让你运行按工作负载规模配置的基础设施。如需更广泛的框架,请参阅 如何选择 RPC 提供商。

从公共端点迁移

离开公共端点不应需要重写应用。如果你将 URL 保存在一个地方,更改就是配置更新。

  1. 将 RPC URL 放在环境变量中,而不是硬编码。
  2. 添加第二个端点作为回退,并在第一个失败时将请求路由到它。
  3. 在预发环境中运行两个端点,并在真实流量上比较延迟和错误率。
  4. 一旦新端点在关键方法上匹配或超过旧端点,就切换生产流量。
  5. 将公共端点保留为最后手段的回退,而非主要路径。

这种方法还能在提供商发生事故时保护你。单个端点,无论公共还是私有,都是单点故障。两个具有明确优先级顺序的端点是对任何面向用户的应用的最低要求。

关键要点

  • OP Mainnet 使用链 ID 10,ETH 作为原生货币,并支持 HTTP 和 WebSocket RPC。
  • 公共端点适合原型设计和低流量读取,但它是共享的,因此吞吐量无法保证。
  • 始终在提供程序配置中显式设置链 ID,以便及早发现网络不匹配。
  • 速率限制和大量 eth_getLogs 查询是公共端点上最常见的两个错误来源。
  • 当你需要可预测的吞吐量、归档数据或支持路径时,迁移到托管 RPC API 或专用节点。
  • 将 RPC URL 保留在配置中,并在投入生产前添加回退端点。

常见问题

什么是 Optimism 公共 RPC 端点?

OnFinality 在 https://optimism.api.onfinality.io/public 暴露了一个公共 OP Mainnet 端点。它支持 HTTP 和 WebSocket,适用于开发和轻量生产使用。对于更重的工作负载,托管或专用端点更合适。

Optimism 链 ID 是什么?

OP Mainnet 使用链 ID 10。测试网 Optimism Sepolia 使用链 ID 11155420。始终确认链 ID 与你打算使用的网络匹配。

公共 RPC 端点对生产安全吗?

对于低流量应用它可以工作,但公共端点是共享的,在繁忙时段可能会限制请求。对于面向用户的应用,带有回退的托管端点是更安全的默认选择。

为什么我的 Optimism 请求返回速率限制错误?

你可能发送请求的速度超过了共享端点的允许。添加指数退避、批量处理独立读取,或迁移到具有更高限制的托管端点。

Optimism 支持 WebSocket RPC 吗?

是的。OP Mainnet 支持 HTTP 和 WebSocket 传输,因此你可以订阅新区块和事件,而不是轮询。

何时应该使用专用 Optimism 节点?

当你需要一致的吞吐量、归档数据、trace 方法或大量日志查询时,专用节点消除了吵闹邻居效应,并为你提供按工作负载规模配置的基础设施。

RPC 知识库

相关 RPC 内容

网络 RPCPolygon

Polygon 速率限制:它们是什么以及如何避免 429 错误

Polygon 速率限制限制了端点在一个给定时间窗口内接受的 JSON-RPC 请求数量,当您超过限制时,会收到 HTTP 429 响应、WebSocket 订阅被丢弃或静默超时。公共端点在所有调用者之间共享这些限制,因此一个繁重的循环就可能拖垮您的整个应用。 本文解释了 Polygon 速率限制的...

网络 RPCEthereum

以太坊 RPC 列表:如何为你的应用选择正确的端点

以太坊 RPC 列表是一组端点,让你的 dApp 能够在以太坊上读写数据。选择正确的端点取决于你的工作负载:公共端点适合测试,而生产应用需要托管或专用基础设施。本指南解释了 RPC 端点的类型、如何评估它们,以及如何使用流行工具进行连接。...

网络 RPCPolygon

关于 Polygon PoS 端点,我应该了解哪些内容?

Polygon PoS 端点是你的应用用来读取链状态并向 Polygon 权益证明网络提交交易的 HTTP 和 WebSocket URL。主网链 ID 是 137,原生 Gas 代币是 POL,一个可用的端点需要支持你的工作负载实际调用的 JSON-RPC 方法。本页涵盖链设置、端点选项、请求示例...

网络 RPCGnosis

面向生产应用的最佳 Gnosis RPC 端点有哪些?

Gnosis Chain 是一个兼容 EVM 的网络,链 ID 为 100,原生货币为 xDAI。像 https://rpc.gnosischain.com 这样的公共 RPC 端点适合轻量测试,但生产应用需要可靠、可扩展的基础设施。本文列出了常见的 Gnosis RPC 端点,解释了如何评估它们,...

网络 RPCBittensor

如何在 Bittensor 上挖掘 TAO:面向开发者的实用指南

在 Bittensor 上挖掘 TAO 意味着在子网上运行一个矿工,该矿工产生数字商品(如推理、计算或存储),并获得 TAO 奖励。本指南解释了矿工、验证者和子网的角色,如何选择子网,以及注册和运行矿工的实际步骤,包括与 Finney 网络交互所需的 RPC 端点。...

区块链基础设施Bittensor

什么是Bittensor挖矿,如何开始?

# 什么是Bittensor挖矿,如何开始? Bittensor挖矿与传统加密货币挖矿有本质区别。Bittensor矿工不是解决哈希难题,而是贡献机器学习算力——训练模型、运行推理或解决AI任务——并根据其表现获得TAO排放。挖矿发生在子网内,每个子网都有子网所有者定义的独特激励机制。本指南解释了关...

永远不用担心基础设施

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

开始