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_call、eth_getBalance、eth_sendRawTransaction 和 eth_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 内容

网络 RPCTON

TON JSON-RPC:端点、方法及使用方法

TON JSON-RPC 是通往开放网络(The Open Network)的 JSON-RPC 2.0 接口,让您可以通过单个 HTTPS 端点查询账户状态、运行智能合约 get 方法以及发送交易。本文解释了端点结构、常用方法、身份验证,以及如何在公共、托管和专用 TON RPC 基础设施之间进行...

区块链基础设施Bittensor

什么是Bittensor挖矿,如何开始?

# 什么是Bittensor挖矿,如何开始? Bittensor挖矿与传统加密货币挖矿有本质区别。Bittensor矿工不是解决哈希难题,而是贡献机器学习算力——训练模型、运行推理或解决AI任务——并根据其表现获得TAO排放。挖矿发生在子网内,每个子网都有子网所有者定义的独特激励机制。本指南解释了关...

网络 RPCMetis

Metis API:链设置、RPC 方法和提供商选择

Metis API 是指 Metis Andromeda 第二层区块链的 JSON-RPC 接口,这是一个兼容以太坊的 Rollup。本文涵盖链配置、基本 RPC 方法、如何连接钱包和 dApp,以及为生产工作负载选择可靠 RPC 提供商的标准。...

网络 RPCAstar

Astar zkEVM RPC:如何连接和配置您的 dApp

Astar zkEVM 是一个基于以太坊的 Layer 2 解决方案,将 Astar 生态系统引入零知识 rollup。本文介绍如何使用正确的 RPC 端点、链 ID 和配置将您的 dApp 连接到 Astar zkEVM,以及如何为生产环境选择可靠的 RPC 提供商。...

网络 RPCAvalanche

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

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

网络 RPCKusamaAsset Hub

Asset Hub Kusama RPC 端点:如何连接和使用

Asset Hub Kusama(之前称为 Statemine)是 Kusama 上的一个系统平行链,用于低成本资产创建和转账。本文提供链设置、可用的 RPC 方法以及面向开发者的实用连接指南,帮助开发者寻找可靠的基础设施。对于生产环境,请评估延迟、归档节点支持和 WebSocket 可用性,以确保...

永远不用担心基础设施

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

开始