摘要
Amoy Polygon 是当前的 Polygon 权益证明测试网,取代了已弃用的 Mumbai 网络。它运行与 Polygon 主网相同的客户端堆栈(Bor 和 Heimdall),链 ID 为 80002,并使用 POL 作为原生 gas 代币,因此合约和工具的行为几乎与生产环境相同。开发者使用它在发布到 Polygon 主网之前部署和测试智能合约、索引器和 dApp 前端。
本页解释了 Amoy 是什么,如何通过 RPC 端点连接到它,以及如何在公共端点与托管或专用基础设施之间做出选择。它还涵盖了水龙头访问、MetaMask 网络设置,以及从 Mumbai 迁移到 Amoy 时最可能遇到的故障模式。
Amoy Polygon 是当前的 Polygon 权益证明(PoS)测试网。如果您在 Mumbai 上看到弃用通知后一直在搜索“amoy polygon”,简短的回答是:Amoy 取代 Mumbai 成为规范的 Polygon 测试网,它使用链 ID 80002,并运行与 Polygon 主网相同的 Bor/Heimdall 客户端堆栈。这意味着合约、工具和 RPC 方法的行为几乎与生产环境相同,这正是您对测试网的期望。
本页回答了 Amoy 是什么,然后帮助您决定如何连接到它。如果您已经知道需要一个端点,请跳转到链设置表和连接示例。如果您仍在评估 Amoy 是否适合您的工作流程,请从下面的适用性部分开始。
何时 Amoy 是适合您工作的网络
Amoy 是一个测试网,因此决策不在于“这是否是好的基础设施”,而在于“这是否是当前任务的正确网络”。使用以下内容作为快速筛选。
| 您的任务 | Amoy 是否适合? | 备注 |
|---|---|---|
| 在主网之前部署和测试 Solidity 合约 | 是 | 与 Polygon 主网相同的 EVM 行为 |
| 针对实时链测试 dApp 前端 | 是 | 对于重复运行,使用稳定的 RPC 端点,而不是共享的公共端点 |
| 索引或子图开发 | 是 | 确认您的索引器支持链 ID 80002 |
| 测试 gas 估算和费用逻辑 | 是 | POL 是原生 gas 代币,与主网匹配 |
| 负载测试生产吞吐量 | 否 | 测试网不反映主网负载或验证者行为 |
| 存储任何有价值的东西 | 否 | 测试网代币没有货币价值 |
| 桥接真实资产 | 否 | 使用 Polygon 主网 |
如果您的任务在该表的上半部分,Amoy 是正确的网络。如果在下半部分,您需要 Polygon 主网,OnFinality 也通过其 Polygon 网络页面 支持。
Amoy Polygon 链设置一览
这些是将 Amoy 添加到钱包、Hardhat 配置或后端服务所需的值。在不同环境中保持一致以避免细微的错误。
| 设置 | 值 |
|---|---|
| 网络名称 | Polygon Amoy |
| 链 ID | 80002 |
| 原生货币 | POL(18 位小数) |
| 区块浏览器 | https://amoy.polygonscan.com |
| RPC 传输 | HTTP 和 WebSocket |
| 客户端堆栈 | Bor(执行)和 Heimdall(共识) |
链 ID 是人们最常出错的值。Mumbai 使用 80001;Amoy 使用 80002。如果工具静默地指向错误的链 ID,交易可能在本地看起来成功,但在您实际想要的网络上失败。
通过 RPC 端点连接到 Amoy
RPC 端点是您的钱包、脚本或后端用于读写链的 HTTP 或 WebSocket 地址。OnFinality 公开了一个公共 Amoy 端点,您可以用它进行轻量测试:
https://polygon-amoy.api.onfinality.io/public
对于偶尔手动测试之外的任何情况,您应该使用 API 密钥或专用节点,而不是共享的公共端点。公共端点有速率限制,并且被许多用户共享,这使得它们不适合 CI 管道、索引器或任何频繁轮询的东西。
使用 curl 快速检查
确认端点是否活跃并返回您期望的链的最快方法是调用 eth_chainId:
curl -s https://polygon-amoy.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
正确的响应返回 0x13882,即十进制的 80002。如果您得到不同的值,说明您在与错误的网络通信。
MetaMask 和钱包配置
在 MetaMask 中,手动添加网络并输入上表中的值。最容易引起混淆的两个字段是链 ID(80002)和货币符号(POL,不是 MATIC)。较旧的教程仍然列出 MATIC,因为代币已重命名,但新的网络配置应使用 POL。
使用 ethers 的 JavaScript 示例
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider(
"https://polygon-amoy.api.onfinality.io/public",
{ chainId: 80002, name: "polygon-amoy" }
);
const block = await provider.getBlockNumber();
console.log("Amoy head block:", block);
显式传递链 ID 可以让 ethers 尽早检测到不匹配,而不是稍后因令人困惑的错误而失败。
从水龙头获取测试网 POL
Amoy 使用 POL 作为 gas,因此在部署或发送交易之前,您需要测试网 POL。Amoy 的水龙头通常通过钱包余额检查或小型社交验证步骤来限制滥用。一般流程是:
- 使用上述设置将 Amoy 添加到您的钱包。
- 复制您的钱包地址。
- 从 Polygon Amoy 水龙头请求测试网 POL。
- 在运行部署之前确认余额到账。
水龙头的可用性和滴水量会随时间变化,因此将任何特定的水龙头 URL 视为需要验证的内容,而不是永久常量。如果水龙头干涸,通常的原因是共享 IP、最近已经领取过的钱包或水龙头本身的临时故障。
常见故障模式及如何调试
大多数 Amoy 问题是配置问题,而不是网络问题。下表将症状映射到可能的原因。
| 症状 | 可能原因 | 修复 |
|---|---|---|
chainId 不匹配错误 | 错误的链 ID(80001 vs 80002) | 将配置更新为 80002 |
| 交易卡在待处理状态 | Gas 价格太低或 nonce 间隙 | 以更高的 gas 重新提交或重置 nonce |
部署时 insufficient funds | 没有测试网 POL | 从水龙头请求 |
| 间歇性 429 响应 | 共享公共端点速率限制 | 改用 API 密钥或专用节点 |
| 部署后找不到合约 | 部署到了不同的链 | 在部署输出中验证链 ID |
| WebSocket 断开连接 | 共享端点上的空闲超时 | 重连逻辑或专用节点 |
如果您从 Mumbai 迁移,最常见的单一问题是过时的链 ID 或配置文件中留下的硬编码 Mumbai RPC URL。在假设网络损坏之前,在您的仓库中搜索 80001 和 mumbai。
公共端点 vs 托管 RPC vs 专用节点
一旦 Amoy 在本地运行,下一个决定是为您的团队在哪里运行它。三种常见选项的主要区别在于您需要多少控制和隔离。
| 选项 | 最适合 | 权衡 |
|---|---|---|
| 公共端点 | 手动测试、快速检查 | 共享、速率限制、无 SLA |
| 托管 RPC(OnFinality API 服务) | CI、暂存、小型生产 dApp | API 密钥、可预测的访问、更少的运维工作 |
| 专用节点 | 高容量索引器、延迟敏感的应用 | 完全隔离、更多成本、更多设置 |
OnFinality 通过其 API 服务 提供托管 RPC 访问,并通过 专用节点 提供专用节点。对于大多数在 Amoy 上测试的团队,使用 API 密钥的托管端点是正确的起点。当您需要一致的吞吐量、大规模的 WebSocket 订阅或与其他用户隔离时,再转向专用节点。
如果您更广泛地比较提供商,RPC 提供商选择指南 更深入地介绍了评估标准,RPC 定价 解释了通常如何计量使用量。
从 Mumbai 迁移到 Amoy
Mumbai 已弃用,因此如果您的代码库中仍有 Mumbai 引用,请计划迁移。步骤通常很小但容易遗漏:
- 在所有出现的地方将链 ID
80001替换为80002。 - 将 Mumbai RPC URL 替换为 Amoy 端点。
- 将区块浏览器 URL 更新为
https://amoy.polygonscan.com。 - 从 Amoy 水龙头重新请求测试网 POL。
- 重新部署合约并重新运行集成测试。
- 更新任何硬编码的合约地址,因为它们在 Amoy 上会有所不同。
快速 grep mumbai、80001 和 maticmum 通常会找出所有需要关注的地方。
使用 Amoy 的团队的操作清单
在您将 Amoy 视为工作流程的稳定部分之前,请确认以下内容:
- 每个环境(本地、CI、暂存)都指向相同的链 ID 和端点。
- API 密钥等机密存储在环境变量中,而不是提交。
- 您的客户端具有针对瞬时 RPC 失败的重试和超时逻辑。
- WebSocket 客户端在断开连接后自动重新连接。
- 您有一个备用端点,以防主端点不可用。
- 监控不仅对应用程序错误发出警报,还对失败的 RPC 调用发出警报。
这些是您在 Polygon 主网上需要的相同习惯,因此在 Amoy 上建立它们会在以后带来回报。OnFinality 的 支持的 RPC 网络 页面列出了可用的网络,如果您想在测试网和主网上运行相同的设置。
关键要点
- Amoy 是当前的 Polygon PoS 测试网,取代了已弃用的 Mumbai 网络。
- 它使用链 ID 80002、POL 作为原生 gas 代币以及 Bor/Heimdall 客户端堆栈。
- 公共 OnFinality Amoy 端点适合轻量测试,但托管或专用基础设施更适合 CI、索引器和类生产工作负载。
- 大多数 Amoy 问题是配置问题:错误的链 ID、缺少测试网 POL 或过时的 Mumbai URL。
- 从 Mumbai 迁移主要意味着更新链 ID、端点、浏览器 URL 和合约地址。
常见问题解答
什么是 Amoy Polygon?
Amoy 是 Polygon 权益证明测试网。它取代了 Mumbai,并运行与 Polygon 主网相同的客户端软件,因此合约和工具的行为类似,而无需冒真实资产的风险。
Amoy Polygon 的链 ID 是什么?
Amoy 使用链 ID 80002。这与 Mumbai 的 80001 不同,混淆它们是常见的错误来源。
Amoy Polygon 的 RPC 端点是什么?
OnFinality 在 https://polygon-amoy.api.onfinality.io/public 提供了一个公共 Amoy 端点。对于常规使用,建议使用 API 密钥或专用节点,而不是共享的公共端点。
Amoy 与 Polygon 主网相同吗?
不。Amoy 是一个没有真实价值的测试网。它足够接近地镜像主网行为以进行开发和测试,但您绝不应将测试网代币或状态视为生产数据。
如何在 Amoy 上获取测试网 POL?
使用 Polygon Amoy 水龙头。可用性和滴水量会变化,因此在工作流程中依赖它之前,请验证当前的水龙头。
我可以使用 Amoy 进行负载测试吗?
不可以。测试网不反映主网吞吐量或验证者行为。使用 Amoy 进行正确性测试,使用类似主网的暂存环境进行性能工作。
什么取代了 Mumbai?
Amoy 取代 Mumbai 成为规范的 Polygon 测试网。如果您仍有 Mumbai 引用,请将它们迁移到 Amoy。