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

如何检查 Optimism 的可用性,这对你的 dApp 意味着什么?

摘要

Optimism 可用性指的是 OP Mainnet 网络及其核心服务(如公共 API、存款、取款和交易排序)的可用性。虽然官方 Optimism 状态页面提供了高层视图,但 RPC 端点的可靠性才是直接影响你 dApp 性能的关键。本文介绍了如何监控 Optimism 的可用性、在 RPC 提供商中应关注什么,以及如何为你的应用构建弹性。

快速回答:在哪里检查 Optimism 可用性

如果你需要快速回答,官方 Optimism 状态页面 是网络级可用性的权威来源。它跟踪公共 API、存款、取款、交易排序、批量提交和节点同步等组件。要更细粒度地了解 RPC 端点的健康状况,你可以使用第三方聚合器或自己的监控探针。

但问题是:网络可用性和 RPC 可用性并不相同。即使 Optimism 网络完全正常运行,你使用的 RPC 提供商也可能遇到停机、速率限制或性能下降。本文帮助你理解差异,并决定为你的 dApp 监控什么。

决策指南:为你的 dApp 监控什么

在开始检查可用性数字之前,问问自己实际需要监控什么。答案取决于你的应用架构和用户期望。

  • 如果你正在构建一个简单的读取数据的前端:你需要可靠的公共 RPC 端点,但如果你有备用方案,可以容忍偶尔的短暂中断。
  • 如果你正在运行 DeFi 协议或交易机器人:你需要低延迟、高可用性的 RPC,并具有自动故障转移。几秒钟的停机可能意味着错失交易或财务损失。
  • 如果你正在索引数据或运行分析:你需要一致地访问归档数据和 WebSocket 流。可用性至关重要,但数据完整性也很重要。

对于大多数生产应用,我们推荐多提供商策略。使用一个主要 RPC 提供商,并配置一个备用提供商或公共端点。这样,如果一个提供商发生事件,你的应用可以继续运行。

官方 Optimism 状态页面跟踪的内容

官方状态页面提供了网络健康状况的高层视图。它通常显示以下组件:

组件含义重要性
公共 APIOptimism 提供的公共 RPC 端点如果此组件宕机,公共 RPC 请求可能会失败
存款将资产从 L1 转移到 L2 的桥延迟会影响用户入门和流动性
取款将资产从 L2 转移到 L1 的桥延迟会影响用户退出,并可能导致支持工单
交易排序L2 上交易的排序如果此组件降级,交易可能会延迟
批量提交将 L2 数据发布到 L1 的过程如果此组件宕机,网络无法最终确定状态
节点同步节点与链保持同步的能力如果此组件降级,节点可能会落后

你可以查看此页面以了解是否有正在进行的故障。但是,它不会告诉你第三方 RPC 提供商的性能,而你的应用实际使用的是这些提供商。

为什么 RPC 可用性比网络可用性更重要

你的 dApp 通过 RPC 端点与 Optimism 交互。如果该端点宕机,你的应用将无法读取或写入数据,无论网络的整体健康状况如何。因此,在评估 Optimism 可用性时,你应该关注 RPC 提供商的可用性,而不仅仅是网络的可用性。

RPC 可用性通常以一段时间内的百分比来衡量(例如,过去 30 天内的高可用性)。但原始可用性数字可能具有误导性。提供商可能具有高可用性,但仍然经历频繁的短暂中断,导致请求失败。你还应该考虑:

  • 延迟:提供商响应速度有多快?高延迟会让你的应用感觉缓慢。
  • 速率限制:提供商是否会限制请求?如果你超过限制,可能会收到错误。
  • 数据一致性:提供商是否返回过时数据?如果节点落后,可能会发生这种情况。
  • WebSocket 可靠性:对于实时更新,WebSocket 连接必须稳定。

如何自行监控 Optimism RPC 可用性

你可以设置自己的监控来跟踪 RPC 端点的可用性和性能。以下是一种简单的方法,使用脚本发送 JSON-RPC 请求并测量响应时间。

