摘要
公共 Sepolia RPC 端点是一个免费的共享 JSON-RPC URL,允许您与以太坊 Sepolia 测试网交互,而无需运行自己的节点。它非常适合快速原型开发、学习和低流量测试,但共享端点可能存在速率限制和性能波动。对于生产级 dApp 或负载测试,请考虑使用 OnFinality 等专用或托管 RPC 服务。
快速决策指南:公共端点与托管 RPC
在将 Sepolia RPC URL 复制到您的 dApp 之前,请确定您要构建什么。公共端点是任何人都可以使用的共享免费 JSON-RPC 服务器。它非常适合:
- 学习以太坊开发或在本地测试智能合约
- 构建黑客松项目或不需要高可靠性的原型
- 运行偶尔的脚本或一次性查询
但如果您正在构建供他人使用的 dApp,或者需要运行负载测试,公共端点可能会成为瓶颈。共享端点通常有速率限制,可能会限制大量使用,并且可能在没有通知的情况下宕机。在这种情况下,您需要像 OnFinality 这样的托管 RPC 服务,它提供具有更好可靠性和支持的专用或共享基础设施。
经验法则: 在开发和测试时使用公共端点,但在部署到生产环境或运行严肃的负载测试之前切换到托管 RPC。
Sepolia 链设置一览
Sepolia 是以太坊用于应用程序开发的主要测试网。它是一个权益证明网络,与以太坊主网高度相似,非常适合测试智能合约和 dApp。以下是配置钱包或 dApp 所需的关键链设置:
| 设置 | 值 |
|---|---|
| 网络名称 | Ethereum Sepolia |
| 链 ID | 11155111 (0xaa36a7) |
| 原生货币 | Sepolia ETH (ETH) |
| 区块浏览器 | https://sepolia.etherscan.io |
| 公共 RPC 端点 | https://eth-sepolia.api.onfinality.io/public |
| WebSocket 端点 | 公共端点不可用 |
这些设置与 OnFinality 上的 Sepolia 网络页面 一致。在向钱包添加网络时,请始终验证链 ID 和浏览器 URL,以避免网络钓鱼或配置错误。
如何使用公共 RPC 连接到 Sepolia
您可以使用任何与以太坊兼容的工具使用公共端点。以下是在 Node.js 环境中使用 ethers.js (v6) 进行连接的方法:
const { ethers } = require('ethers');
const provider = new ethers.JsonRpcProvider('https://eth-sepolia.api.onfinality.io/public');
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log('Current Sepolia block:', blockNumber);
}
getBlockNumber();
如果您使用 viem,设置类似:
import { createPublicClient, http } from 'viem';
import { sepolia } from 'viem/chains';
const client = createPublicClient({
chain: sepolia,
transport: http('https://eth-sepolia.api.onfinality.io/public')
});
const blockNumber = await client.getBlockNumber();
console.log('Current Sepolia block:', blockNumber);
对于快速命令行测试,您可以使用 curl 调用 JSON-RPC 方法:
curl https://eth-sepolia.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
响应将类似于:
{"jsonrpc":"2.0","id":1,"result":"0xaf9f5a"}
result 是最新块号的十六进制表示。您可以使用 parseInt(result, 16) 将其转换为十进制。
将 Sepolia 添加到 MetaMask 或其他钱包
如果您使用 MetaMask 等钱包,您可以将 Sepolia 添加为自定义网络。以下是您需要的配置:
- 网络名称: Ethereum Sepolia
- 新的 RPC URL:
https://eth-sepolia.api.onfinality.io/public - 链 ID: 11155111
- 货币符号: ETH
- 区块浏览器 URL:
https://sepolia.etherscan.io
您还可以使用 wallet_addEthereumChain RPC 方法从您的 dApp 以编程方式添加网络:
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0xaa36a7',
chainName: 'Ethereum Sepolia',
nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },
rpcUrls: ['https://eth-sepolia.api.onfinality.io/public'],
blockExplorerUrls: ['https://sepolia.etherscan.io']
}]
});
从水龙头获取 Sepolia ETH
要在 Sepolia 上发送交易,您需要测试 ETH。您可以从公共水龙头获取免费的 Sepolia ETH。一些流行的选项包括:
水龙头通常要求您拥有主网 ETH 余额或 Alchemy/Infura 账户。它们还有每日限制以防止滥用。如果您正在构建需要稳定测试 ETH 供应的 dApp,请考虑运行自己的水龙头或使用提供测试代币的服务。
常见陷阱与故障排除
即使使用公共端点,您也可能会遇到问题。以下是一些常见问题及解决方法:
速率限制
公共端点通常有速率限制。如果您在短时间内发出大量请求,可能会收到 429 Too Many Requests 错误。为避免这种情况:
- 在您的 dApp 中添加缓存以减少冗余调用
- 尽可能使用批量请求
- 考虑使用托管 RPC 服务以获得更高的限制
连接超时
如果端点缓慢或宕机,您可能会看到超时。公共端点可能不可靠。您可以在代码中实现重试逻辑:
async function fetchWithRetry(url, options, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
const response = await fetch(url, options);
return await response.json();
} catch (error) {
if (i === retries - 1) throw error;
await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
}
}
}
链 ID 错误
如果您连接到错误的网络,您将收到错误。请始终仔细检查链 ID 是否为 11155111,并且 RPC URL 指向 Sepolia,而不是主网或其他测试网。
WebSocket 支持
公共端点通常不支持 WebSocket 连接。如果您需要实时更新(例如,对于交易机器人),您需要提供 WebSocket 端点的提供商。OnFinality 的 专用节点 可以为 Sepolia 提供 WebSocket 支持。
何时超越公共端点
公共端点非常适合开发,但它们有局限性。以下比较可帮助您决定何时升级:
| 因素 | 公共端点 | 托管 RPC(例如 OnFinality) |
|---|---|---|
| 成本 | 免费 | 提供免费层,付费计划用于更高使用量 |
| 速率限制 | 通常严格 | 更高限制,可配置 |
| 可靠性 | 可变,无 SLA | 更好的正常运行时间,支持 |
| WebSocket | 通常不可用 | 在专用节点上可用 |
| 归档数据 | 有限 | 可按需提供 |
| 自定义方法 | 无 | 有(例如 trace、debug) |
如果您正在构建生产级 dApp、运行负载测试或需要 WebSocket 支持,请考虑使用托管 RPC 服务。OnFinality 提供 RPC 定价,可根据您的需求扩展,您可以在我们的 网络页面 上找到受支持的网络。
关键要点
- 公共 Sepolia RPC 端点是一个免费的共享 JSON-RPC URL,用于与 Sepolia 测试网交互。
- 将其用于开发、测试和学习;对于生产或大量使用,请切换到托管 RPC。
- Sepolia 链 ID 为
11155111,原生货币为 Sepolia ETH。 - 您可以使用 ethers.js、viem 或 curl 通过公共端点进行连接。
- 公共端点可能有速率限制且缺乏 WebSocket 支持;对于这些需求,请考虑使用专用节点。
常见问题解答
什么是公共 Sepolia RPC 端点?
公共 Sepolia RPC 端点是 https://eth-sepolia.api.onfinality.io/public。它是一个免费的共享端点,允许您与以太坊 Sepolia 测试网交互。
我可以将公共 Sepolia RPC 用于生产环境吗?
不建议。公共端点是共享的,可能存在速率限制或停机。对于生产级 dApp,请使用具有更好可靠性和支持的托管 RPC 服务。
如何获取 Sepolia ETH?
您可以从 Alchemy、Infura 或 Google Cloud 等公共水龙头获取免费的 Sepolia ETH。这些水龙头通常需要账户并有每日限制。
公共 Sepolia RPC 是否支持 WebSocket?
公共端点通常不支持 WebSocket。如果您需要实时更新,请考虑提供 WebSocket 支持的专用节点。
Sepolia 的链 ID 是什么?
以太坊 Sepolia 的链 ID 是 11155111(十六进制 0xaa36a7)。