摘要
Base是一个以太坊Layer 2网络,它在自己的链上执行交易,并将结果结算到以太坊。开发者通过兼容EVM的JSON-RPC端点与其交互,这意味着大多数以太坊工具只需更改链ID和RPC URL即可使用。本文解释了Base是什么、它与以太坊的关系,以及如何可靠地连接。
您将找到链设置、一个可用的连接示例,以及关于在公共端点与托管或专用节点基础设施之间进行选择的实用指导。目标是帮助您决定如何将Base集成到您的技术栈中,以及在投入生产之前需要检查哪些事项。
Base是一个以太坊Layer 2网络。它在自己的链上执行交易,并将结果数据发布回以太坊,这就是“以太坊上的L2”这一术语的由来。对于开发者来说,实际影响很简单:Base使用与以太坊相同的JSON-RPC方言,因此大多数工具、库和合约只需更改链ID和RPC URL即可工作。
本页回答了直接的问题,然后帮助您决定如何连接。如果您已经知道Base是什么,只需要设置,请跳转到链设置表。如果您正在评估如何在生产环境中运行Base,下面的决策部分是一个起点。
快速推荐:哪种连接路径适合您的工作负载
并非每个项目都需要相同的Base设置。使用下表将您的情况与连接方法匹配。正确的答案取决于请求量、您是否需要归档或跟踪数据,以及您希望承担多少运维工作。
| 您的情况 | 建议方法 | 注意事项 |
|---|---|---|
| 原型设计、脚本、低容量读取 | 公共Base端点 | 共享容量;适合测试,不适合流量高峰 |
| 稳定流量的生产dApp | 托管RPC API | 速率限制、故障转移和监控很重要 |
| 重度索引、归档或跟踪调用 | 专用节点 | 存储和同步时间是您的责任 |
| 合规或数据驻留需求 | 专用节点 | 您控制部署环境 |
| 包括Base的多链应用 | 托管多链RPC | 跨链一致的工具可减少错误 |
如果您不确定,请从托管端点开始,只有当您能说出遇到的具体限制时,才转向专用节点。OnFinality提供RPC API访问和专用节点基础设施,因此您可以在不更改应用程序代码的情况下扩展相同的Base工作负载。
Base到底是什么,一段话说明
Base是基于OP Stack构建的Layer 2。它批量处理交易,在以太坊主网之外执行,并将压缩数据发布回以太坊进行结算和数据可用性。用户在Base上以ETH支付费用,网络暴露一个兼容EVM的接口。这意味着eth_call、eth_getLogs、eth_sendRawTransaction以及其他标准以太坊JSON-RPC方法集的行为符合您的预期。
对开发者来说,重要的细微差别是Base不是以太坊。它有自己链ID、自己的区块浏览器和自己的gas市场。部署到以太坊主网的合约不会自动在Base上可用;您需要单独部署。如果您使用相同的部署者和nonce,地址可以匹配,但这是一种便利,而不是保证。
链设置一览
在将Base添加到钱包、Hardhat配置、Foundry配置文件或viem客户端时,请使用这些值。
| 设置 | Base主网 | Base Sepolia测试网 |
|---|---|---|
| 链 ID | 8453 | 84532 |
| 原生货币 | ETH(18位小数) | ETH(18位小数) |
| 区块浏览器 | https://basescan.org | https://sepolia.basescan.org |
| 传输 | HTTP | HTTP |
| OnFinality公共RPC | https://base.api.onfinality.io/public | https://base-sepolia.api.onfinality.io/public |
有关完整的网络参考,请参阅Base网络页面和Base Sepolia网络页面。
使用curl和JavaScript连接
确认端点是否工作的最快方法是进行一次JSON-RPC调用。这将返回当前区块号:
curl -X POST https://base.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
成功的响应类似于{"jsonrpc":"2.0","id":1,"result":"0x..."}。如果您得到的是错误对象,请检查URL、方法名以及您的客户端是否发送了带有JSON正文的POST请求。
在JavaScript中,通过viem进行相同的调用如下所示:
import { createPublicClient, http } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({
chain: base,
transport: http('https://base.api.onfinality.io/public'),
});
const blockNumber = await client.getBlockNumber();
console.log(blockNumber);
如果您使用ethers,模式类似:使用Base RPC URL创建一个JsonRpcProvider并调用getBlockNumber()。当您传递链对象时,库会验证链ID,从而及早捕获配置错误的端点。
钱包和网络配置
将Base添加到钱包是测试人员和支持团队的常见第一步。字段直接映射到上面的链设置表。在MetaMask中,选择“手动添加网络”并输入链ID、RPC URL和浏览器URL。对于Base Sepolia,使用链ID 84532和Sepolia浏览器。
一个常见的错误是混合主网和测试网的值。如果您的钱包在成功领取水龙头后显示余额为零,请确认您处于测试网链ID,并且水龙头将资金发送到了钱包显示的同一地址。水龙头的可用性会随时间变化,因此请查看当前的Base文档,而不是依赖缓存的链接。
Base在以太坊技术栈中的位置
Base是共享以太坊工具的多个L2之一。如果您的应用程序已经支持以太坊主网,那么添加Base主要是一个配置更改。更难的问题是运维方面的:如何处理重组、如何高效索引日志,以及如何在负载下保持可预测的延迟。
对于运行多条链的团队,一致的RPC层比任何单链的特性更重要。OnFinality支持Base以及以太坊和其他网络,因此您可以在整个技术栈中使用一个提供商和一组凭证。请参阅支持的RPC网络获取当前列表。
生产就绪检查清单
在将真实用户指向Base端点之前,请逐项检查以下内容。它们按引发事件的频率排序。
- 故障转移。 您是否配置了第二个端点?单个URL是单点故障。
- 速率限制。 您知道每秒请求数的上限吗?您的客户端在收到429响应时是否会退避?
- 归档和跟踪需求。 您是否在宽区块范围调用
eth_getLogs,或使用跟踪方法?这些更重,可能需要专用节点。 - 重组处理。 Base与其他L2一样,可能会发生重组。您的索引器应在将数据视为最终确定之前确认最终性。
- 监控。 您是否对错误率和延迟进行告警,而不仅仅是总停机时间?
- 密钥管理。 RPC凭证是否存储在源代码树之外?
如果其中几项未得到解答,托管提供商可以消除大部分运维负担。如果您需要控制节点本身,专用节点可以为您提供这种控制,代价是运行基础设施。
常见故障模式及如何解读
大多数Base RPC问题属于少数几类。下表将症状映射到可能的原因。
| 症状 | 可能原因 | 下一步 |
|---|---|---|
method not found | 端点不支持该方法 | 确认该方法属于标准EVM集 |
429 Too Many Requests | 达到速率限制 | 添加退避并考虑更高层级 |
eth_getLogs超时 | 区块范围太宽 | 缩小范围或使用索引器 |
| 错误的链数据 | 端点指向不同的网络 | 使用eth_chainId验证链ID |
| 过时的区块号 | 缓存或节点滞后 | 与第二个端点比较 |
一个快速的诊断方法是调用eth_chainId并将结果与预期值进行比较。对于Base主网,它应返回0x2105(十进制8453)。对于Base Sepolia,它应返回0x14a34(84532)。如果这些不匹配,说明您正在与错误的网络通信。
在公共、托管和专用之间选择
公共端点对于开发和低容量读取是一个不错的默认选择。它是共享的,因此不适合需要可预测延迟的生产流量。
托管RPC API介于两者之间。您获得稳定的URL、监控以及无需运行节点即可扩展的能力。这是需要Base加上其他几条链的dApp、钱包和后端的常见选择。
专用节点适用于需要归档数据、跟踪调用、自定义配置或特定部署环境的团队。权衡是您拥有同步时间、存储和升级。对于大多数团队来说,决定取决于工作负载是否值得这种所有权。OnFinality的RPC定价页面概述了选项,如果您想比较成本模型。
关键要点
- Base是一个以太坊L2,具有兼容EVM的JSON-RPC接口,因此以太坊工具只需更改链ID和URL即可工作。
- Base主网使用链ID 8453;Base Sepolia使用84532。
- OnFinality公共端点是
https://base.api.onfinality.io/public和https://base-sepolia.api.onfinality.io/public。 - 公共端点适合开发;生产工作负载通常需要托管或专用基础设施。
- 在调试意外数据时,始终使用
eth_chainId验证链ID。 - 在启动前规划故障转移、速率限制和重组处理。
常见问题
Base和以太坊一样吗? 不。Base是一个独立的Layer 2网络,结算到以太坊。它使用以太坊工具和ETH作为原生货币,但有自己的链ID和区块浏览器。
Base的链ID是什么? Base主网是8453。Base Sepolia是84532。
我可以在Base上使用以太坊RPC方法吗?
可以。标准EVM JSON-RPC方法如eth_call、eth_getLogs和eth_sendRawTransaction在Base上可用。一些以太坊特定的方法可能不适用。
我需要为Base使用专用节点吗? 仅当您需要归档数据、跟踪调用、自定义配置或特定部署环境时。大多数应用程序使用托管端点即可。
如何在不花费真实ETH的情况下测试Base? 使用Base Sepolia和水龙头。确认您处于链ID 84532,并且水龙头将资金发送到了您的钱包地址。
在哪里可以找到OnFinality的Base端点? 请参阅Base网络页面和Base Sepolia网络页面。有关定价和计划详情,请访问RPC定价。