#!/bin/bash
# 简单的 Optimism RPC 可用性检查

RPC_URL="https://mainnet.optimism.io"

response=$(curl -s -o /dev/null -w "%{http_code} %{time_total}" -X POST \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  $RPC_URL)

http_code=$(echo $response | cut -d' ' -f1)
time_total=$(echo $response | cut -d' ' -f2)

if [ "$http_code" -eq 200 ]; then
  echo "RPC 正常。响应时间:${time_total}s"
else
  echo "RPC 宕机。HTTP 代码:$http_code"
fi

你可以定期运行此脚本(例如,每分钟)并记录结果。对于更高级的监控,可以使用 UptimeRobot 或 Grafana 与 Prometheus 等服务来跟踪可用性并设置警报。

在 RPC 提供商的可用性中应关注什么

在比较 RPC 提供商时,不要只看标题中的可用性百分比。询问或检查以下内容:

  • 不同时期的可用性:24 小时、7 天、30 天、90 天。提供商可能具有出色的 90 天可用性,但最近出现问题。
  • 故障历史:故障发生的频率如何?持续时间多长?一次长时间故障可能比几次短暂故障更糟糕。
  • 状态页面:提供商是否有公共状态页面?他们更新速度有多快?
  • SLA(服务级别协议):提供商是否提供 SLA?如果违反 SLA,会发生什么?
  • 冗余:提供商是否拥有多个节点和数据中心?这降低了单点故障的风险。

在 OnFinality,我们在多个地区运营专用节点和 RPC 端点。你可以查看我们的 支持的网络 以了解 Optimism 是否可用,并查看我们的 RPC 定价 以了解服务级别的详细信息。

依赖公共 RPC 端点时的常见陷阱

公共 RPC 端点(如 Optimism 提供的端点)对于开发和轻量使用很方便,但它们存在局限性:

  • 速率限制:公共端点通常有严格的速率限制。如果你的应用发出太多请求,你会收到 429 Too Many Requests 等错误。
  • 无 SLA:公共端点按原样提供,不保证可用性或性能。
  • 共享基础设施:公共端点被许多开发人员使用,因此在高峰时段可能会变得拥塞。
  • 方法有限:某些公共端点可能不支持某些方法,例如大范围的 eth_getLogs 或 trace_* 方法。

如果你的应用已投入生产,你应该考虑使用提供更高可靠性和更多功能的专用 RPC 提供商。

如何为你的 dApp 构建弹性

即使使用可靠的 RPC 提供商,你也应该设计你的 dApp 以优雅地处理 RPC 故障。以下是一些最佳实践:

  • 使用多个 RPC 端点:配置你的应用,在主端点失败时尝试备用端点。
  • 实现重试逻辑:对于关键请求,使用指数退避重试。
  • 缓存数据:缓存频繁访问的数据以减少 RPC 调用次数。
  • 监控你的应用:使用 Sentry 或 Datadog 等工具跟踪错误和性能。

以下是在 ethers.js 中设置备用 RPC 的示例:

const { ethers } = require("ethers");

const primaryProvider = new ethers.JsonRpcProvider("https://mainnet.optimism.io");
const fallbackProvider = new ethers.JsonRpcProvider("https://optimism-mainnet.public.blastapi.io");

const provider = new ethers.FallbackProvider([primaryProvider, fallbackProvider], 1);

async function getBlockNumber() {
  try {
    const blockNumber = await provider.getBlockNumber();
    console.log("区块号:", blockNumber);
  } catch (error) {
    console.error("获取区块号时出错:", error);
  }
}

getBlockNumber();

这样,如果主端点失败,将自动使用备用端点。

关键要点

  • Optimism 可用性 指的是网络及其核心服务的可用性,但 RPC 可用性才是直接影响你的 dApp 的因素。
  • 检查官方 Optimism 状态页面 以了解网络级故障,但也要监控你的 RPC 提供商的性能。
  • 在选择 RPC 提供商时,不要只看可用性百分比,还要考虑延迟、速率限制、数据一致性和 WebSocket 可靠性。
  • 公共 RPC 端点不适合生产环境;使用像 OnFinality 这样的专用提供商以获得更好的可靠性。
  • 通过使用多个端点、重试逻辑和缓存来为你的 dApp 构建弹性。

