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

如何为生产应用选择 Celo RPC 提供商?

摘要

Celo 是一个兼容 EVM 的网络,拥有移动优先的历史以及不断增长的稳定币和支付用例。对于大多数团队来说,实际问题不是是否使用 RPC 提供商,而是哪个提供商适合你的读/写组合、归档需求和故障转移计划。本文介绍了 Celo 链设置、对端点造成压力的工作负载,以及区分共享公共端点和专用节点部署的标准。

你将找到一个快速决策部分、一个提供商评估矩阵、针对 Celo 主网端点的请求示例,以及针对 Celo 集成中最常见故障模式的调试路径。

Celo 是一个兼容 EVM 的 Layer 1,具有移动优先的设计历史和强大的稳定币与支付生态系统。如果你在 Celo 上构建,RPC 端点就是你的应用与链之间的层,你选择的提供商决定了你的应用在负载下、重组期间以及需要历史状态时的行为。本页面面向已经知道自己需要端点并正在决定针对它运行什么的开发人员和基础设施购买者。

快速推荐:共享端点还是专用节点?

从工作负载开始,而不是提供商标志。正确的 Celo RPC 设置取决于三件事:你每秒发送多少请求、是否需要历史状态,以及你是否能容忍流量高峰期间的共享端点。

  • 原型、脚本和低流量 dApp: 共享 RPC API 通常就足够了。你获得一个 HTTPS 端点、标准 JSON-RPC 方法,并且无需节点运维。OnFinality 的 Celo RPC API 是此类别中的托管选项。
  • 具有稳定流量和 SLA 的生产应用: 寻找同时提供共享和专用层级的提供商,这样你可以从共享开始,并在请求量增长时迁移到专用节点。有关层级结构,请参阅 RPC 定价
  • 索引器、分析和任何读取旧区块的内容: 你需要归档访问权限。在提交之前确认归档支持,因为并非每个共享端点都保留完整历史。
  • 交易机器人、清算 keeper 和实时仪表板: 你需要低延迟读取以及 WebSocket 或流式支持,并在客户端中配置故障转移端点。

如果不确定,请从共享端点开始,在一周内监控你的请求量和错误率,然后决定是否值得使用 专用节点

Celo 链设置一览

在将 Celo 添加到钱包、hardhat 配置或客户端库时,请使用这些值。它们与 Celo 主网配置匹配。

设置
网络名称Celo Mainnet
链 ID42220
原生货币CELO (18 位小数)
区块浏览器https://celoscan.io
传输HTTP JSON-RPC
公共端点https://celo.api.onfinality.io/public

钱包或客户端配置如下所示:

{
  "chainId": "0x1a4",
  "chainName": "Celo Mainnet",
  "nativeCurrency": { "name": "CELO", "symbol": "CELO", "decimals": 18 },
  "rpcUrls": ["https://celo.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://celoscan.io"]
}

链 ID 42220 是十进制形式;0x1a4 是相同的十六进制值,这是 wallet_addEthereumChain 所期望的。弄错这一点是钱包拒绝切换网络的最常见原因之一。

你的 Celo 工作负载实际对什么造成压力

不同的 Celo 应用以不同方式访问 RPC 层。在比较提供商之前,将你的流量映射到以下配置文件之一。

工作负载配置文件典型调用对什么造成压力
钱包或 dApp 前端eth_call, eth_getBalance, eth_getTransactionReceipt请求速率和响应延迟
支付或稳定币应用eth_sendRawTransaction, eth_getTransactionReceipt, eth_estimateGas写入路径可靠性和 nonce 处理
索引器或分析历史范围内的 eth_getLogs, eth_getBlockByNumber归档深度和日志查询限制
机器人或 keepereth_subscribe, eth_getBlockByNumber("latest")WebSocket 稳定性和头部延迟
桥或预言机针对合约的 eth_call, eth_getProof一致性和最终性感知

如果你的配置文件位于底部三行,共享端点可能仍然有效,但在围绕它构建之前,你应该验证归档支持、日志查询上限和 WebSocket 可用性。

提供商评估矩阵

