摘要
Base 是一个基于 OP Stack 构建的以太坊 Layer 2 网络。要与 Base 交互,您需要一个 RPC 端点,让您的应用程序能够读取和写入链上数据。本页涵盖官方 Base RPC 端点、链设置、常见请求模式以及如何调试连接问题。
快速开始:连接 Base RPC
如果您正在 Base 上构建,首先需要一个可靠的 RPC 端点。以下是 OnFinality 提供的官方公共端点:
https://base.api.onfinality.io/public
该端点支持 HTTP JSON-RPC,适用于开发和轻量级生产使用。如需更高吞吐量,可通过 OnFinality 的 RPC 服务 获取专用节点选项。
链设置一览
配置钱包或应用程序时,您需要以下 Base 网络参数:
| 参数 | 值 |
|---|---|
| 网络名称 | Base |
| 链 ID | 8453 |
| 原生货币 | ETH(以太币) |
| 符号 | ETH |
| 小数位数 | 18 |
| 区块浏览器 | https://basescan.org |
| RPC 端点 | https://base.api.onfinality.io/public |
这些值与官方 Base 文档一致,并被大多数钱包和 dApp 使用。
什么是 Base RPC 节点?
Base 是一个基于 OP Stack 构建的以太坊 Layer 2 网络。它继承了以太坊的安全性,同时提供更低的费用和更快的交易最终性。RPC(远程过程调用)节点是允许您的应用程序与 Base 区块链通信的接口。通过 RPC,您可以查询余额、发送交易、读取合约状态以及订阅事件。
运行自己的 Base 节点是可能的,但需要同步整个链并维护基础设施。对于大多数团队来说,使用像 OnFinality 这样的托管 RPC 提供商更实用,尤其是当您需要高可用性和低延迟时。
如何选择合适的 Base RPC 设置
您的 RPC 基础设施选择取决于您的工作负载。以下是一个快速决策指南:
- 开发和测试:使用公共端点或提供商的免费层。对于小流量和非关键应用来说足够了。
- 中等流量的生产 dApp:具有速率限制和良好正常运行时间的共享 RPC 计划通常就足够了。寻找支持 WebSocket 以进行实时更新的提供商。
- 高吞吐量或数据密集型应用:考虑使用专用的 Base 节点。这为您提供专用资源、更高的速率限制,并在需要时访问归档数据。
对于大多数生产应用,像 OnFinality 这样的托管 RPC 服务在成本、可靠性和易用性之间提供了最佳平衡。
发出您的第一个 JSON-RPC 请求
一旦您有了端点,就可以使用标准的以太坊 JSON-RPC 方法与 Base 交互。以下是一个简单的 curl 示例,用于获取当前区块号:
curl https://base.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":"0x123456"}
结果是十六进制编码的区块号。您可以将其转换为十进制以查看当前区块高度。
使用 ethers.js 与 Base RPC 交互
如果您正在构建 JavaScript 应用程序,ethers 库可以轻松连接到 Base。以下是一个最小示例:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://base.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
这将连接到公共端点并获取最新区块号。对于生产环境,您需要使用更健壮的提供商配置,包括重试和超时。
常见故障模式及调试方法
即使使用可靠的 RPC 提供商,您也可能会遇到问题。以下是常见症状及其修复方法:
| 症状 | 可能原因 | 调试步骤 |
|---|---|---|
ECONNREFUSED 或超时 | 网络问题或端点宕机 | 检查您的互联网连接,并在浏览器或 curl 中尝试该端点 |
401 Unauthorized | API 密钥无效或缺少身份验证 | 验证您的 API 密钥以及您使用的端点是否正确 |
429 Too Many Requests | 超出速率限制 | 降低请求频率或升级您的计划 |
-32000 服务器错误 | 无效的 JSON-RPC 请求 | 检查方法名称和参数 |
nonce too low | 交易 nonce 不匹配 | 使用 eth_getTransactionCount 获取正确的 nonce |
如果您使用公共端点并遇到速率限制,请考虑使用 专用节点 以获得更高的限制和更稳定的性能。
用于实时数据的 WebSocket 支持
对于需要实时更新的应用程序,例如交易监控或事件监听,WebSocket 端点至关重要。OnFinality 的 Base 端点支持 WebSocket 连接。以下是一个使用 ethers 的示例:
const { ethers } = require("ethers");
const provider = new ethers.WebSocketProvider("wss://base.api.onfinality.io/public");
async function subscribeToBlocks() {
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
}
subscribeToBlocks();
注意:WebSocket URL 使用 wss:// 方案。在依赖它之前,请确保您的提供商支持 WebSocket。
Base Sepolia 测试网
在部署到主网之前,您应该在 Base Sepolia 上进行测试。测试网使用不同的链 ID 和端点:
| 参数 | 值 |
|---|---|
| 网络名称 | Base Sepolia 测试网 |
| 链 ID | 84532 |
| RPC 端点 | https://base-sepolia.api.onfinality.io/public |
| 区块浏览器 | https://sepolia.basescan.org |
您可以从水龙头获取测试 ETH 来资助您的测试交易。有关更多详细信息,请参阅 Base Sepolia 网络页面。
生产就绪检查清单
在启动您的 Base dApp 之前,请检查此清单:
- 如果您的应用至关重要,请使用具有服务级别协议(SLA)的托管 RPC 提供商。
- 在您的 RPC 调用中实现重试逻辑和超时。
- 监控您的 RPC 使用情况,并为速率限制错误设置警报。
- 如果您需要高吞吐量或归档数据,请考虑使用专用节点。
- 在部署到主网之前,在 Base Sepolia 上进行测试。
- 保持您的链配置最新。
关键要点
- Base 是一个以太坊 Layer 2 网络,拥有自己的 RPC 端点。
- 官方公共端点是
https://base.api.onfinality.io/public。 - 链 ID 为 8453,原生货币为 ETH。
- 使用 JSON-RPC 方法(如
eth_blockNumber和eth_getBalance)进行基本交互。 - 对于生产环境,请考虑使用托管 RPC 提供商或专用节点以确保可靠性和可扩展性。
- 在主网部署之前,在 Base Sepolia 上进行测试。
常见问题解答
Base RPC 端点是什么?
公共 Base RPC 端点是 https://base.api.onfinality.io/public。如需更高限制,您可以使用 OnFinality 的专用节点。
Base 链 ID 是什么?
Base 链 ID 是 8453。
如何在 Base Sepolia 上获取测试 ETH?
您可以使用水龙头在 Base Sepolia 上获取测试 ETH。有关更多信息,请查看 Base Sepolia 网络页面。
我可以将 WebSocket 与 Base RPC 一起使用吗?
是的,OnFinality 的 Base 端点支持 WebSocket 连接。使用 wss://base.api.onfinality.io/public 获取实时数据。
公共 Base RPC 端点的速率限制是多少?
速率限制因提供商和计划而异。对于生产环境,请考虑付费计划或专用节点以避免达到限制。
有关 RPC 定价和支持网络的更多信息,请访问 RPC 定价 和 支持的 RPC 网络。