Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

什么是公共 Base RPC URL,什么时候应该使用它?

摘要

公共 Base RPC URL 是一个共享的、无需注册的 HTTP 端点,让你的应用可以读取 Base 链数据并广播交易。这是将钱包、脚本或原型连接到 Base 的最快方式,但它是共享基础设施,没有可用性承诺,因此最适合开发和轻量流量,而非生产工作负载。

本文解释了 Base 公共端点实际上是什么,如何将其添加到钱包,如何使用 curl 和 viem 调用它,以及何时迁移到托管或专用 RPC 基础设施(如 OnFinality)以获得可预测的生产行为。

公共 Base RPC URL 是一个共享的 HTTP 端点,让任何应用无需运行节点即可读取 Base 链数据并提交交易。你将其粘贴到钱包、脚本或 SDK 中,它就会响应 JSON-RPC 调用,例如 eth_blockNumber、eth_getBalance 和 eth_sendRawTransaction。这是连接到 Base 的最快方式,也是大多数团队最先淘汰的端点。

重要的不是定义,而是了解公共端点擅长处理哪些任务、不擅长哪些任务,以及当你的应用不再是原型时应该切换到什么。本页直接回答这些问题,然后提供连接详情、请求示例和迁移路径。

公共 Base RPC URL 是否适合你的工作负载?

在将任何内容接入你打算发布的代码库之前,请使用此快速分类。

你的情况公共 Base RPC URL应迁移到
将 Base 添加到钱包以检查余额可以无需迁移
本地脚本、笔记本、一次性测试可以无需迁移
黑客松演示或内部原型通常可以任何公开发布前迁移到托管 RPC
在 Base Sepolia 上进行测试网开发适合迭代用于 CI 和预发布的托管测试网 RPC
有真实用户的生产 dApp不推荐托管或专用 RPC
索引器、机器人或高频轮询不推荐专用节点
归档查询或大量 eth_getLogs不推荐支持归档的 RPC

如果你处于前三行,公共端点确实是正确的工具,你可以在连接部分之后停止阅读。如果你处于后四行,本文的其余部分将解释会发生什么变化以及如何规划迁移。

“公共”对 Base 端点实际意味着什么

公共并不意味着没有规则。它意味着该端点是为一般用途而运营的,而不是为你的账户配置的。由此产生三个特性,它们解释了开发者使用公共端点时遇到的几乎所有问题。

它是共享的。 你的请求与其他所有人的请求竞争。吞吐量和延迟随总需求变化,而不是随你的应用需求变化。

没有可用性承诺。 公共端点按原样提供。它可能会限流、限制突发流量或在负载下返回错误。这对于演示是可以接受的,但对于结账流程则有风险。

没有支持途径。 如果请求在凌晨 2 点失败,没有工单,没有与你的账户关联的状态页面,也没有人可以升级处理。你需要自己调试。

这些都不会让公共端点变得糟糕。它只是使其成为一种具有特定范围的特定工具。

Base 链设置一览

这些是你将 Base 或 Base Sepolia 添加到钱包、SDK 或配置文件所需的值。保持链 ID 和原生货币与你目标网络一致,因为混合主网和测试网设置是最常见的设置错误之一。

设置Base 主网Base Sepolia 测试网
链 ID845384532
链名称BaseBase Sepolia Testnet
原生货币ETH(18 位小数)ETH(18 位小数)
区块浏览器https://basescan.orghttps://sepolia.basescan.org
公共 RPC URLhttps://base.api.onfinality.io/publichttps://base-sepolia.api.onfinality.io/public

有关特定网络的详细信息和传输支持,请参阅 Base RPC 页面 和 Base Sepolia RPC 页面。

将 Base 添加到钱包

大多数钱包接受自定义网络。字段直接对应上表:

Network name:  Base
RPC URL:       https://base.api.onfinality.io/public
Chain ID:      8453
Symbol:        ETH
Explorer:      https://basescan.org

