摘要
Polygon 主网是采用权益证明(PoS)机制、兼容 EVM 的区块链,链 ID 为 137。如果你搜索了“polygon mainnet”,很可能你需要将钱包、dApp 或后端服务连接到它,并希望获得正确的链设置和可用的 RPC 端点,而无需猜测。
本页首先提供链设置,然后是一个可以立即测试的公共 OnFinality 端点,最后是一些检查项,用于区分快速演示和生产就绪的连接。它还解释了何时公共端点就足够,以及何时专用节点或托管 RPC 方案更合适。
Polygon 主网与测试网 Polygon Amoy 不同。在配置中请将两者分开:主网链 ID 是 137,而 Amoy 使用 80002。混淆它们是部署看起来已连接但交易从未确认的最常见原因之一。
关键要点
- Polygon 主网使用链 ID 137,原生货币为 POL(18 位小数),区块浏览器为 polygonscan.com。
- Polygon 主网的公共 OnFinality 端点是 https://polygon.api.onfinality.io/public;它适用于测试和轻量读取。
- 钱包、dApp 和后端配置都必须指向链 ID 137,而不是 Amoy 测试网的链 ID 80002。
- 生产工作负载通常需要具有明确速率限制、WebSocket 支持和监控的托管或专用端点。
- 大多数连接失败可追溯到错误的链 ID、过时或受速率限制的端点,或端点不支持的方法。
- OnFinality 提供 Polygon RPC API 访问和专用节点选项;请查看网络页面和定价页面以获取最新详情。
Polygon 主网设置一览
在编写任何代码之前,请确认每个 EVM 工具都需要的四个值:链 ID、货币符号、小数位数和可用的 RPC URL。对于 Polygon 主网,这些值是稳定的且被广泛使用,因此不匹配几乎总是意味着复制粘贴错误或遗留的测试网值。
下表是你可以粘贴到钱包、Hardhat 配置或 viem 链定义中的参考。如果工具同时要求网络 ID 和链 ID,在 Polygon 主网上两者都使用 137。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 链 ID | 137(十六进制 0x89) | 错误的链 ID 会将交易发送到错误的网络或导致钱包拒绝。 |
| 原生货币 | POL,18 位小数 | Gas 以 POL 支付;仍写 MATIC 的旧配置可能会让用户困惑,但网络是相同的。 |
| 公共 OnFinality RPC URL | https://polygon.api.onfinality.io/public | 用于测试读取和钱包连接的快速端点。 |
| 区块浏览器 | https://polygonscan.com | 用于确认交易、合约地址和区块号。 |
| 传输方式 | HTTP 和 WebSocket | HTTP 适用于请求/响应调用;WebSocket 用于订阅。 |
快速建议:公共端点还是托管方案?
当你配置钱包、运行快速脚本或检查合约地址解析时,使用公共 OnFinality 端点。这是一种无需注册即可确认链设置的快速方法。
当你的应用有真实用户、后台任务或索引器持续访问 Polygon 主网时,迁移到托管 RPC API 密钥或专用节点。共享公共端点并非为吸收生产流量而设计,单个高流量客户端可能会降低所有人的体验。
如果不确定,先从公共端点开始,测量一天的请求量,然后再决定。RPC 定价页面和 Polygon 网络页面提供了具体的选项供比较。
- 原型或钱包设置:公共端点即可。
- 具有真实流量的预发布环境:托管 RPC API 密钥。
- 高容量读取、索引器或延迟敏感的写入:评估专用节点。
- 生产环境需要 WebSocket 订阅:在承诺之前确认传输支持。
使用 curl、viem 和钱包连接
最快的健全性检查是单个 JSON-RPC 调用。如果 eth_chainId 返回 0x89,则你正在与 Polygon 主网通信。如果返回 0x13882,则你在 Amoy 上,需要切换端点。
对于应用代码,viem 允许你定义链并将其指向任何 RPC URL。将 URL 保存在环境变量中,以便在公共、托管和专用端点之间切换而无需编辑源代码。
curl -X POST https://polygon.api.onfinality.io/public -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'- 预期结果为 0x89(Polygon 主网)。
- 在 viem 中,创建一个 id 为 137 的链对象,并将 rpcUrls.default.http 设置为你的端点。
- 在 MetaMask 中,添加一个网络,链 ID 为 137,符号为 POL,RPC URL 为上述地址。
故障模式及调试方法
大多数 Polygon 主网连接问题都属于少数几类。在更改代码之前,将症状与可能的原因匹配,因为修复通常是配置问题而非逻辑问题。
如果 curl 调用成功但在应用中失败,请比较应用使用的确切 URL、标头和链 ID。从测试网设置复制来的环境变量是常见原因。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 钱包显示错误网络 | 链 ID 为 137,而非 80002 | Amoy 是测试网;那里的交易不会影响主网余额。 |
| eth_call 返回空或回滚 | 合约地址和 ABI 与主网部署匹配 | 测试网地址通常与主网不同。 |
| 间歇性 429 或超时 | 请求量与端点限制的对比 | 公共端点是共享的;持续负载需要托管方案。 |
| WebSocket 订阅断开 | 传输支持和重连逻辑 | 长寿命订阅需要支持 ws 的提供商和可重连的客户端。 |
| eth_getLogs 超时 | 区块范围大小和过滤器具体性 | 非常宽的日志查询开销大;缩小范围或使用索引器。 |
生产就绪检查清单
在将真实用户指向 Polygon 主网端点之前,请逐项检查以下内容。它们是在你的笔记本电脑上运行的演示与在负载下表现可预测的服务之间的区别。
至少配置一个备用端点。即使运行良好的提供商也可能有维护窗口,客户端配置中的备用 URL 可以将硬中断变为短暂的降级。
- 端点 URL 存储在环境配置中,而非硬编码。
- 启动时断言链 ID,以便配置错误的环境快速失败。
- 为读取路径配置备用 RPC URL。
- 监控错误率、延迟和区块高度滞后。
- 如果使用订阅,实现 WebSocket 重连逻辑。
- 保留失败交易的日志,以便重现问题。
何时从公共 RPC 迁移到 OnFinality 基础设施
OnFinality 为 Polygon 主网提供 RPC API 访问和专用节点基础设施。RPC API 是公共端点的自然下一步:你获得一个托管 URL 和更清晰的用量视图。专用节点适用于需要隔离容量或特定传输要求的团队。
你不必一次性决定所有事情。从公共端点开始,流量增长时迁移到托管方案,当工作负载变得足够可预测以进行规模估算时评估专用节点。支持的 RPC 网络页面显示了如果你运行多链基础设施还有哪些可用选项。
- 托管 RPC API:大多数生产应用的良好默认选择。
- 专用节点:更适合高持续吞吐量或严格隔离。
- 多链团队:在各网络间保持端点约定一致。
- 始终在网络页面上确认当前的传输支持和限制。
常见问题
Polygon 主网的链 ID 是什么?
Polygon 主网使用链 ID 137,十六进制为 0x89。Polygon Amoy 测试网使用 80002。在发送交易之前,始终确认你的钱包或应用报告的链 ID。
Polygon 主网的公共 OnFinality RPC URL 是什么?
公共端点是 https://polygon.api.onfinality.io/public。它支持 HTTP 和 WebSocket,适用于测试和轻量使用。对于生产流量,请使用托管 RPC API 密钥或专用节点。
Polygon 主网和 Polygon PoS 是同一个吗?
Polygon 主网通常被称为 Polygon PoS。它是一个兼容 EVM 的权益证明链,将检查点提交到以太坊。原生 Gas 代币是 POL,在命名上取代了 MATIC。
如何将 Polygon 主网添加到 MetaMask?
打开网络设置,添加自定义网络,输入链 ID 137、货币符号 POL、来自 OnFinality 的 RPC URL,以及 https://polygonscan.com 作为浏览器。保存并切换到该网络。
为什么我的 Polygon 主网调用因速率限制错误而失败?
公共端点是共享的且有速率限制。如果在负载下看到 429 响应或超时,请迁移到托管 RPC 方案或专用节点,以便你的流量拥有自己的容量。