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

BNB Smart Chain 公共 RPC URL:如何连接以及何时应该切换?

摘要

BNB Smart Chain 公共 RPC URL 是一个共享的 HTTPS 端点,允许钱包、脚本和 dApp 读取链上数据并提交交易,而无需运行节点。OnFinality 为 BNB Smart Chain 主网提供的公共端点是 https://bnb.api.onfinality.io/public,链 ID 为 56,原生代币为 BNB。

公共端点适用于原型设计、钱包设置和低流量读取。对于生产流量、归档查询或 WebSocket 订阅,团队通常会转向托管 RPC API 或专用节点,以便控制容量并避免共享端点的争用。

链设置一览

如果你只需要从本页获取一件事,那就是连接详情。BNB Smart Chain 主网使用链 ID 56,原生代币 BNB(18 位小数),区块浏览器为 https://bscscan.com。OnFinality 发布了一个公共 HTTPS 端点,你可以直接将其放入钱包或脚本中:

设置值
网络BNB Smart Chain 主网
链 ID56
原生代币BNB(18 位小数)
公共 RPC URLhttps://bnb.api.onfinality.io/public
传输HTTP 和 WebSocket
区块浏览器https://bscscan.com
测试网链 ID97(tBNB)

这个单一的 URL 足以读取余额、调用 eth_call、估算 gas 并广播已签名的交易。但它不是容量保证。公共端点是共享的,因此应将其视为起点,而不是生产系统的骨干。

何时适合使用公共端点

在将 URL 复制到配置文件之前,请确定你属于以下三种情况中的哪一种。

原型设计和本地开发。 你正在搭建 dApp、测试合约或检查余额。公共端点消除了同步节点的需要,而在 BNB Smart Chain 上,同步节点需要大量下载和持续的运营成本。使用它,快速推进,不要过度设计。

钱包和手动网络设置。 你正在将 BNB Smart Chain 添加到钱包或只需要偶尔读取的工具中。公共 RPC 在这里是合理的默认选择,上面的链 ID 和浏览器 URL 是大多数钱包所要求的。

生产流量、索引或交易。 你正在运行轮询区块的后端、回填历史的索引器、需要低延迟写入的机器人,或具有支持承诺的服务。此时,共享公共容量成为一种负担:你无法查看自己的使用情况,无法提高自己的限制,并且嘈杂的邻居会影响你。这时,托管 RPC API 或专用节点开始物有所值。如果你正在权衡这一步,RPC 提供商选择指南 介绍了相关标准,RPC 定价 展示了各层的结构。

一个有用的规则:如果你不好意思向用户解释请求失败的原因,那么你已经超出了公共端点的适用范围。

将 BNB Smart Chain 添加到钱包

大多数钱包接受自定义网络。字段直接映射到上面的表格。在 MetaMask 风格的 JSON 中,网络配置如下所示:

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

注意 0x38 是十六进制的 56。钱包期望十六进制形式;JSON-RPC 和大多数 SDK 期望十进制形式。混淆两者是最常见的设置错误之一。

对于测试网工作,同样的模式适用于链 ID 97、tBNB 代币、浏览器 https://testnet.bscscan.com 和测试网端点。请参阅 BNB Chain 测试网 RPC 页面 获取当前测试网 URL。

从代码调用端点

最快的健全性检查是原始 JSON-RPC 调用。以下请求当前区块号:

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

返回带有十六进制 result 的响应意味着端点可达且正在服务。如果收到错误对象,请先检查方法名和参数,然后再假设端点已关闭。

在 JavaScript 应用中,你很少手动调用 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 Smart Chain head:', block)

同一个端点也适用于 ethers、web3.js 和大多数 EVM 工具,因为 BNB Smart Chain 兼容 EVM。这种兼容性也是该链具有吸引力的原因:现有的以太坊合约和库通常只需极少的更改即可移植。

读取日志、归档数据和订阅

三种工作负载类型在公共端点上的行为不同,在决定使用之前值得了解。

eth_getLogs 和事件索引。 日志查询是最重的常见请求。在共享端点上,具有许多匹配事件的宽区块范围可能会很慢或被拒绝。如果你正在索引,请缩小范围、分页,并预期需要能够承受持续日志查询的提供商层级或专用节点。

归档和历史状态。 在旧区块读取状态需要归档节点。并非每个端点都保留完整历史。如果你的应用需要历史余额或回填,请在基于端点构建之前确认归档支持。OnFinality 的 BNB Smart Chain 页面 是检查当前功能的地方。

WebSocket 订阅。 公共 HTTP 端点是请求/响应模式。如果你需要 eth_subscribe 来获取新区块头或待处理交易,则需要 WebSocket 传输。OnFinality 为 BNB Smart Chain 支持 HTTP 和 WebSocket,但订阅量正是那种受益于托管或专用设置而非共享公共 URL 的工作负载。

故障模式及如何解读

当请求失败时,错误通常指向原因。下表将症状映射到可能的修复方法。

症状可能原因下一步
429 或速率限制错误共享端点负载过高退避、缓存读取,或迁移到托管层级
eth_getLogs 超时区块范围太宽分页范围并重试
method not found该端点不支持该方法检查方法支持或使用暴露该方法的提供商
nonce too lownonce 过期或重复发送使用 pending 重新读取 eth_getTransactionCount
订阅连接断开对 eth_subscribe 使用了 HTTP切换到 WebSocket 传输
链错误/余额错误链 ID 不匹配确认链 ID 56(主网)或 97(测试网)