对于测试网工作,切换到 Base Sepolia 的值并使用 Sepolia 浏览器。如果钱包报告链 ID 不匹配,你几乎肯定将测试网 RPC URL 与主网链 ID 粘贴在一起,或者相反。

使用 curl 和 viem 调用端点

最简单的健全性检查是原始 JSON-RPC 调用。这将返回当前区块高度:

curl -s https://base.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

成功的响应看起来像 {"jsonrpc":"2.0","id":1,"result":"0x..."}。如果你得到的是 JSON-RPC 错误对象,请先阅读 error.code 和 error.message 字段,然后再假设端点已关闭。

在应用代码中,同一个端点可以插入任何 EVM 客户端。使用 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 block = await client.getBlockNumber()
const balance = await client.getBalance({
  address: '0x0000000000000000000000000000000000000000',
})

console.log({ block, balance })

由于传输层是纯 HTTP URL,你可以稍后通过更改一个字符串将其替换为托管或专用端点。这就是从第一天起将 RPC URL 保留在环境变量中而不是硬编码到多个文件中的主要原因。

公共端点开始失效的地方

公共 Base RPC URL 会以可预测的方式失败。识别症状可以告诉你这是代码错误还是基础设施限制。

症状可能原因初步修复
间歇性 429 响应共享限流减少轮询、批量请求或迁移到托管 RPC
流量高峰期间请求超时共享容量添加带退避的重试,然后迁移出公共端点
eth_getLogs 返回范围错误日志查询限制缩小区块范围或使用支持归档的提供商
交易卡在待处理状态拥堵或 nonce 问题检查 nonce 处理和 gas 设置
本地正常,CI 中失败无重试逻辑,无回退添加第二个端点和重试策略

如果你看到前三行,端点是约束,而不是你的代码。这是规划迁移而不是进一步调整应用的信号。

迁移到托管或专用 RPC 时会发生什么变化

托管 RPC 为你提供一个与你的账户绑定的端点,具有支持途径和不与匿名流量共享的容量。专用节点基础设施更进一步:你获得为你的工作负载配置的节点,这对于索引、高频轮询、归档查询以及任何需要在负载下保持一致行为的情况都很重要。

OnFinality 在包括 Base 在内的多个网络上提供 RPC API 访问和专用节点基础设施。如果你正在评估选项,RPC 定价页面 展示了计划的结构,支持的网络列表 展示了可用的网络。有关结构化的评估方法,请参阅 如何选择 RPC 提供商。

实用的迁移清单:

  1. 如果 RPC URL 尚未在环境变量中,请将其移入。
  2. 添加回退端点和带指数退避的重试策略。
  3. 记录请求延迟和错误率,以便比较前后。
  4. 在切换之前,针对新端点测试归档和日志查询。
  5. 短暂并行运行两个端点,然后切换流量。

在 Base Sepolia 上进行测试网工作

Base Sepolia 在工具方面与主网行为类似,但具有不同的链 ID 和用于 gas 的水龙头。使用测试网端点进行 CI、预发布和合约部署演练,并将其与主网配置分开,这样配置错误的环境变量就不会将测试交易发送到生产环境。

一个有用的模式是按环境键控的单个配置对象:

const RPC = {
  mainnet: 'https://base.api.onfinality.io/public',
  testnet: 'https://base-sepolia.api.onfinality.io/public',
}

const rpcUrl = RPC[process.env.CHAIN_ENV ?? 'testnet']

这样,公共端点作为本地工作的合理默认值,同时使生产端点成为明确的选择。

关键要点

  • 公共 Base RPC URL 是一个共享的 HTTP 端点,用于读取 Base 数据和发送交易,无需注册,也没有可用性承诺。
  • 它是钱包、脚本、原型和测试网迭代的正确选择。
  • 它不适合生产 dApp、索引器、机器人以及大量日志或归档查询。
  • Base 主网使用链 ID 8453;Base Sepolia 使用 84532。将它们放在单独的配置中。
  • 将 RPC URL 保留在环境变量中,这样迁移到托管或专用 RPC 只需更改一行。
  • OnFinality 为 Base 和其他网络提供 RPC API 访问和专用节点基础设施;请参阅 RPC 定价 和 支持的网络。

