摘要
Optimism 端点是 JSON-RPC URL,可让您的 dApp 或后端在 OP Mainnet 或 OP Sepolia 上读写数据。本文涵盖确切的链设置、如何通过 curl 或 ethers.js 连接,以及如何调试常见的端点故障。
当您搜索“Optimism 端点”时,通常需要两样东西之一:配置钱包或 dApp 所需的确切链设置,或用于生产流量的可靠 JSON-RPC URL。本文提供这两者,以及最浪费调试时间的故障模式。
快速建议:应该使用哪个 Optimism 端点?
在将 URL 复制到配置之前,请决定端点的用途:
- 原型开发或黑客松: 像
https://optimism.api.onfinality.io/public这样的公共端点对于少量请求是可以的。公共端点有速率限制,可能不支持 WebSocket,因此它们不是生产基础。 - 生产 dApp 或后端: 使用具有更高速率限制、WebSocket 支持以及如果需要历史状态则提供归档数据的托管 RPC 提供商。OnFinality 提供 Optimism 的 RPC 端点,支持 HTTP 和 WebSocket 传输。
- 实时订阅(待处理交易、日志事件): 您需要 WebSocket 端点。许多免费 RPC 省略了
wss://,因此在构建之前请检查传输支持。 - 重型分析或索引: 您可能需要归档数据或
trace_/debug_方法。并非所有提供商都提供这些,因此请提前确认方法支持。
如果您不确定哪个层级适合,请先从公共端点进行冒烟测试,然后在流量增长后转向专用或付费 RPC 计划。有关选项,请参阅 RPC 定价。
Optimism 网络设置一览
OP Mainnet 和 OP Sepolia 共享相同的以太坊兼容 JSON-RPC 接口,但链 ID 和端点不同。混淆它们是最常见的配置错误。
| 参数 | OP Mainnet | OP Sepolia |
|---|---|---|
| 网络名称 | OP Mainnet | OP Sepolia 测试网 |
| 链 ID | 10 | 11155420 |
| 原生货币 | ETH | Sepolia ETH |
| 区块浏览器 | https://optimistic.etherscan.io | https://sepolia-optimism.etherscan.io |
| 公共 RPC URL | https://optimism.api.onfinality.io/public | https://optimism-sepolia.api.onfinality.io/public |
| WebSocket 支持 | 是(通过提供商) | 是(通过提供商) |
这些值与 OnFinality 的 Optimism 网络页面 和 Optimism Sepolia 页面 使用的链配置一致。
连接到 Optimism 端点
使用 curl
检查最新区块号的基本 JSON-RPC 请求如下:
curl https://optimism.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
响应应为十六进制编码的区块号,例如 {"jsonrpc":"2.0","result":"0x1345678","id":1}。
使用 ethers.js
在 Node.js 或浏览器环境中,您可以使用 ethers v6 进行连接:
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://optimism.api.onfinality.io/public');
const blockNumber = await provider.getBlockNumber();
console.log('Current block:', blockNumber);
对于 WebSocket 订阅,请改用 WebSocketProvider:
import { WebSocketProvider } from 'ethers';
const wsProvider = new WebSocketProvider('wss://optimism.api.onfinality.io/public');
wsProvider.on('block', (blockNumber) => {
console.log('New block:', blockNumber);
});
注意:公共端点可能不支持 WebSocket。对于生产环境的 WebSocket 访问,请使用明确支持 wss:// 的托管提供商。
将 Optimism 添加到钱包
如果您需要将 OP Mainnet 添加到 MetaMask 或其他钱包,请使用以下设置:
- 网络名称: OP Mainnet
- RPC URL:
https://optimism.api.onfinality.io/public - 链 ID: 10
- 货币符号: ETH
- 区块浏览器 URL:
https://optimistic.etherscan.io
对于 OP Sepolia,请使用链 ID 11155420 和 Sepolia 浏览器 URL。
Optimism 上常见的 JSON-RPC 方法
Optimism 支持标准的以太坊 JSON-RPC 方法,以及一些 L2 特有的方法。日常开发中最有用的方法:
eth_blockNumber– 获取最新区块eth_getBalance– 查询地址余额eth_call– 执行只读合约调用eth_sendRawTransaction– 广播已签名的交易eth_getTransactionReceipt– 检查交易状态eth_subscribe– 用于新区块或日志的 WebSocket 订阅eth_getLogs– 获取合约的事件日志
对于 L2 特定数据,您也可以根据用例使用 eth_getProof 或 eth_getStorageAt。如果您需要 debug_ 或 trace_ 方法进行更深入的调试,请检查提供商的方法支持。
调试路径:当您的 Optimism 端点失败时该怎么办
端点故障通常属于以下类别之一。使用此表快速诊断:
| 症状 | 可能原因 | 修复 |
|---|---|---|
CONNECTION REFUSED 或超时 | URL 错误或网络故障 | 验证 URL 并检查网络连接 |
429 Too Many Requests | 超出速率限制 | 使用付费或专用端点,或添加退避 |
-32601 Method not found | 提供商不支持该方法 | 检查提供商的方法列表;如有必要,请使用其他提供商 |
-32000 或 -32005 | 节点同步问题或达到限制 | 等待并重试,或使用限制更高的提供商 |
钱包中的 UNKNOWN CHAIN | 链 ID 错误 | 将链 ID 设置为 10(主网)或 11155420(Sepolia) |
| WebSocket 断开 | 连接不稳定或提供商限制 | 使用具有专用 WebSocket 支持的提供商 |
如果您在 WebSocket 响应中看到 -32616,则说明负载过大。对于该调用,请改用 POST 请求。
Optimism 端点与运行自己的节点
运行 OP Mainnet 节点可以让您完全控制,但会带来运营开销。您需要运行执行客户端和共识客户端,保持它们同步,并处理存储增长。对于大多数团队来说,托管 RPC 提供商更实用。
| 考虑因素 | 托管 RPC | 自托管节点 |
|---|---|---|
| 设置时间 | 几分钟 | 几天 |
| 维护 | 提供商处理 | 您处理升级和监控 |
| 成本 | 可预测的月费 | 硬件 + 带宽 + 工程时间 |
| 可扩展性 | 提供商扩展 | 您必须手动扩展 |
| 归档数据 | 通常可用 | 需要额外存储 |
如果您需要低延迟、高吞吐量或归档数据,而又不想承担运维负担,那么 OnFinality 的专用节点可能适合您。有关详细信息,请参阅 专用节点。
为您的 Optimism 端点选择提供商
评估 RPC 提供商时,请比较以下因素:
- 传输支持: HTTP 和 WebSocket。某些提供商仅提供 HTTP。
- 速率限制: 免费层级受到严格速率限制。检查您的工作负载的每秒请求数(RPS)。
- 归档数据: 历史状态查询需要。并非所有提供商都提供。
- 方法支持:
trace_和debug_并非普遍可用。 - 可靠性: 查看历史正常运行时间和响应时间数据,但避免承诺绝对保证的提供商。
- 定价模式: 固定费率与按使用量计费。固定费率更易于为生产环境做预算。
OnFinality 提供 Optimism 的 RPC 端点,支持 HTTP 和 WebSocket,您可以在 RPC 定价 上比较计划。
关键要点
- Optimism 端点是用于 OP Mainnet(链 ID 10)或 OP Sepolia(链 ID 11155420)的 JSON-RPC URL。
- 公共端点适合测试,但不适合生产。使用托管提供商以获得可靠性和 WebSocket 支持。
- 在集成之前,始终验证链 ID 和传输支持。
- 常见故障包括速率限制、错误的链 ID 和缺少 WebSocket 支持。使用调试表快速诊断。
- 对于生产环境,根据速率限制、归档数据、方法支持和定价来评估提供商。
常见问题解答
什么是 Optimism RPC 端点?
OP Mainnet 的公共 RPC 端点是 https://optimism.api.onfinality.io/public。对于 OP Sepolia,请使用 https://optimism-sepolia.api.onfinality.io/public。这些端点有速率限制,仅供开发使用。
Optimism 端点是否支持 WebSocket?
OnFinality 的 Optimism 端点支持 HTTP 和 WebSocket 传输。但是,公共 URL 可能不支持 WebSocket。对于生产环境的 WebSocket 访问,请使用专用或付费端点。
如何将 Optimism 添加到 MetaMask?
使用上述链设置:RPC URL、链 ID 10、符号 ETH 和浏览器 URL。对于 Sepolia,请使用链 ID 11155420。
OP Mainnet 和 OP Sepolia 有什么区别?
OP Mainnet 是使用真实 ETH 的生产网络。OP Sepolia 是使用免费 Sepolia ETH 进行开发的测试网。链 ID 不同:10 与 11155420。
为什么我在公共端点上遇到速率限制?
公共端点有严格的速率限制。要获得更高的限制,请使用付费 RPC 计划或专用节点。
我可以将 Optimism 端点用于归档数据吗?
并非所有端点都提供归档数据。请咨询您的提供商。OnFinality 在某些计划中提供归档数据;有关详细信息,请参阅 RPC 定价。