摘要
Sepolia 是以太坊主要的公共测试网,用于应用开发。当开发者搜索“sepolia”时,他们通常需要以下三件事之一:将网络添加到钱包的正确链设置、用于部署和测试合约的可工作 RPC 端点,或诊断测试交易为何未按预期运行的方法。
Sepolia 的基本设置是稳定且广泛记录的:链 ID 11155111、货币符号 ETH 和区块浏览器 https://sepolia.etherscan.io。不同设置之间变化的是你指向工具的 RPC 端点。公共端点适合快速检查,但它们可能受到速率限制、在负载下不一致,或缺少测试套件所需的方法支持。
本页重点介绍连接和验证工作流程:使用哪些设置、如何确认端点健康,以及何时从共享公共 URL 迁移到托管或专用 RPC 服务。有关更广泛的端点参考,请参阅 Ethereum Sepolia RPC 端点页面。
关键要点
- Sepolia 使用链 ID 11155111 和 ETH 符号;这些值是稳定的,应在钱包和框架配置中明确设置。
- 公共 Sepolia 端点适用于冒烟测试,但共享端点可能限制请求,并且可能不暴露测试所依赖的所有 JSON-RPC 方法。
- 通过一小组探测验证端点:链 ID、最新区块、gas 价格以及对已知地址的合约调用。
- 如果你的 CI 流水线或暂存环境依赖 Sepolia,托管或专用端点可减少共享公共基础设施导致的波动。
- 在代码中将 Sepolia 和主网配置分开,以免仅测试网设置泄漏到生产部署中。
- OnFinality 提供 Sepolia RPC 访问以及其他支持的网络;请查看网络页面和定价页面以了解当前选项。
Sepolia 链设置一览
大多数 Sepolia 问题始于配置不匹配,而不是网络故障。在调试其他任何内容之前,请确认你的钱包、框架或脚本使用的是正确的链 ID 和 RPC URL。Sepolia 是一个以太坊测试网,因此它与主网共享相同的 JSON-RPC 接口,但运行在具有自己链 ID 的独立账本上。
下表列出了标准 Sepolia 连接所需的值。在将网络添加到钱包或编写框架配置文件时,将其用作检查清单。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 网络名称 | Sepolia(或 Ethereum Sepolia) | 钱包 UI 和某些框架根据名称匹配;不一致的命名会导致重复的网络条目。 |
| 链 ID | 11155111 | 错误的链 ID 是交易失败和签名错误的最常见原因。 |
| 货币符号 | ETH(Sepolia ETH) | 仅用于显示,但不匹配会混淆水龙头和余额检查。 |
| RPC URL | 你控制或信任的 Sepolia 端点 | 决定测试运行期间的吞吐量、方法支持和可靠性。 |
| 区块浏览器 | https://sepolia.etherscan.io | 用于验证交易和合约部署。 |
快速建议:公共端点还是托管服务?
如果你是首次部署合约或检查钱包能否看到 Sepolia 余额,公共端点通常就足够了。权衡之处在于公共端点是共享的,共享基础设施可能会限制突发请求或在负载下表现不同。
当 Sepolia 成为可重复工作流程的一部分时,迁移到托管或专用端点:在每个拉取请求上部署合约的 CI 流水线、轮询收据的集成测试,或需要数小时稳定访问的暂存环境。决策与其说关乎 Sepolia 本身,不如说关乎你的团队对其的依赖程度。
- 对于一次性部署、钱包设置和手动探索,使用公共端点。
- 当多个开发者或 CI 作业共享相同的 Sepolia 访问时,使用托管 RPC 服务。
- 当你需要隔离的吞吐量、自定义方法暴露或长时间运行的测试作业而不受干扰时,使用专用基础设施。
- 在任何情况下,都将端点 URL 保存在环境配置中,而不是硬编码在源代码中。
在调试合约之前验证端点
许多 Sepolia 问题实际上是端点问题。在检查合约逻辑之前,确认端点响应基本 JSON-RPC 调用。OnFinality 公共 Sepolia 端点是 https://eth-sepolia.api.onfinality.io/public;你可以用它进行快速探测,或替换为你自己的端点 URL。
从 eth_chainId 开始。它应返回 0xaa36a7,即十六进制的 11155111。如果返回其他内容,则你的工具指向了错误的网络。
eth_chainId确认你在 Sepolia 上,而不是主网或其他测试网。eth_blockNumber确认端点正在推进,而不是提供过时数据。eth_gasPrice确认端点可以返回用于交易构造的费用数据。- 对已知部署合约调用
eth_getCode确认状态访问,而不仅仅是链元数据。
钱包和框架配置模式
钱包和框架对 Sepolia 的处理方式不同。MetaMask 默认提供 Sepolia,而其他钱包可能需要手动输入网络。Hardhat、Foundry 和 ethers 等框架通常从配置文件或环境变量读取 RPC URL。
最安全的模式是在共享配置中定义一次 Sepolia,并在所有地方引用它。避免在脚本中重复链 ID 和 URL,因为文件之间的漂移是导致令人困惑的失败的常见原因。
- 将 Sepolia RPC URL 存储在环境变量中,例如
SEPOLIA_RPC_URL。 - 将链 ID 定义为常量,并在提交交易的脚本启动时断言它。
- 将 Sepolia 和主网配置保存在单独的文件或单独的环境配置文件中。
- 在启动时记录解析的链 ID,以便 CI 输出显示作业实际使用的网络。
故障症状及首先查看的位置
当 Sepolia 交易失败时,错误消息通常指向合约,而真正原因是配置或端点行为。使用下面的症状表在更改合约代码之前缩小搜索范围。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 交易因链 ID 不匹配而被拒绝 | 钱包或签名者的链 ID 与端点链 ID | 签名绑定到链 ID;不匹配会使交易无效。 |
| 测试运行期间间歇性超时 | 针对共享公共端点的请求量 | 突发 CI 作业可能超过共享端点容量。 |
| 方法未找到或不支持 | 端点是否暴露测试调用的方法 | 某些端点限制 debug、trace 或 archive 方法。 |
| 水龙头领取后余额显示为零 | 地址、网络选择和水龙头确认 | 水龙头交易可能延迟或发送到错误的网络。 |
| 合约调用返回空数据 | Sepolia 上的合约地址和部署区块 | 主网地址在 Sepolia 上不会有代码。 |
测试网卫生:将 Sepolia 与生产环境分开
Sepolia 的价值恰恰在于它不是主网。将其视为具有自己的密钥、自己的配置和自己的访问控制的独立环境。测试密钥绝不应在主网上重复使用,并且当主网端点失败时,Sepolia 端点不应作为后备。
一个简单的规则有帮助:如果脚本可以针对两个网络运行,它应该要求显式的网络参数,而不是默认使用一个。这使得意外的主网部署更难发生,并保持测试网行为可预测。
- 为 Sepolia 和主网使用单独的部署者密钥。
- 在部署脚本中要求显式的
--network标志。 - 标记仅 Sepolia 的配置,以便在主网发布前易于审计。
- 当团队成员离开或 CI 凭据暴露时,轮换或撤销测试网 API 密钥。
当 Sepolia 访问成为基础设施时
在某些时候,Sepolia 不再是个人测试场,而成为团队的共享基础设施。这就是评估如何访问它的时刻。OnFinality 在包括 Ethereum Sepolia 在内的多个网络上提供 RPC API 访问和专用节点选项。你可以查看 Sepolia 网络页面 了解端点详细信息,比较 RPC 定价 了解基于量的计划,并浏览 支持的 RPC 网络 如果你的测试跨越多个链。
正确的选择取决于你的工作负载。偶尔部署的单个开发者可以继续使用公共端点。在每个提交上运行合约测试的团队,或需要稳定访问的暂存环境,受益于具有可预测行为的托管端点。需要隔离吞吐量或自定义方法支持的团队可以进一步升级到专用基础设施。
常见问题
Sepolia 的链 ID 是什么?
Sepolia 使用链 ID 11155111,十六进制为 0xaa36a7。在钱包和框架配置中明确设置此值以避免链 ID 不匹配错误。
Sepolia RPC URL 是什么?
没有单一的官方 Sepolia RPC URL。公共端点、托管提供商和自托管节点都可以工作,只要它们暴露你的工具所需的 JSON-RPC 方法。OnFinality 在 https://eth-sepolia.api.onfinality.io/public 发布了一个公共 Sepolia 端点,并为更重的工作负载提供托管或专用选项。
如何获取 Sepolia ETH?
Sepolia ETH 来自水龙头。水龙头在资格规则、每日限额以及是否需要账户或工作量证明方面各不相同。由于水龙头可用性会变化,请检查当前的水龙头来源,而不是依赖固定列表。
Sepolia 与以太坊主网相同吗?
不。Sepolia 是一个独立的测试网,拥有自己的账本、链 ID 和没有现实价值的测试 ETH。在主网上部署的合约和地址在 Sepolia 上不存在,除非你在那里部署它们。
为什么我的 Sepolia 交易因链 ID 错误而失败?
签名者和 RPC 端点可能在不同的链上。确认钱包或签名者配置为链 ID 11155111,并且端点对 eth_chainId 返回 0xaa36a7。
我可以在 CI 中使用公共 Sepolia 端点吗?
可以,但共享公共端点可能会限制突发请求,这会使 CI 不稳定。对于可重复的流水线,托管或专用端点通常更可预测。