常见问题

公共 Base RPC URL 是免费的吗? 它无需账户即可用于一般用途,这就是它便于开发的原因。它是共享基础设施,因此不适用于生产流量或需要一致容量的工作负载。

Base 链 ID 是什么? Base 主网使用链 ID 8453。Base Sepolia 测试网使用链 ID 84532。将错误的链 ID 与给定的 RPC URL 一起使用是钱包连接错误的常见原因。

我可以在生产中使用公共 Base RPC URL 吗? 可以,但你不应依赖它。共享端点在负载下可能会限流或节流,如果出现问题也没有支持途径。生产应用通常会迁移到托管或专用 RPC。

为什么 eth_getLogs 在公共端点上失败? 日志查询开销很大。公共端点通常限制单次调用中可以查询的区块范围。缩小范围或使用支持归档和宽范围日志查询的提供商。

如何从公共端点切换到托管端点? 更改配置中的 RPC URL。如果你将其保留在环境变量中并添加了重试逻辑,迁移就是配置更改而不是代码更改。

OnFinality 支持 Base 吗? 是的。OnFinality 为 Base 和 Base Sepolia 以及许多其他网络提供 RPC API 访问和专用节点基础设施。有关详细信息,请参阅 Base 网络页面。

RPC 知识库

相关 RPC 内容

网络 RPCIntegritee

现在在哪里可以找到Integritee RPC端点?

Integritee是一个基于Polkadot SDK的隐私网络,曾使用可信执行环境处理敏感数据。该项目于2025年11月11日宣布网络关闭,因此公共RPC端点可能不再维护,开发者在依赖它们之前应验证网络状态。 本文涵盖Integritee的链设置、标准Substrate JSON-RPC调用,以及...

网络 RPCBNB Chain

BNB智能链RPC端点:链设置、配置与调试

了解如何使用正确的RPC端点、链设置和JSON-RPC方法连接到BNB智能链(BSC)。本参考涵盖公共端点与托管端点、常见故障模式,以及如何为生产工作负载选择基础设施。...

网络 RPCBNB Chain

What is the BNB RPC name and how do you configure it?

The BNB RPC name is the network label and chain identifier your wallet or library uses to connect to BNB Smart Chain. In practice this means the chain...

网络 RPCEfinity

什么是 Solana 专用节点,何时应该使用?

Solana 专用节点是一个单租户 RPC 端点,为您的应用程序提供对 Solana 节点的独占访问,避免共享基础设施的速率限制和嘈杂邻居效应。它非常适合需要一致性能的高吞吐量交易机器人、数据分析和生产级 dApp。本文解释了专用节点与共享节点和自托管节点的区别,并提供了实用的决策指南,帮助您为工作...

测试网 RPCSolana

如何连接到 Solana Devnet RPC 端点

Solana Devnet 是一个测试网,供开发者在不冒真实资金风险的情况下构建和测试 Solana 程序。本页说明如何连接到 Solana Devnet RPC 端点、从水龙头获取 SOL,以及调试常见问题。它还涵盖了如何为你的 devnet 测试选择公共或专用 RPC 基础设施。...

网络 RPCSolana

你能推荐一些可以无缝集成 Solana 质押的 API 吗?

Solana 质押集成不是单个 API 调用。你需要结合 RPC 访问来读取质押账户和提交交易、质押程序接口(原生质押或流动性质押协议)以及钱包或签名器层。RPC 端点是基础,因为每个质押、委托、停用和提取操作都是 Solana 交易,必须通过 RPC 节点构建、模拟和确认。 本文梳理了你实际需要的...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始