当你比较 Celo RPC 提供商时,根据与你的工作负载匹配的标准对它们进行评分。下表列出了最重要的维度,OnFinality 是与其他选项一起评估的一个选项。

提供商共享 RPC专用节点归档访问WebSocket备注
OnFinality按需提供可用托管 RPC API 加专用节点基础设施;请参阅 Celo RPC
公共社区端点通常没有很少适合测试,不适合生产流量
通用 RPC 提供商有时因计划而异因计划而异检查每条链的归档和 trace 支持
自托管 Celo 节点是(你运行它)完全控制,但你需要负责同步、升级和监控

两个快速区分提供商的实用检查:

  1. 归档深度。 询问 eth_getLogseth_getBalance 可以回溯多远。如果答案含糊,请自己针对几个月前的区块进行测试。
  2. 负载下的行为。 发送一批 eth_getLogseth_call 请求,观察是否有速率限制响应、超时或结果截断。

连接并测试你的端点

一旦你有了端点,在将其接入应用之前进行验证。一个 eth_chainId 调用即可确认你正在与 Celo 主网通信,而不是测试网或配置错误的代理。

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

正确的响应返回 0x1a4,即十进制的 42220。然后,检查最新区块和历史调用:

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

在 JavaScript 中,使用客户端库进行相同的检查很简单:

import { createPublicClient, http } from "viem";
import { celo } from "viem/chains";

const client = createPublicClient({
  chain: celo,
  transport: http("https://celo.api.onfinality.io/public"),
});

const chainId = await client.getChainId();
const block = await client.getBlockNumber();
console.log({ chainId, block });

如果你计划使用 WebSocket 订阅,请确认提供商为 Celo 暴露了 wss:// 端点,并在生产环境中依赖它之前测试订阅。

故障模式及如何调试

大多数 Celo RPC 问题属于少数几类。在更换提供商之前,将症状与可能的原因匹配。

症状可能原因首先检查
429 Too Many Requests共享端点速率限制减少突发大小或迁移到专用层级
eth_getLogs 返回部分数据区块范围太宽或提供商限制将范围拆分为更小的窗口
交易卡在待处理状态Nonce 间隙或费用过低重新检查 nonce 和费用参数
历史调用失败端点不是归档节点查询最近区块以确认,然后请求归档访问
WebSocket 反复断开网络或提供商限制添加重连逻辑和备用 HTTP 端点
跨调用读取不一致负载均衡节点处于不同高度对于关键读取,固定到特定区块号

一个有用的习惯是记录每个失败请求的 idmethod 以及 HTTP 状态。这样可以清楚地看出失败是集中在一个方法、一个时间窗口还是一个端点上。

在生产环境中运行 Celo:需要落实的事项

在上线之前,覆盖防止大多数事件的基础事项:

  • 故障转移。 在客户端中配置主端点和辅助端点。如果主端点返回错误或超时,自动切换。
  • 带退避的重试。 重试幂等读取,但不要盲目重试写入。使用相同签名负载重试 eth_sendRawTransaction 通常是安全的;使用新 nonce 重新签名的交易则不安全。
  • 关键读取的区块固定。 对于用于决策的余额和合约状态,查询特定区块号而不是 latest
  • 监控。 跟踪请求速率、错误率、p95 延迟和头部滞后。一个简单的探针每几秒调用 eth_blockNumber 并将返回的高度与参考值比较,就足以捕获停滞的端点。
  • 归档规划。 如果你查询历史,请在你需要之前确认归档访问是你计划的一部分。

如果你的流量增长超过共享端点舒适处理的范围,专用 Celo 节点可为你提供隔离的容量和可预测的行为。OnFinality 提供托管 RPC 和专用节点基础设施,你可以在 RPC 定价 页面比较层级。有关更广泛的评估框架,请参阅 如何选择 RPC 提供商

关键要点

  • Celo 主网使用链 ID 42220 和原生 CELO 代币;在调试其他任何内容之前确认这两者。
  • 将你的工作负载配置文件与提供商功能匹配:索引器需要归档,机器人需要 WebSocket,支付需要写入可靠性。
  • 自己测试归档深度和突发行为,而不是依赖营销页面。
  • 始终配置故障转移端点并监控头部滞后、错误率和 p95 延迟。
  • 共享 RPC 适合原型;当流量或隔离需求增长时,迁移到专用节点。
  • OnFinality 提供托管的 Celo RPC API 和专用节点选项,以及 许多其他网络

