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

Polygon 公共 RPC:何时使用以及何时该升级

摘要

Polygon 公共 RPC 是一个共享的、无需认证的 HTTPS 端点,允许你在不运行自己的节点的情况下读取链上数据并发送交易。它非常适合快速测试、钱包设置和低流量脚本,但共享容量意味着你不应将其用于生产流量或严格的延迟目标。本文介绍了官方公共端点、链设置、请求示例、速率限制症状,以及何时专用或托管 RPC 成为更好的选择。

Polygon 公共 RPC 是否适合你的工作负载?

公共 RPC 是与 Polygon 通信的最快方式,但它是一种共享资源。在将端点粘贴到配置文件之前,请将其与你要求它完成的任务相匹配。

你的情况公共 RPC 通常没问题迁移到托管或专用端点
钱包或 dApp 测试网设置尚不需要
一次性脚本或笔记本尚不需要
少量调用的 CI 冒烟测试如果测试并行运行
面向用户的 dApp 读取负载下有风险
索引器或日志回填是,需要归档访问
交易机器人或延迟敏感路径
高流量 eth_getLogs

如果你在原型设计,公共端点消除了所有设置摩擦。如果你要发布给用户,请将公共端点视为后备,而非主要路径。OnFinality 同时提供共享 RPC API 和专用 Polygon 节点,因此你可以从公共开始,无需更改应用逻辑即可升级。

连接所需的 Polygon 链设置

Polygon PoS 主网使用链 ID 137 和原生 gas 代币 POL。请确保这些值在钱包、库和部署配置中保持一致,因为不匹配是导致“错误网络”错误的最常见原因之一。

设置
网络名称Polygon Mainnet
链 ID137
原生货币POL(18 位小数)
区块浏览器https://polygonscan.com
传输HTTP 和 WebSocket
公共 RPC URLhttps://polygon.api.onfinality.io/public

对于测试网工作,Polygon Amoy 使用链 ID 80002、POL 代币和浏览器 https://amoy.polygonscan.com。其公共端点是 https://polygon-amoy.api.onfinality.io/public。请参阅 Polygon 网络页面 获取当前端点列表和传输支持。

针对公共端点的最小请求

从只读调用开始。eth_chainId 确认你在正确的网络上,eth_blockNumber 确认端点正在响应。

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

健康的响应返回 0x89,即十六进制的 137。如果你得到不同的值,说明你指向了另一条链。如果你得到 HTTP 429 或 JSON-RPC 错误,则端点正在限速或暂时不可用。

在 JavaScript 中,使用 viem 进行相同检查如下所示:

import { createPublicClient, http } from 'viem'
import { polygon } from 'viem/chains'

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

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

对于钱包设置,用户可以使用上表中的值手动添加 Polygon,或者你可以通过 wallet_addEthereumChain 提示他们。将 RPC URL 放在前端的一个位置,以便以后无需在组件中搜索即可替换。

公共端点的优势与压力点

公共端点是一个共享网关。它非常适合读取、钱包交互和开发。它不是为持续的并行流量或大量日志查询而设计的。

  • 读取和简单写入: eth_calleth_getBalanceeth_sendRawTransactioneth_getTransactionReceipt 行为正常。
  • 日志查询: 在大区块范围上的 eth_getLogs 是第一个被限流的方法,因为节点服务成本高昂。
  • WebSocket 订阅: 存在传输支持,但共享订阅在负载下可能断开。重连逻辑是强制性的。
  • 归档数据: 公共端点通常提供最近状态。深层历史查询可能失败或超时。
  • Trace 和 debug 方法: 这些通常在共享公共端点上不可用或受限。

如果你的应用依赖于后三项中的任何一项,请计划使用托管或专用端点,而不是在生产中发现限制。

表明该离开公共 RPC 的症状

