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

ZKsync 正常运行时间:监控什么以及如何保持 dApp 的弹性

摘要

ZKsync 正常运行时间指的是 ZKsync 网络及其 RPC 端点的可用性。虽然网络的官方状态页面跟踪排序器和 API 的健康状况,但您的 dApp 的可靠性还取决于您的 RPC 提供商的冗余和故障转移策略。本文解释了要监控什么、如何评估提供商,以及如何在您的技术栈中构建弹性。

快速建议:在依赖 ZKsync 之前要检查什么

在基于 ZKsync 构建之前,请确定正常运行时间对您的用例意味着什么。网络正常运行时间和 RPC 正常运行时间不是一回事。ZKsync 网络可能是健康的,而您的 RPC 提供商却宕机,反之亦然。对于生产环境的 dApp,您两者都需要。

首先检查官方的 ZKsync 状态页面以了解网络级事件。然后评估您的 RPC 提供商的冗余、故障转移和历史性能。如果您只是原型开发,公共端点可能就足够了。如果您正在服务用户,请通过多个端点和自动重试来规划提供商故障。

对于生产环境设置,请考虑像 OnFinality 这样提供专用节点和多区域故障转移的提供商。您可以在 RPC 定价 页面上比较计划,并在 支持的 RPC 网络 页面上查看支持哪些网络。

ZKsync 正常运行时间实际上意味着什么?

当人们搜索“zksync 正常运行时间”时,他们通常想知道网络是否在线。但正常运行时间有多个层面:

  • 网络正常运行时间:排序器正在生成区块,网络正在处理交易。
  • RPC 正常运行时间:您的端点正在响应请求而不会出错。
  • 数据可用性:历史状态和日志可供您的查询访问。

网络可能正常运行,但您的 RPC 提供商可能宕机。相反,网络可能发生事件,而您提供商的缓存数据仍然可以服务一些请求。了解这些层面有助于您设计弹性。

如何检查 ZKsync 网络状态

官方的 ZKsync 状态页面是首先查看的地方。它跟踪排序器、API 和浏览器等组件。您也可以检查第三方状态聚合器,但它们可能对正常运行时间有不同的定义。

对于实时监控,您可以针对 RPC 端点设置自己的健康检查。对 eth_blockNumber 的简单 JSON-RPC 调用可以告诉您节点是否正在同步和响应。

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

如果响应返回一个区块号,则端点处于活动状态。如果超时或返回错误,则存在问题。

RPC 提供商正常运行时间:要注意什么

您的 RPC 提供商的正常运行时间至关重要。公共端点很方便,但通常有速率限制且不太可靠。对于生产环境,您需要具有以下特点的提供商:

  • 冗余基础设施:跨区域的多个节点以处理故障。
  • 自动故障转移:如果一个节点宕机,流量会路由到另一个节点。
  • 负载均衡:分发请求以避免单个节点过载。
  • 历史数据:访问归档节点以进行状态查询。

OnFinality 提供专用节点和全球 RPC 端点网络。您可以阅读更多关于 RPC 服务 和 专用节点 的信息以了解架构。

监控您自己的 ZKsync 端点

即使有可靠的提供商,您也应该监控自己的端点。设置延迟、错误率和同步状态的警报。一个简单的脚本可以检查最新区块并将其与预期时间进行比较。

const Web3 = require('web3');
const web3 = new Web3('https://zksync.api.onfinality.io/public');

async function checkSync() {
  const block = await web3.eth.getBlockNumber();
  console.log(`Latest block: ${block}`);
  // Add logic to alert if block is stale
}

setInterval(checkSync, 60000);

您也可以使用 WebSocket 进行实时更新。订阅新头部以快速检测停滞。

const ws = new WebSocket('wss://zksync.api.onfinality.io/public');
ws.onopen = () => {
  ws.send(JSON.stringify({jsonrpc: '2.0', method: 'eth_subscribe', params: ['newHeads'], id: 1}));
};
ws.onmessage = (event) => {
  console.log('New block:', JSON.parse(event.data));
};

ZKsync 中断的常见原因

ZKsync 过去曾发生过事件。例如,一个服务器错误触发了安全协议,导致区块生产停止数小时。了解常见原因有助于您做好准备:

  • 排序器错误:软件错误可能停止区块生产。
  • 证明器问题:ZK 证明生成可能失败或变慢。
  • 基础设施故障:云提供商中断或网络问题。
  • 升级:计划维护可能导致短暂停机。

虽然您无法预防网络级事件,但您可以通过使用多个 RPC 提供商并制定后备计划来减轻它们对您的 dApp 的影响。

提供商评估矩阵

在选择 ZKsync 的 RPC 提供商时,比较以下因素:

提供商冗余故障转移归档数据WebSocket定价模型
OnFinality全球多区域自动可用是按使用量计费,免费层
提供商 B区域手动有限是订阅
提供商 C单节点无否否按请求付费

