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

BNB RPC 列表:你的应用应该连接哪些端点?

摘要

只有当你清楚哪种端点类型适合你的工作负载时,BNB RPC 列表才有用。本页将 BNB Smart Chain 端点分为公共、托管和专用三类,然后展示在将任何内容接入生产环境之前所需的链设置、请求格式和故障模式。

你将获得精确的主网和测试网连接详情、一个 curl 和 viem 示例,以及一条简短的评估路径,用于判断何时共享端点足够,何时专用 BNB 节点更合适。

BNB RPC 列表只是一个起点,而不是决策。你选择的端点决定了你的速率限制、是否可以查询历史状态、WebSocket 订阅是否保持打开,以及有多少工程时间花在重试上而不是产品工作上。

本页为你提供 BNB Smart Chain 主网和测试网的具体连接详情,然后介绍如何在公共端点、托管 RPC API 和专用节点之间进行选择。如果你已经知道自己想要托管或专用的 BNB 端点,请从 BNB Chain RPC 开始。

在复制 URL 之前选择你的端点类型

大多数搜索 BNB RPC 列表的开发者都在试图解决以下四种情况之一。将你的情况与下表匹配,然后直接转到该部分。

你的情况通常适合的端点类型需要注意什么
钱包配置、黑客松演示、一次性脚本公共端点共享容量,无 SLA,负载下预期会被限流
具有稳定读取流量的生产 dApp托管 RPC API按方法限制、归档可用性、故障转移
索引器、分析或回填任务具有归档访问权限的托管 RPCeth_getLogs 区块范围、历史状态深度
交易机器人、MEV 相关或高频写入专用节点一致的吞吐量、私有内存池路径、WebSocket 稳定性

如果你属于第一行,下面的公共端点就足够了。如果你属于第二到第四行,本页的其余部分将解释在你做出承诺之前需要验证什么。

BNB Smart Chain 连接设置

这些是你的钱包、SDK 或基础设施配置所需的值。链 ID 不匹配是“交易失败”报告中最常见的原因,这些报告最终被证明是网络配置问题而非合约问题。

设置主网测试网
链名称BNB Smart Chain MainnetBNB Smart Chain Testnet
链 ID5697
原生货币BNB(18 位小数)tBNB(18 位小数)
区块浏览器https://bscscan.comhttps://testnet.bscscan.com
OnFinality 公共 RPChttps://bnb.api.onfinality.io/publichttps://bnb-testnet.api.onfinality.io/public
传输HTTP, WebSocketHTTP

主网通过 OnFinality 支持 HTTP 和 WebSocket 传输。测试网仅支持 HTTP,如果你正在构建基于订阅的功能并首先针对测试网进行测试,这一点很重要。

钱包网络配置条目如下所示:

{
  "chainId": "0x38",
  "chainName": "BNB Smart Chain Mainnet",
  "nativeCurrency": { "name": "BNB", "symbol": "BNB", "decimals": 18 },
  "rpcUrls": ["https://bnb.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://bscscan.com"]
}

注意 0x38 是十六进制的 56。如果十六进制和十进制值与您指向的端点不一致,钱包将拒绝连接。

公共端点、托管 RPC 和专用节点

BNB RPC 列表通常将三种截然不同的产品混在一个标题下。它们不可互换,权衡是运营层面的,而非纯粹技术层面的。

公共端点是共享的、未经身份验证的且方便的。它们适用于开发、钱包设置和低容量读取。它们不适合作为生产应用背后的唯一端点,因为你无法控制在任何时刻获得多少共享容量。

托管 RPC API 为你提供一个经过身份验证的端点,具有定义的方法支持、归档访问选项和支持路径。这是 dApp、机器人和后端服务的常见生产选择,这些服务需要可预测的行为而无需运行基础设施。OnFinality 的 RPC API 服务 属于这一类,BNB Chain 与其他 支持的 RPC 网络 一起可用。

专用节点为你提供不与其他客户共享的容量。当你的工作负载突发性强以至于共享限制无法吸收时,当你需要一致的 WebSocket 行为时,或者当你想要一条用于交易提交的私有路径时,这一点很重要。有关如何配置,请参阅 专用节点。