你不需要正式的容量计划来知道公共端点不再足够。这些信号会提前出现:

  1. 间歇性 429 响应 在高峰时段,即使请求速率适中。
  2. eth_getLogs 超时 当你为回填扩大区块范围时。
  3. WebSocket 断开连接 你的客户端无法干净地恢复。
  4. 不一致的延迟 使 UI 加载指示器感觉随机而非可预测。
  5. 缺少历史状态 当用户打开旧交易或头寸时。
  6. 无可见性 了解请求失败的原因,因为共享端点很少暴露每个密钥的指标。

当出现两个或更多这些症状时,修复方法不是更长的重试循环。而是一个你控制容量的端点。

从公共迁移到托管或专用 Polygon RPC

迁移通常是配置更改,而不是重写。保持接口相同,更改传输目标。

// 之前:共享公共端点
const transport = http('https://polygon.api.onfinality.io/public')

// 之后:使用你自己的密钥的托管端点
const transport = http(process.env.POLYGON_RPC_URL, {
  retryCount: 3,
  retryDelay: 250,
  timeout: 10_000
})

实用的推出步骤:

  1. 将端点放入环境变量,以便无需部署即可更改。
  2. 在暂存环境中运行托管端点,并将错误率和延迟与公共基线进行比较。
  3. 添加后备提供商或第二个端点以实现故障转移。
  4. 首先迁移读取密集型路径,然后是写入,最后是任何归档或 trace 工作负载。
  5. 将公共端点保留为最后手段的后备,而不是默认。

如果你需要可预测的吞吐量、隔离资源或归档和 trace 访问,专用节点 为你提供一个不与其他客户共享的节点。如果你想在不自己操作节点的情况下获得托管容量,RPC API 服务 是中间路径。在 RPC 定价页面 上比较计划。

在公共、共享和专用端点之间选择

使用此矩阵将端点类型与工作负载匹配,而不是与预算线匹配。

工作负载公共 RPC共享托管 RPC专用节点
钱包测试网设置可以过度
原型 dApp可以过度
生产 dApp 读取不推荐高流量最佳
索引器或分析不适合受计划限制归档最佳
交易或延迟敏感不适合隔离最佳
Trace/debug 方法通常不可用取决于计划可用
WebSocket 订阅负载下不稳定支持隔离
操作可见性最小每个密钥的指标完全控制

OnFinality 跨越共享和专用层级:你可以从共享 RPC API 开始,随着流量增长迁移到专用 Polygon 基础设施,保持相同的 JSON-RPC 接口。有关更广泛的评估框架,请参阅 如何选择 RPC 提供商

发布前的操作检查清单

即使在托管端点上,一些习惯也能防止大多数事件:

  • 固定链 ID 在你的客户端配置中,以便错误网络响应快速失败。
  • 设置明确的超时和重试 而不是依赖库默认值。
  • 批量读取 在库支持的情况下减少请求数量。
  • 缓存不可变数据 如已确认的收据和旧日志。
  • 监控错误率和 p95 延迟 按方法,而不仅仅是总体。
  • 对 429 和 WebSocket 重连发出警报,因为两者都先于用户可见的故障。
  • 保持一个后备端点 配置并测试,而不仅仅是记录。

一个简单的监控探针可以在用户之前捕获端点退化:

#!/usr/bin/env bash
RPC="${POLYGON_RPC_URL:-https://polygon.api.onfinality.io/public}"
START=$(date +%s%3N)
RESP=$(curl -s -o /dev/null -w "%{http_code}" "$RPC" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}')
END=$(date +%s%3N)
echo "status=$RESP latency_ms=$((END-START))"

定期运行此脚本并记录输出。延迟上升趋势或连续非 200 响应是你当前端点不再足够的早期警告。

关键要点

  • 位于 https://polygon.api.onfinality.io/public 的 Polygon 公共 RPC 是一个共享端点,适用于开发、钱包和低流量脚本。
  • Polygon 主网使用链 ID 137 和 POL 作为原生代币;Amoy 测试网使用链 ID 80002。
  • eth_getLogs、归档查询、trace 方法和大量 WebSocket 使用是首先触及共享端点限制的工作负载。
  • 间歇性 429、超时和 WebSocket 断开是迁移到托管或专用端点的信号。
  • 迁移通常是传输更改加上重试、超时和后备,而不是应用重写。
  • OnFinality 提供共享 RPC 和专用 Polygon 节点,因此你可以在不更改 JSON-RPC 接口的情况下扩展容量。请参阅 支持的 RPC 网络 了解覆盖范围。