OnFinality 的基础设施专为高可用性而设计。您可以在 支持的 RPC 网络 页面上查看完整的支持网络和功能列表。

在您的 dApp 中构建弹性

即使有可靠的提供商,您也应该架构您的 dApp 以优雅地处理故障。

  • 使用多个提供商:在您的 Web3 库中配置后备端点。
  • 实现带退避的重试:如果请求失败,在短暂延迟后重试。
  • 缓存关键数据:在本地存储最近的区块和交易。
  • 监控和警报:为 RPC 健康和网络状态设置仪表板。

以下是使用 ethers.js 和后备提供商的示例:

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

const primary = new ethers.providers.JsonRpcProvider('https://zksync.api.onfinality.io/public');
const fallback = new ethers.providers.JsonRpcProvider('https://another-provider.example.com');

const provider = new ethers.providers.FallbackProvider([primary, fallback], 1);

此设置在主提供商失败时自动切换到后备提供商。

关键要点

  • ZKsync 正常运行时间涉及网络健康和 RPC 提供商可靠性。
  • 检查官方状态页面以了解网络事件,但也监控您自己的端点。
  • 为生产环境选择具有冗余、故障转移和归档数据的 RPC 提供商。
  • 通过多个提供商和重试逻辑在您的 dApp 中构建弹性。
  • OnFinality 为 ZKsync 和其他网络提供强大的基础设施;请参阅 RPC 定价 和 支持的网络。

常见问题解答

问:如何检查 ZKsync 正常运行时间?

答:访问官方的 ZKsync 状态页面,或使用 JSON-RPC 调用 eth_blockNumber 来检查网络是否响应。

问:网络正常运行时间和 RPC 正常运行时间有什么区别?

答:网络正常运行时间指的是排序器和网络处理交易。RPC 正常运行时间指的是您的端点响应请求的能力。两者都很重要。

问:我可以依赖公共 RPC 端点用于生产环境吗?

答:公共端点通常有速率限制且不太可靠。对于生产环境,请考虑专用节点或具有 SLA 的提供商。

问:如果 ZKsync 发生中断,我该怎么办?

答:准备一个后备提供商并实现重试逻辑。监控状态页面以获取更新,并与您的用户沟通。

问:OnFinality 支持 ZKsync 吗?

答:是的,OnFinality 支持 ZKsync 主网和测试网。请参阅 ZKsync 网络页面 了解详情。

RPC 知识库

相关 RPC 内容

网络 RPCFantom

Fantom 端点:链设置、RPC 配置和调试

本页说明如何通过 RPC 端点连接到 Fantom Opera,包括链设置、公共和私有 RPC 选项以及常见调试步骤。它帮助开发者配置钱包、部署合约,并为生产工作负载选择合适的基础设施。...

RPC 提供商选择Ethereum

如何评估用于性能监控的以太坊 RPC 服务

选择用于性能监控的以太坊 RPC 服务,需要超越单纯的吞吐量。你需要一致的延迟、可靠的 WebSocket 连接,以及访问 debug 或 trace 方法以诊断问题。本文概述了需要跟踪的关键指标、重要的方法,以及如何构建一个能在用户发现问题之前捕获问题的监控设置。...

网络 RPCEth Sepolia

如何通过 eth_getBlockByNumber 获取最新的以太坊区块?

了解如何使用 eth_getBlockByNumber JSON-RPC 方法获取最新的以太坊区块,包括 curl 和 ethers.js 示例、响应字段和常见陷阱。比较公共、托管和专用 RPC 选项,为您的 dApp 选择合适的端点。...

网络 RPCKaia

Kaia RPC:端点、提供商和最佳实践

本指南涵盖您需要了解的关于Kaia RPC端点的所有内容——从公共JSON-RPC URL到为生产环境选择可靠的提供商。了解如何连接到Kaia主网和Kairos测试网,评估RPC服务,并避免常见陷阱。...

区块链基础设施Solana

Solana 验证者设置:在质押 SOL 之前需要准备什么

运行 Solana 验证者意味着操作一个参与共识的投票节点,这需要仔细的硬件规划、密钥管理以及用于监控和运维的可靠 RPC 连接。本指南将介绍实际准备步骤、运行自己的验证者与委托之间的权衡,以及节点上线后如何保持可观测性。 你将找到一份以决策为导向的检查清单、硬件和网络要求、密钥生成和投票账户设置、...

网络 RPCBNB Chain

什么是BNB智能链RPC URL,如何使用?

BNB智能链(BSC)RPC URL是您的dApp、钱包或脚本用来向BSC网络发送JSON-RPC请求的端点。OnFinality官方公共端点是https://bnb.api.onfinality.io/public。本文解释了如何配置它、选择RPC提供商时需要注意什么,以及如何调试常见问题。...

永远不用担心基础设施

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

开始