常见问题解答

问:Optimism 当前的可用性是多少?

答:官方状态页面显示 Optimism 组件的当前状态。对于历史可用性,你可以查看第三方聚合器或你自己的监控数据。

问:Optimism 可用性是如何计算的?

答:可用性通常计算为服务在给定时间段内运行的时间百分比。例如,高可用性意味着服务在 30 天内停机时间少于 43 分钟。

问:Optimism 是否提供 SLA?

答:Optimism 网络本身不为其公共 API 提供 SLA。但是,像 OnFinality 这样的 RPC 提供商可能会为专用服务提供 SLA。

问:如果 Optimism 公共 API 宕机,我该怎么办?

答:如果公共 API 宕机,你可以切换到第三方 RPC 提供商。OnFinality 提供可靠的 Optimism RPC 端点;查看我们的 支持的网络 了解详情。

问:如何获取 Optimism 停机警报?

答:你可以使用 UptimeRobot 或 Grafana 等工具设置自己的监控,或订阅 Optimism 或你的 RPC 提供商的状态页面通知。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

如何评估用于生产环境的地理分布式 Solana RPC 服务?

地理分布式 Solana RPC 之所以重要,是因为 Solana 的时隙时间和确认窗口很短,因此用户、后端和验证者集合之间的物理距离直接决定了交易上链的速度。单区域端点可能在仪表板上看起来没问题,但其他大洲的用户却要承受延迟。 本文解释了如何评估地理分布式 Solana RPC 服务:需要测量什么...

区块链基础设施Efinity

Polygon 节点托管:何时租用基础设施而非自行运行

Polygon 节点托管意味着在他人运营的基础设施上运行 Polygon PoS 堆栈——一个 Erigon 或 Bor 风格的执行客户端加上一个 Heimdall 共识客户端——这样你的团队无需拥有服务器即可获得 RPC 端点、WebSocket 访问和归档数据。决策很少是“我们能运行节点吗?”,...

网络 RPCAvalanche

Sora 项目和 Sora 网络:开发者需要了解什么?

Sora 是一个基于 Substrate 的去中心化金融网络,旨在通过受监管的金融框架连接法币和加密货币。本文介绍了 Sora 项目、其 SORA 网络架构,以及如何通过 RPC 端点进行开发访问。...

RPC 提供商选择Solana

在选择带有分析 API 的 Solana RPC 提供商时,您应该评估什么?

选择带有分析 API 的 Solana RPC 提供商意味着要超越基本的交易广播。您需要评估数据深度、方法覆盖范围,以及提供商如何处理高吞吐量工作负载,如账户订阅和历史查询。本文分解了关键标准——从分析方法支持到故障转移和专用节点选项——以便您将基础设施与应用程序的数据需求相匹配。...

网络 RPCSui

Sui gRPC 指南:端点、流式传输与 JSON-RPC 迁移

Sui gRPC 是 Sui 全节点暴露的基于 Protocol Buffers 的类型安全 RPC 接口。它是生产环境中读取链状态、执行交易和消费实时流的推荐路径。OnFinality 在 mainnet 和 testnet 上提供托管 Sui gRPC 和 RPC 基础设施;当前端点详情发布在 ...

网络 RPCSolana

Solana RPC 节点:端点、方法与工作负载匹配

Solana RPC 节点暴露了您的应用用于读取账户、提交交易以及订阅 slot 或账户变化的 JSON-RPC 接口。本页面涵盖了端点形态、实践中最关键的方法,以及随着工作负载增长如何在共享公共 RPC 和专用节点之间做出选择。 您将获得一个可连接的端点示例、工作负载与设置对照表、常见故障的调试路...

永远不用担心基础设施

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

开始