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");

对于 newHeads 或 logs 等 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 内容

网络 RPCpeaq

peaq RPC 端点:链设置、水龙头和调试

peaq 是基于 Polkadot 的 Layer-1 区块链,专为去中心化物理基础设施网络(DePIN)和机器经济而设计。要与 peaq 网络交互,开发者需要可靠的 RPC 端点来读取链上数据、提交交易和监控机器身份。本文涵盖基本的链设置、如何评估 RPC 提供商、常见调试技巧以及生产部署的推荐后...

测试网 RPCPolygon

Polygon Amoy 测试网:RPC 端点、水龙头和部署的完整开发者指南

# Polygon Amoy 测试网:RPC 端点、水龙头和部署的完整开发者指南 Polygon Amoy 是 Polygon PoS 的官方测试网,于 2024 年 1 月作为 Mumbai 的继任者启动。Amoy 锚定到 Ethereum Sepolia,为开发者提供了一个可持续、面向未来的环境...

网络 RPCBNB Chain

选择BNB Chain RPC提供商时应注意什么?

# 选择BNB Chain RPC提供商时应注意什么? 最佳的BNB Chain RPC提供商能为生产级dApp提供可靠的BNB RPC访问、清晰的请求限制、高可用性、实用的分析功能、测试网支持,以及在共享端点无法满足工作负载时提供专用BNB节点的路径。 BNB Chain被DeFi应用、交易所、钱...

RPC 提供商选择Sui

Sui gRPC 提供商:公共、托管与专用 RPC 对比

Sui gRPC 提供商为应用提供了通往 Sui 数据的类型化、流式路径,但访问模式差异显著。公共 Foundation gRPC 端点可能适合原型和低流量工具;在依赖它们之前,请评估当前的限制、支持和生产条款。托管 gRPC 提供商运营共享端点,具备文档化的容量、监控和支持,使其成为 dApp、索...

网络 RPCPhala

Phala RPC 端点:链设置、连接指南和开发者资源

Phala Network 是一个 Polkadot 平行链,利用可信执行环境(TEE)提供机密智能合约。要与 Phala 交互,开发者需要可靠的 RPC 端点来读取链上数据、提交交易和部署 Phat Contracts。本文涵盖 Phala RPC 链设置、如何连接以及选择 RPC 提供商时的注意...

网络 RPCMonad

Polygon 主网 RPC:链设置、端点与连接检查

Polygon 主网是采用权益证明(PoS)机制、兼容 EVM 的区块链,链 ID 为 137。如果你搜索了“polygon mainnet”,很可能你需要将钱包、dApp 或后端服务连接到它,并希望获得正确的链设置和可用的 RPC 端点,而无需猜测。 本页首先提供链设置,然后是一个可以立即测试的公...

永远不用担心基础设施

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

开始