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

什么是 Smart Chain RPC URL,以及如何连接到 BNB Smart Chain?

摘要

Smart Chain RPC URL 是你的钱包、dApp 或后端用来读取 BNB Smart Chain 状态并广播交易的 HTTP 或 WebSocket 端点。它承载 JSON-RPC 调用,例如 eth_blockNumber、eth_getBalance 和 eth_sendRawTransaction,并将这些调用发送到与网络同步的节点。

本页面涵盖了钱包配置所需的 BNB Smart Chain 主网和测试网设置,提供了一个可用的 curl 和 JavaScript 示例,并解释了何时公共端点足够,以及何时托管 RPC API 或专用节点更适合生产流量。

当开发者搜索“smart chain RPC URL”时,他们通常指的是 BNB Smart Chain (BSC),并且需要以下三样东西之一:一个粘贴到钱包中的 URL、一个用于 dApp 的链配置块,或者一个用于后端流量的可靠端点。本页面回答了所有这三个问题,然后解释了如何在公共端点和管理基础设施之间做出选择。

链设置一览

BNB Smart Chain 是一个 EVM 兼容网络,因此任何支持以太坊 JSON-RPC 的工具都可以与之配合使用。唯一的区别是端点 URL、链 ID 和原生代币。以下是主网和测试网所需的值。

设置BNB Smart Chain 主网BNB Chain 测试网
链 ID5697
链名称BNB Smart Chain MainnetBNB Smart Chain Testnet
原生货币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

如果你正在配置钱包,请使用主网行。如果你在部署前测试合约,请使用测试网行,并从 BNB Chain 测试网水龙头为你的地址充值。链 ID 是防止钱包针对测试网端点签署主网交易的关键,因此请在配置中将两组值分开。

快速建议:公共端点还是托管 RPC?

大多数读者可以从公共端点开始,然后继续。只有当流量增长或单个请求开始失败时,这个决定才变得有趣。

  • 使用公共 RPC URL 进行钱包设置、一次性脚本、黑客松原型和低容量读取调用。上面的 OnFinality 公共端点适用于此,且无需密钥。
  • 使用托管 RPC API 当你的前端或后端发送稳定流量、需要 WebSocket 订阅,或需要归档和 trace 方法时。托管提供商处理节点升级、同步和故障转移,因此你无需操心。
  • 使用专用节点 当你需要可预测的容量、自定义配置或与其他租户流量隔离时。这在交易所、索引器和高吞吐量机器人中很常见。

如果你不确定自己属于哪一类,RPC 提供商选择指南 更详细地介绍了评估标准。要快速了解 OnFinality 在 BSC 上具体提供什么,请参阅 BNB Smart Chain 网络页面

使用 curl 和 JavaScript 连接

确认端点是否正常工作的最快方法是进行一次 JSON-RPC 调用。这会向节点请求最新的区块号。

curl -X POST https://bnb.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":"0x2a1f3c4"}。结果是十六进制编码的,因此将其转换为十进制以与 BscScan 上的当前区块进行比较。如果数字远落后于浏览器,则说明你正在与仍在同步的节点通信。

在 JavaScript 中,通过库进行相同的调用通常是你的应用会做的:

import { JsonRpcProvider, formatEther } from "ethers";

const provider = new JsonRpcProvider("https://bnb.api.onfinality.io/public");

const blockNumber = await provider.getBlockNumber();
const balance = await provider.getBalance("0xYourAddressHere");

console.log("Block:", blockNumber);
console.log("Balance:", formatEther(balance), "BNB");

对于 newHeadslogs 等 WebSocket 订阅,请将传输方式切换为 wss://,并针对支持它的提供商。BNB Smart Chain 主网在 OnFinality 上支持 HTTP 和 WebSocket,而测试网端点仅支持 HTTP,因此请相应地规划你的订阅代码。

将 BNB Smart Chain 添加到钱包

大多数钱包接受自定义网络表单。字段直接映射到上表:

Network name: BNB Smart Chain
RPC URL:      https://bnb.api.onfinality.io/public
Chain ID:     56
Symbol:       BNB
Explorer:     https://bscscan.com

这里有两个常见错误。首先,在期望数字的字段中输入十进制字符串形式的链 ID,或者在期望十六进制的代码中反之。其次,复制测试网 RPC URL 但将链 ID 保留为 56。如果钱包显示你知道持有 BNB 的地址余额为零,请首先检查链 ID。

常见故障模式及如何解读

当 RPC URL 停止正常工作时,错误通常指向原因。下表将症状映射到可能的修复方法。

症状可能原因尝试方法
429 Too Many Requests公共端点速率限制迁移到托管 RPC API 或专用节点
eth_getLogs 返回部分结果区块范围对于端点来说太宽缩小范围或使用支持归档的提供商
交易卡在待处理状态Nonce 或 gas 价格问题,而非 URL检查 nonce 处理和 gas 设置
method not found该端点未启用该方法与提供商确认 trace/debug 支持
WebSocket 断开连接空闲超时或传输方式不支持重连逻辑,或确认 wss:// 支持
区块号远落后节点仍在同步切换端点或等待同步

请注意,其中只有一些实际上与 URL 有关。卡住的交易或错误的 nonce 是应用程序错误,而不是端点问题。在轮换端点之前,请确认故障出在传输侧。

生产规模下会发生什么变化

公共端点是共享的。这没问题,直到你的流量增长,此时你开始与其他用户竞争相同的容量。症状起初很微妙:偶尔响应缓慢,然后间歇性 429,然后在网络拥塞期间请求失败。

托管 RPC API 通过为你提供一个带有更高限制和支持路径的密钥端点来解决这个问题。专用节点更进一步,为你的工作负载提供自己的节点,当你需要一致的吞吐量、归档数据或共享端点通常限制的 trace 方法时,这一点很重要。

