摘要
获取 Base 主网 RPC 端点、链 ID 和网络设置,用于钱包和 dApp。了解如何在公共、免费和生产级 RPC 提供商之间选择,以及如何调试常见连接问题。
Base 是一个基于 OP Stack 构建的以太坊 Layer 2 网络,专为低成本、高吞吐量的 dApp 设计。要与 Base 交互,你需要一个 RPC 端点,让你的钱包或应用程序能够读写链上数据。本页涵盖必要的链设置、如何选择 RPC 提供商,以及如何调试常见连接问题。
链设置一览
在连接 Base 之前,你需要正确的网络参数。无论你使用公共端点还是专用节点,这些参数对于任何 RPC 提供商都是相同的。
| 设置 | 值 |
|---|---|
| 网络名称 | Base 主网 |
| 链 ID | 8453 (0x2105) |
| 原生货币 | ETH |
| 区块浏览器 | https://basescan.org |
| RPC 端点(公共) | https://mainnet.base.org |
| WebSocket 端点(公共) | wss://mainnet.base.org |
对于测试网开发,请使用链 ID 为 84532 的 Base Sepolia。你可以在 OnFinality 的 Base 网络页面 找到完整的 Base 网络列表。
如何将 Base 添加到你的钱包
大多数钱包(如 MetaMask)允许你添加自定义网络。你需要链 ID、RPC URL 和货币符号。以下是一个典型配置:
{
"chainId": "0x2105",
"chainName": "Base Mainnet",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"rpcUrls": ["https://mainnet.base.org"],
"blockExplorerUrls": ["https://basescan.org"]
}
你也可以使用 wallet_addEthereumChain 方法从你的 dApp 以编程方式添加 Base。
公共 RPC 与生产级 RPC:如何选择
公共 RPC 端点(如 https://mainnet.base.org)免费且方便测试,但通常有速率限制,可能不适合生产工作负载。对于服务真实用户的 dApp,你需要一个提供更高吞吐量、更好正常运行时间和专用基础设施的 RPC 提供商。
以下是一个快速决策指南:
- 原型开发或黑客松:使用公共端点或提供商的免费层。
- 生产级 dApp:使用托管 RPC 服务,配备专用节点或高级共享端点。
- 高频交易或索引:考虑专用节点以避免速率限制并确保持续性能。
OnFinality 提供 RPC 定价,可根据你的使用量扩展,你可以在 网络页面 查看支持哪些网络。
发起你的第一个 RPC 调用
一旦你有了端点,你可以用一个简单的 JSON-RPC 请求来测试它。以下是一个获取最新区块号的 curl 示例:
curl https://mainnet.base.org \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
你应该会得到类似 {"jsonrpc":"2.0","result":"0x2f5a1b","id":1} 的响应。结果是一个十六进制编码的区块号。
对于 WebSocket 订阅,你可以使用像 ethers 这样的库:
import { ethers } from "ethers";
const provider = new ethers.WebSocketProvider("wss://mainnet.base.org");
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
完成后记得关闭 WebSocket 连接以避免内存泄漏。
调试常见 RPC 问题
即使使用正确的端点,你也可能遇到问题。以下是常见的故障模式及解决方法:
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
eth_chainId 返回错误值 | 选择了错误的网络 | 验证链 ID 是否为 8453 |
| 请求超时 | 公共端点速率受限 | 切换到限制更高的提供商 |
nonce too low | 交易 nonce 不匹配 | 重置 nonce 或使用 eth_getTransactionCount |
insufficient funds | 钱包资金不足 | 从测试网水龙头获取测试 ETH |
| WebSocket 断开 | 空闲超时 | 实现重连逻辑 |
如果你使用公共端点并遇到速率限制,请考虑专用节点或付费计划。OnFinality 的 专用节点 服务为你提供自己的基础设施,没有共享速率限制。
提供商评估矩阵
在选择 Base RPC 提供商时,请根据以下标准进行比较:
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 吞吐量 | 每秒请求数 (RPS) 限制 | 决定你的应用能否扩展 |
| 可靠性 | 正常运行时间历史和冗余 | 避免用户停机 |
| 数据访问 | 归档数据、trace 方法 | 索引和分析所需 |
| WebSocket 支持 | WSS 端点可用性 | 实时更新所需 |
| 定价 | 免费层、按量付费、专用 | 符合你的预算和使用量 |
对于生产环境,你需要一个同时提供 HTTP 和 WebSocket 端点、归档数据(如果需要历史状态)以及清晰定价模型的提供商。OnFinality 在其 支持的网络 中提供这些功能。
测试网与主网:何时使用 Base Sepolia
在部署到主网之前,请在 Base Sepolia 上测试你的 dApp。测试网使用相同的 OP Stack 架构,但链 ID 不同,并且有水龙头。你可以从 Base Sepolia 水龙头获取测试 ETH,并使用 OnFinality 的 Base Sepolia 页面 上的测试网 RPC 端点。
关键要点
- Base 主网使用链 ID 8453,原生货币为 ETH。
- 公共 RPC 端点适合测试,但不适合生产。
- 根据吞吐量、可靠性和数据访问需求选择提供商。
- 在主网部署前,始终在 Base Sepolia 上测试。
- 使用 WebSocket 获取实时数据,并实现重连逻辑。
常见问题解答
什么是 Base RPC 端点?
Base 主网的公共 RPC 端点是 https://mainnet.base.org。对于生产环境,你应该使用像 OnFinality 这样的托管 RPC 提供商。
Base 链 ID 是多少?
Base 主网链 ID 是 8453 (0x2105)。Base Sepolia 测试网使用 84532。
如何获得免费的 Base RPC?
你可以免费使用公共端点 https://mainnet.base.org,但它有速率限制。许多提供商提供免费层,包括 OnFinality 的 RPC 服务。
为什么我的 Base RPC 请求失败?
检查你的网络配置,确保你使用了正确的链 ID,并验证你的端点是否受到速率限制。如果你使用公共端点,请考虑升级到专用节点。
我可以将 WebSocket 与 Base RPC 一起使用吗?
是的,Base 支持 WebSocket 连接。公共访问使用 wss://mainnet.base.org,或使用你的提供商的 WSS 端点。
Base 主网和 Base Sepolia 有什么区别?
Base Sepolia 是一个测试网,具有相同的功能,但使用测试 ETH 和不同的链 ID。它用于在主网部署之前进行开发和测试。
常见问题
What is the Base RPC URL for OnFinality?
The public Base mainnet endpoint is https://base.api.onfinality.io/public. For production use, create an authenticated endpoint in the OnFinality Base Hub and replace YOUR_ENDPOINT in your connection string.
What is the Base chain ID?
Base mainnet chain ID is 8453 (0x2105). Base Sepolia testnet uses chain ID 84532.
Is the public Base endpoint free to use?
Yes, the public endpoint is available without an API key for testing and prototyping. It may be rate-limited and is not recommended for sustained production workloads.
Can I use WebSocket with the OnFinality Base public endpoint?
Public Base endpoints are typically HTTP-only. WebSocket support depends on your plan and should be verified in the Base Hub before building subscription features.
How do I move from public to a production Base RPC endpoint?
Create an authenticated endpoint in the OnFinality Base Hub, replace the public URL in your code and wallet settings, and verify archive or Trace support if needed. Use the provider comparison guide at /rpc-assistant/rpc-providers-supporting-base-rpc to evaluate requirements.