摘要
获取 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。它用于在主网部署之前进行开发和测试。