常见问题

Celo 主网 RPC 端点是什么? OnFinality 的公共 Celo 端点是 https://celo.api.onfinality.io/public。对于生产使用,请考虑使用与你的流量匹配的托管或专用端点。

Celo 使用什么链 ID? Celo 主网使用链 ID 42220,十六进制为 0x1a4

我需要为 Celo 使用归档节点吗? 仅当你查询历史状态或日志时才需要。如果你在旧区块范围上调用 eth_getLogs 或读取过去区块的余额,请与你的提供商确认归档访问。

Celo 支持 WebSocket 订阅吗? Celo 兼容 EVM,因此当提供商暴露 WebSocket 端点时,eth_subscribe 可以工作。在构建实时功能之前,请与你的提供商确认可用性。

如何处理共享 Celo 端点上的速率限制? 减少突发大小,尽可能批量处理,并添加带退避的重试。如果限制仍然阻碍你的工作负载,请迁移到专用层级。

我可以自己运行 Celo 节点吗? 可以。自托管提供完全控制,但意味着你需要负责同步、升级、存储和监控。许多团队使用托管提供商进行读取,并保留自托管节点以满足特定需求。

如何在不中断的情况下切换 Celo RPC 提供商? 将新端点作为辅助端点添加到你的客户端,并行运行两者,比较响应,然后在确信后将新端点提升为主端点。

RPC 知识库

相关 RPC 内容

网络 RPCPolkadot

Polkadot 网络迁移:有哪些变化以及如何影响您的 RPC 端点?

Polkadot 资产中心迁移(AHM)将核心网络功能——余额、质押和治理——从中继链迁移到了资产中心系统平行链。对于 RPC 用户来说,这意味着端点现在必须指向资产中心以获取链上用户数据,而中继链仍然是共识和跨链消息的入口点。开发者应确认其 RPC 提供商同时支持中继链和资产中心端点,以避免中断。...

测试网 RPCPolygon

Polygon Amoy RPC 端点:链设置、水龙头和调试

获取 Polygon Amoy RPC 端点、链 ID 和浏览器详细信息,用于测试网开发。了解如何配置钱包和 dApp、从水龙头获取测试 POL,以及调试常见的 RPC 问题。比较公共、共享和专用节点选项,以获得可靠的 Amoy 访问。...

网络 RPCAvalanche

什么是 Base 网络 RPC 端点,如何使用它?

Base 网络 RPC 端点是您的 dApp 或钱包用于与 Base 区块链通信的 URL。OnFinality 在 https://base.api.onfinality.io/public 提供了一个公共 HTTPS 端点,您可以使用它发送 JSON-RPC 请求来读取数据或提交交易。本文介绍了...

网络 RPCIoTeX

IoTeX RPC 端点是什么以及如何连接?

IoTeX 是一个兼容 EVM 的 Layer 1 区块链,专注于 DePIN 和机器经济。要与 IoTeX 交互,你需要一个 RPC 端点——一个读取区块链数据和提交交易的网关。本文列出了 IoTeX 主网和测试网的官方及第三方 RPC 端点,包括链设置、示例代码以及选择可靠提供商的准则。...

测试网 RPCBNB Chain

BNB Smart Chain 测试网 RPC:链设置、水龙头和调试

BNB Smart Chain 测试网(链 ID 97)是您在接触主网之前验证合约、钱包和索引器的环境。本页面为您提供准确的网络设置、可用的公共端点、水龙头指南以及最浪费开发者时间的故障模式。您还会找到一个简短的检查清单,用于判断何时共享公共端点足够,何时专用节点更合适。...

网络 RPCStellar

什么是 Stellar 节点?如何连接到网络?

Stellar 节点是运行 Stellar 网络的服务器,负责验证交易和维护账本。本文解释了不同的节点类型、如何运行节点,以及如何使用 RPC 端点将您的应用程序连接到网络。...

永远不用担心基础设施

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

开始