常见问题

Polygon 公共 RPC 免费使用吗?

公共端点通常无需 API 密钥即可用于开发和轻量使用。它们是共享的,因此不适合生产流量或需要一致容量的工作负载。

Polygon 主网链 ID 是什么?

Polygon PoS 主网使用链 ID 137。Polygon Amoy 测试网使用链 ID 80002。在发送交易之前,始终使用 eth_chainId 确认链 ID。

为什么我的 Polygon RPC 请求返回 HTTP 429?

429 表示端点正在对你的请求进行速率限制。在共享公共端点上,这会在负载下发生。降低请求频率、批量读取,或迁移到具有适合你流量的容量的托管端点。

我可以将公共 RPC 用于 eth_getLogs 吗?

小区块范围通常可以工作。用于索引或回填的宽范围通常会被限流或超时。对于日志密集型工作负载,请使用具有归档访问权限的托管或专用端点。

公共端点支持 WebSocket 订阅吗?

存在传输支持,但共享订阅在负载下可能断开。如果你依赖 eth_subscribe,请实现重连逻辑,并考虑使用专用端点以确保稳定性。

我什么时候应该切换到专用 Polygon 节点?

当你需要可预测的吞吐量、隔离资源、归档或 trace 访问,或对故障的每个密钥可见性时,请切换。专用节点从你的可靠性方程中移除了共享容量变量。

如何在我的应用中更改 RPC 端点?

将 URL 保存在环境变量中,并将其传递给 HTTP 传输。这样你就可以从公共迁移到托管或专用,而无需触及应用程序代码。

RPC 知识库

相关 RPC 内容

区块链基础设施Bittensor

如何使用Bittensor浏览器监控TAO网络

# 如何使用Bittensor浏览器监控TAO网络 Bittensor浏览器是一种基于网页的工具,可让您查看Bittensor网络的实时区块链数据,包括区块、交易、外部调用、事件和子网活动。与通用区块链浏览器不同,Bittensor浏览器专为Subtensor链定制,并提供针对质押、委托、子网代币和...

网络 RPCPolkadot

什么是Polkadot节点,如何运行一个?

# 什么是Polkadot节点,如何运行一个? Polkadot节点是一种软件客户端,它连接到Polkadot网络,同步区块链数据,并提供RPC端点用于查询状态、提交交易以及与平行链交互。运行自己的节点可以让你直接、无需信任地访问网络,但这需要大量的硬件、存储和持续的维护。对于许多开发者和dApp来...

网络 RPCMonad

选择 Monad RPC 提供商时应该关注什么?

# 选择 Monad RPC 提供商时应该关注什么? Monad RPC 提供商之所以重要,是因为 Web3 应用依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持你所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时为你提供扩展路径。 对于 Mona...

网络 RPCEth Sepolia

What is an Ethereum RPC endpoint and how do you choose the right one?

An Ethereum RPC endpoint is the URL your dapp, wallet, or backend uses to talk to an Ethereum node via JSON-RPC. Public endpoints are free but rate-li...

网络 RPCTON

什么是 TON 端点?如何选择?

TON 端点是 HTTP 和 JSON-RPC 桥接端点,允许链下应用程序读取区块链数据、查询智能合约并在 The Open Network (TON) 上提交交易。由于 TON 节点使用 ADNL 而非 HTTP 通信,因此 TON Center 的 API 或托管 RPC 提供商等端点是钱包、机...

测试网 RPCAleph Zero

什么是 Base 测试网 RPC?如何连接?

Base 测试网 RPC 端点允许开发者与 Base Sepolia 测试网交互,用于构建和测试兼容以太坊的 dApp。本文介绍了链设置、如何使用常用工具连接,以及如何为开发选择可靠的 RPC 提供商。...

永远不用担心基础设施

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

开始