OnFinality 在包括 BNB Smart Chain 在内的多个网络上提供托管 RPC API 访问和专用节点基础设施。你可以查看 RPC 定价 来比较层级,如果你的应用跨越多个链,请查看 支持的 RPC 网络 的完整列表。

迁移检查点

如果你正在从公共端点迁移到托管或专用端点,请完成以下检查点,以确保切换不会破坏任何东西:

  1. 清点你的方法。 列出你的应用调用的每个 JSON-RPC 方法。标记任何 trace、debug 或归档调用,因为这些是最可能需要不同层级的方法。
  2. 检查传输需求。 如果你使用 WebSocket 订阅,请在切换之前确认新端点支持 wss://
  3. 先在测试网上测试。 将暂存环境指向 BNB Chain 测试网端点,并在那里运行集成测试。
  4. 添加故障转移。 配置一个辅助端点,以便单个提供商中断不会导致你的应用宕机。
  5. 切换后监控。 在最初几天跟踪错误率、延迟和区块滞后,并与基线进行比较。

一个简单的监控探针可以及早发现问题:

# 定期运行;如果区块号停止前进则发出警报
curl -s -X POST https://bnb.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

如果间隔一分钟的两次连续检查返回的区块号相同,则端点或其背后的节点可能已停滞。这是一个有用的信号,可以在用户注意到之前进行故障转移。

关键要点

  • Smart Chain RPC URL 是你的钱包或应用通过 JSON-RPC 与 BNB Smart Chain 通信的端点。
  • 主网使用链 ID 56 和 BNB 代币;测试网使用链 ID 97 和 tBNB。
  • OnFinality 公共端点是主网的 https://bnb.api.onfinality.io/public 和测试网的 https://bnb-testnet.api.onfinality.io/public
  • 公共端点适用于钱包和原型;托管 RPC API 和专用节点更适合稳定的生产流量。
  • 许多“RPC 错误”实际上是应用程序错误,例如 nonce 或 gas 问题,因此在轮换端点之前先诊断。
  • 迁移时,清点你的方法,确认传输支持,在测试网上测试,并添加故障转移。

常见问题

Smart Chain RPC URL 与 BSC RPC URL 相同吗?

是的。“Smart Chain”和“BSC”指的是同一个网络,即 BNB Smart Chain。任何标记为 BSC 或 BNB Chain 的端点都可以使用,只要链 ID 匹配。

我应该使用哪个链 ID?

BNB Smart Chain 主网使用 56,BNB Chain 测试网使用 97。混合使用会导致签名和余额错误。

我可以在生产环境中使用公共端点吗?

可以,但公共端点是共享的,在负载下可能会受到速率限制。对于生产应用,托管 RPC API 或专用节点提供更可预测的容量和支持路径。

BNB Smart Chain 支持 WebSocket 吗?

主网在 OnFinality 上支持 HTTP 和 WebSocket。测试网端点仅支持 HTTP,因此请相应地规划订阅。

为什么 eth_getLogs 返回不完整的结果?

大区块范围通常超出共享端点在一次调用中能提供的范围。缩小范围或使用支持归档和宽范围日志查询的提供商。

我在哪里获取测试网 BNB?

在部署或测试合约之前,使用 BNB Chain 测试网水龙头为你的地址充值 tBNB。

后续步骤

如果你正在设置钱包或快速脚本,请从上表中复制主网 URL,就完成了。如果你在 BNB Smart Chain 上运行生产应用,请查看 RPC 定价 以选择层级,如果需要隔离,请查看 专用节点选项,如果你的应用涉及多个链,请浏览 支持的 RPC 网络

RPC 知识库

相关 RPC 内容

网络 RPCBittensor

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

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

网络 RPCpeaq

什么是 peaq 主网 RPC 端点?

peaq 主网是一个基于 Substrate 构建、接入 Polkadot 生态的 EVM 兼容 Layer-1 区块链。其 RPC 允许钱包和应用读取链上数据、提交交易,并使用链 ID 3338 和原生 PEAQ 代币订阅事件。 本文介绍 peaq 主网链设置、JSON-RPC 示例、端点选择以及...

网络 RPCPichiu

How to Connect to Pichiu Network RPC for Oracle Data

Pichiu Network provides decentralized oracle services on Kusama. This article explains how developers can integrate with Pichiu using RPC endpoints, c...

RPC 提供商选择Abstract

什么是 Abstract RPC 提供者,如何评估一个?

Abstract RPC 提供者为你的 dApp 提供指向 Abstract 二层网络的 JSON-RPC 端点,该网络是基于 ZK Stack 构建的零知识 rollup。提供者负责节点操作、负载均衡和 API 访问,让你专注于构建。本文介绍在选择 Abstract RPC 提供者时应注意什么,如...

网络 RPCSolana

什么是 Solana 免费 API,如何使用它?

Solana 免费 API 让开发者无需支付节点基础设施费用即可读写 Solana 区块链。公共端点非常适合原型开发,但通常有速率限制和可靠性问题,可能影响生产应用。本指南介绍免费 Solana API 包含的内容、如何开始使用,以及何时迁移到托管或专用 RPC 提供商。...

网络 RPCArbitrum

Arbitrum 端点:链设置、RPC URL 和调试

本页介绍什么是 Arbitrum 端点、如何连接到 Arbitrum One 和 Arbitrum Sepolia,以及如何在公共 RPC、专用节点和 API 服务之间进行选择。它涵盖了链设置、请求示例和常见故障模式,以便您可以自信地配置您的 dApp 或后端。...

永远不用担心基础设施

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

开始