选项最适合主要限制
OnFinality 公共端点开发、演示、钱包配置共享容量,无承诺
OnFinality 托管 RPC API生产 dApp、后端按计划的方法和速率限制
OnFinality 专用节点高吞吐量、延迟敏感的应用成本更高,需要容量规划
自托管 BNB 节点完全控制、自定义索引同步时间、磁盘、持续的运维负担

在承诺使用端点之前需要验证什么

复制 URL 只需几秒钟。验证它需要几分钟,但可以节省数天。针对你正在考虑的任何 BNB 端点(包括我们的)运行此列表。

  • 方法覆盖。 确认端点支持你实际调用的方法。eth_call、eth_getLogs、eth_getTransactionReceipt 和 eth_blockNumber 是基本要求。Trace 和 debug 方法并非普遍可用。
  • 归档深度。 如果你查询旧区块的状态,则需要归档访问权限。非归档节点对历史查询返回错误或空结果。
  • eth_getLogs 范围限制。 大区块范围上的日志查询是 BNB Chain 上最常见的超时来源。询问每次请求支持的范围。
  • WebSocket 行为。 如果你订阅 newHeads 或 logs,请确认端点保持连接打开以及如何处理空闲超时。
  • 故障转移方案。 单个端点就是单点故障。了解它降级时会发生什么。
  • 速率限制和突发行为。 了解持续限制以及是否吸收短时突发。

你现在可以运行的请求示例

从基本的健康检查开始。这确认端点可达并返回当前区块高度。

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

成功的响应返回一个十六进制区块号。如果你得到的是 JSON-RPC 错误对象,则端点可达但拒绝了请求,这通常指向方法或参数问题而非连接问题。

对于应用程序代码,viem 是一个常见选择:

import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: http('https://bnb.api.onfinality.io/public')
});

const block = await client.getBlockNumber();
console.log('BNB Chain head:', block);

对于主网上通过 WebSocket 的日志订阅:

import WebSocket from 'ws';

const ws = new WebSocket('wss://bnb.api.onfinality.io/public/ws');

ws.on('open', () => {
  ws.send(JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'eth_subscribe',
    params: ['newHeads']
  }));
});

ws.on('message', (data) => console.log(JSON.parse(data.toString())));

如果你的 WebSocket 连接反复断开,这是一个信号,表明应该考虑专用容量而不是重试逻辑。

故障模式及其通常含义

大多数 BNB RPC 问题都属于少数几类。症状告诉你该往哪里看。

症状可能原因下一步
429 响应超出速率限制降低请求速率或升级到更高层级
eth_getLogs 超时区块范围太大将范围拆分为更小的窗口
旧区块返回空结果无归档访问权限使用启用归档的端点
nonce too lownonce 过时或交易竞争重新提交前重新读取待处理 nonce
WebSocket 空闲后关闭空闲超时策略添加 keepalive 或使用专用节点
钱包中链 ID 不匹配网络配置错误验证链 ID 56 与 97

与 nonce 相关的错误在 BNB Chain 上非常常见,值得单独处理。如果你反复看到 nonce too low 或 nonce is already consumed 错误,问题通常是交易管理而非端点本身。

在生产环境中运行 BNB Chain

一旦你超越单个端点,运营问题就会改变。你不再问“哪个 URL 有效”,而是问“当这个 URL 无效时会发生什么”。

一个实用的设置使用主托管端点,辅以用于故障转移的辅助端点,以及监控错误率而不仅仅是可用性的监控。一个检查区块高度进展的简单探针比 ping 检查能捕获更多真实事件:

#!/usr/bin/env bash
HEAD=$(curl -s https://bnb.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' \
  | grep -o '"result":"[^"]*"')
echo "BNB head: $HEAD"

如果头部停止前进,即使端点仍然返回 HTTP 200,它也已经降级。跟踪这一点,你就能在用户之前发现问题。

对于不想自己拥有这些的团队,OnFinality 为 BNB Chain 提供托管 RPC 和专用节点选项。容量和计划详情在 RPC 定价 页面上,网络特定详情在 BNB Chain RPC 上。

关键要点

  • BNB Smart Chain 主网使用链 ID 56,测试网使用链 ID 97。搞错这一点会在任何合约调用运行之前破坏钱包连接。
  • BNB RPC 列表混合了公共、托管和专用端点。它们解决不同的问题,不可互换。
  • 公共端点适用于开发和钱包设置。生产应用需要定义的方法支持、相关的归档访问以及故障转移计划。
  • eth_getLogs 范围限制和 WebSocket 空闲超时是 BNB Chain 上最常见的两个运营意外。
  • 监控区块高度进展,而不仅仅是 HTTP 状态。一个可达但已停止同步的端点仍然是故障。
  • 如果你的工作负载是突发性的或延迟敏感的,请评估 专用节点,而不是试图通过重试来吸收限制。