大多数这些问题是配置或工作负载形态问题,而不是端点中断。在归咎于 URL 之前,先诊断请求。

从公共 URL 到生产 RPC

过渡与其说是一个单一时刻,不如说是一种模式。你从公共端点开始,注意到读取被缓存、写入被重试,最终你希望获得可见性和余量。此时你有两个主要选择。

托管 RPC API 为你提供一个带密钥的端点,具有你自己的使用情况,通常跨多个链,是需要可靠性而无需运行服务器的应用的常见下一步。专用节点 为对争用敏感的工作负载提供隔离容量,例如高频交易、重度索引或严格的数据驻留需求。两者都涵盖在 OnFinality 的 API 服务 和 专用节点 产品中,完整的链列表在 支持的 RPC 网络 页面上。

实用的迁移路径:

  1. 保留公共端点用于本地开发和 CI。
  2. 将预发布和生产读取迁移到带密钥的托管端点。
  3. 添加备用提供商或第二个区域,使单个端点不会成为单点故障。
  4. 将最重的工作负载(通常是索引或交易)迁移到专用节点。
  5. 添加对错误率和延迟的监控,以便在用户之前注意到性能下降。

关键要点

  • BNB Smart Chain 主网使用链 ID 56、代币 BNB、浏览器 https://bscscan.com。
  • OnFinality 公共端点是 https://bnb.api.onfinality.io/public,支持 HTTP 和 WebSocket。
  • 公共端点非常适合原型设计、钱包设置和轻量读取,但它们是共享容量。
  • 繁重的 eth_getLogs、归档读取和订阅是推动团队转向托管或专用 RPC 的工作负载。
  • 测试网使用链 ID 97 和 tBNB;保持主网和测试网配置分开。
  • 大多数故障是配置或工作负载形态问题,而不是端点停机。

常见问题

BNB Smart Chain 公共 RPC URL 可以免费使用吗? 它是一个共享的公共端点,旨在用于开发和轻量使用。对于生产流量,托管或专用计划可为你提供自己的容量和可见性。

BNB Smart Chain 的链 ID 是什么? 主网是 56(十六进制 0x38)。测试网是 97。

我可以使用公共端点进行 WebSocket 订阅吗? OnFinality 为 BNB Smart Chain 支持 HTTP 和 WebSocket,但持续的订阅工作负载更适合托管或专用设置。

为什么我的 eth_getLogs 调用超时? 区块范围通常对共享端点来说太宽。分页范围并重试,或将索引迁移到能够处理持续日志查询的提供商层级。

我需要归档节点吗? 仅当你需要在旧区块读取历史状态时。在基于端点构建回填之前,请在 BNB Smart Chain 页面 上确认归档支持。

如何从公共 RPC 迁移到生产环境? 从用于预发布和生产的带密钥托管端点开始,添加备用,然后将最重的工作负载迁移到专用节点。有关层级信息,请参阅 RPC 定价。

RPC 知识库

相关 RPC 内容

测试网 RPCTON

什么是 TON 测试网 RPC?如何使用它?

TON 测试网 RPC 端点允许你与 TON 测试网交互,这是一个用于构建和测试 dApp、钱包和智能合约的沙盒环境,无需承担真实 TON 的风险。本文解释了可用的端点、如何认证,以及如何为你的开发工作流选择可靠的提供商。...

网络 RPCBittensor

什么是 Bittensor RPC,如何连接?

# 什么是 Bittensor RPC,如何连接? Bittensor 是一个去中心化的人工智能网络,构建在基于 Substrate 的第一层链(Subtensor)之上,并可选配 Frontier EVM 运行时。要与网络交互——无论是查询子网状态、提交推理请求,还是部署智能合约——你都需要一个 ...

网络 RPCComposable Finance

Composable Finance 加密货币:它是什么,如何在其上构建跨链 DeFi?

Composable Finance 是一个基于 Polkadot 的网络,专注于跨链 DeFi,使开发者能够构建与多个区块链交互的应用程序。本文解释了核心概念、其 RPC 基础设施的作用,以及如何开始开发,包括端点配置和实际考虑。...

区块链基础设施Efinity

运行 Optimism 节点有哪些要求?

运行 Optimism 节点意味着同时运行 OP Stack 执行客户端(op-geth)和 op-node——从以太坊 L1 推导 L2 状态的 rollup 共识客户端。全节点的硬件需求适中,但归档模式、高请求量和历史日志查询会迅速推高存储和 I/O 要求。 本页涵盖 CPU、RAM、磁盘和带宽...

网络 RPCSolana

什么是 Solana 的 RPC?如何选择合适的端点?

Solana RPC 端点让您的 dApp 读取链上状态、提交交易并订阅实时更新。本指南解释 Solana RPC 如何工作、如何连接公共和专用端点,以及在生产环境选择基础设施时应评估哪些因素。...

网络 RPCBittensor

什么是 Bittensor 网络,如何连接它?

Bittensor 是一个去中心化的机器智能网络,其中独立的子网生产数字商品,如计算、推理和存储,贡献者赚取 TAO。本文解释了网络的架构、如何通过 RPC 端点连接,以及在 Bittensor 上构建时选择基础设施的注意事项。...

永远不用担心基础设施

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

开始