常见问题

什么是 BNB Smart Chain RPC 端点? OnFinality 的公共主网端点是 https://bnb.api.onfinality.io/public,主网支持 WebSocket。测试网使用 https://bnb-testnet.api.onfinality.io/public。对于生产工作负载,托管或专用端点通常是更好的选择。

BNB Chain 的链 ID 是什么? 主网是 56(0x38),测试网是 97(0x61)。钱包和 SDK 需要为你连接的网络使用正确的值。

我可以在生产环境中使用公共 BNB RPC 端点吗? 可以,但共享容量意味着你的吞吐量取决于任何给定时刻的其他用户。一旦流量变得可预测,大多数生产团队会转向托管 RPC API 或专用节点。

为什么 eth_getLogs 在 BNB Chain 上超时? BNB Chain 出块速度快,因此一个宽泛的区块范围可能包含大量日志。将查询拆分为更小的范围,并使用具有适当限制的端点,可以解决大多数此类超时。

我需要为 BNB Chain 使用归档节点吗? 仅当你查询旧区块的历史状态或日志时才需要。标准节点提供最近状态;归档访问是一项单独的能力,在依赖它之前应确认。

如何在 BNB RPC 端点之间进行故障转移? 在客户端配置主端点和辅助端点,并在重复错误或区块高度停滞时触发故障转移,而不是在单个请求失败时。监控区块进展比仅检查 HTTP 状态更可靠。

RPC 知识库

相关 RPC 内容

RPC 提供商选择BNB Chain

如何为高吞吐量工作负载扩展 BNB Chain RPC

为了扩展 BNB Smart Chain (BSC) RPC 以应对高吞吐量工作负载,不要将每秒请求数视为唯一指标。一个快速执行 eth_call 和 eth_getTransactionReceipt 循环的交易机器人、一个使用 eth_getLogs 扫描大区块范围的分析索引器,以及一个广播交易...

网络 RPCMonad

peaq 主网何时上线,这对你的 2025 年构建意味着什么?

peaq 主网于 2024 年上线,将专注于 DePIN 的 Layer 1 从测试网实验转变为生产网络,机器、车辆和物联网设备可以在链上注册身份并结算价值。如果你现在正在 peaq 上构建,上线日期不如它引发的运营问题重要:随着设备流量增长,哪个 RPC 端点和节点设置能让你的 DePIN 应用保...

网络 RPCComposable Finance

Composable RPC:端点、专用节点和集成指南

Composable Finance 是一个跨链 DeFi 基础设施项目,可在以太坊、Polkadot、Kusama、Cosmos 和 NEAR 等生态系统中实现无需信任的互操作性。本指南涵盖 Composable RPC 端点、如何连接到网络,以及何时从公共端点迁移到专用节点以用于生产工作负载。...

网络 RPCAstar

如何读取 Astar Network TVL 并连接到数据?

Astar Network TVL 衡量的是 Astar 和 Soneium 对齐生态中 DeFi 合约的总锁定价值,通常从索引器或分析仪表板读取,而不是从单个链上数字读取。需要实时 TVL、合约余额或事件历史的开发者通过 RPC 端点查询 Astar,然后自行聚合结果。 本页解释了 Astar T...

网络 RPCSolana

如何使用 Solana 浏览器 API 检查交易和账户?

Solana 浏览器 API 是驱动区块浏览器的 JSON-RPC 接口,允许开发者查询交易、账户和区块。本文解释了如何将其用于调试和分析,以及如何为生产工作负载选择可靠的 RPC 提供商。...

RPC 提供商选择Arbitrum

如何为生产环境选择最佳的 Arbitrum RPC 服务

为 Arbitrum 选择正确的 RPC 服务对于 DeFi 应用、交易机器人和分析平台至关重要。本文涵盖关键评估标准:存档节点访问、追踪/调试 API 支持、定价模型、延迟一致性和故障转移选项。了解在确定提供商之前需要检查的内容。...

永远不用担心基础设施

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

开始