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

如何查找和配置 BNB Smart Chain 端点?

摘要

BNB Smart Chain(BSC)公开了 JSON-RPC 端点,用于读取区块链数据和发送交易。mainnet 端点是 https://bsc-dataseed.bnbchain.org,chain ID 为 56;testnet 端点使用 chain ID 97。公共端点适合原型开发,但存在速率限制和功能限制。

本指南涵盖链设置、如何使用 eth_chainId 验证端点,以及在生产环境选择公共或托管端点时需要注意的事项。它还解释了何时值得投资专用 BNB Smart Chain 节点。

BNB Smart Chain 端点决策清单

A BNB Smart Chain 端点是你的应用用来向 BSC 节点发送 JSON-RPC 请求的 HTTP 或 WebSocket URL。在做出选择之前,请先过一遍这份清单:

  • Mainnet 还是 testnet? Mainnet 使用 chain ID 56;testnet(Chapel)使用 97。只切换端点而不切换 chain ID 是交易失败的常见原因。
  • 公共端点还是托管端点?https://bsc-dataseed.bnbchain.org 这样的公共端点适合快速测试和本地原型开发。生产环境应用通常需要 托管 RPC,以获得更高的速率限制和更好的诊断能力。
  • 你的工作负载需要日志或归档数据吗? 公共端点通常会禁用或限制 eth_getLogs,并且可能不提供归档数据。如果你构建分析、索引器或区块浏览器,你需要一个支持这些方法和历史数据的端点。
  • 你需要实时更新吗? 使用 WebSocket 端点进行 eth_subscribe,这样你就可以流式接收新区块和待处理交易,而不是轮询。
  • 在确定之前先测试。 对任何计划使用的端点运行 eth_chainIdeth_blockNumber。确认响应与你预期的网络一致。
  • 检查速率限制。 官方公共端点有公开的合理使用限制。对于流量峰值,专用节点 或付费 RPC 计划会更具可预测性。
  • 做好故障规划。 如果某个端点停止响应,你有备选方案吗?考虑使用多个提供商或故障转移设置。
  • 评估成本和支持。 在扩展之前,比较 RPC 定价 的付费层级、归档访问和 WebSocket 支持。

BNB Smart Chain 的链设置

如果你正在配置钱包、SDK 或中间件,请使用以下值:

网络Chain ID货币RPC URL
BNB Smart Chain Mainnet56 (0x38)BNBhttps://bsc-dataseed.bnbchain.org
BNB Smart Chain Testnet (Chapel)97 (0x61)tBNBhttps://data-seed-prebsc-1-s1.bnbchain.org:8545

其他公共端点列在 BNB Chain 官方文档中。端点列表会随着节点的加入或退役而变化,因此在生产环境中依赖它们之前,请先验证这些 URL。

区块浏览器:https://bscscan.com

一些提供商也提供 WebSocket 端点。例如,wss://bsc-rpc.publicnode.com 是一个社区维护的网关。在本文后面,我们将讨论这些选项与 OnFinality 和其他提供商的托管服务之间的取舍。

如何将 BNB Smart Chain 端点添加到钱包

大多数 EVM 钱包允许你添加自定义网络。MetaMask、Rabby 等钱包的操作过程类似:

  1. 打开钱包的 设置网络 菜单。
  2. 选择 添加网络添加自定义网络
  3. 输入以下值:
    • 网络名称:BNB Smart Chain
    • RPC URL:https://bsc-dataseed.bnbchain.org
    • Chain ID:56
    • 货币符号:BNB
    • 区块浏览器 URL:https://bscscan.com
  4. 保存并切换到该网络。

手动添加端点时,请仔细检查 chain ID。许多 BSC 交易失败是因为将 chain ID 设置为 1(Ethereum mainnet)或 5(Goerli)而不是 56。如果你使用提供商的自定义 RPC URL,即使该 URL 属于第三方,chain ID 也必须保持为 56

对于 testnet,请使用 chain ID 97、符号 tBNB 以及位于 https://testnet.bscscan.com 的 testnet 浏览器。如果你需要开发资金,可以从官方水龙头请求测试 BNB。

使用 JSON-RPC 验证端点

获得 URL 后,通过一个简单的 curl 调用来验证它是否可用:

curl -X POST https://bsc-dataseed.bnbchain.org \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

成功的响应会返回 0x38,这是十进制 chain ID 56 的十六进制表示:

{"jsonrpc":"2.0","id":1,"result":"0x38"}

你还可以确认最新区块:

curl -X POST https://bsc-dataseed.bnbchain.org \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

在 JavaScript 应用中,使用 ethers.js 或 viem 进行连接:

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://bsc-dataseed.bnbchain.org");

provider.getNetwork().then((network) => {
  console.log("Chain ID:", Number(network.chainId)); // 56
});

如果 chain ID 不是 56,你很可能指向了错误的端点。如果请求超时,请检查你的网络连接、防火墙规则以及端点的可用性。

公共端点与托管 RPC 服务

BNB Smart Chain 官方端点是 BNB Chain 团队和社区参与者运营的共享基础设施。它们免费且易用,但也存在一些限制:

  • 速率限制: 公共端点由所有开发者和 dApp 共享。官方文档指出,每个端点每 5 分钟的速率限制为 10,000 次请求,大约相当于每秒 33 次请求。这听起来可能很多,直到你的 dApp 开始广播交易和同步历史数据。
  • 功能限制: 一些公共 mainnet 端点为了保护节点性能会禁用 eth_getLogs。如果你依赖日志查询,则需要一个支持这些查询的端点。
  • 可用性: 公共端点可能在拥堵时期或网络升级更改服务器列表时变得不可用。没有你可以依赖的服务级别保证。

托管 RPC 服务运行自己的 BSC 节点集群,并以专用容量提供端点。OnFinality 等提供商同时为 BNB Smart Chain 提供共享的 RPC API 访问和 专用节点。主要优势包括:

  • 更强的 WebSocket 支持,用于实时订阅。
  • 访问归档数据和方法,改善索引和分析工作流。
  • 清晰的 定价 和请求统计,以便你规划增长。
  • 更好的隔离性:你的流量不会与同一公共端点上的其他所有开发者竞争。

对于小型测试脚本,公共端点就可以了。对于生产环境的 dApp,托管端点通常物有所值。

评估生产环境端点:需要检查什么

如果你在公共端点和托管端点之间,或在多个提供商之间做决定,可以使用下表来组织你的评估。

评估标准需要检查什么为什么重要
速率限制每秒钟或每月的文档化请求限制是多少?第一天看起来很大方的限制,可能会在用户激增时限制你的应用。
数据完整性端点是否提供归档状态、eth_getLogs 和 trace 方法?分析、索引器和支持工具依赖这些方法。
WebSocket 支持你能否通过 wss:// 订阅 newHeadslogs实时 dApp 不应轮询;它们需要推送通知。
区域延迟节点托管在哪里?是否跨区域负载均衡?高延迟会使每次读取和交易确认变慢。
故障转移提供商是否提供多个 URL 或自动重试逻辑?单一端点是单点故障。
定价模型请求如何计费?是否有免费层级和超额费用?意外的计费问题可能会破坏应用预算。
支持与运维是否有状态页面、SLA 或直接支持渠道?当端点宕机时,你需要快速响应。

“合适”的端点是符合你工作负载的那个。DeFi 前端、数据索引器和交易机器人对延迟、历史数据和流式传输都有不同的要求。

调试常见的 BNB Smart Chain 端点故障

即使端点正确,开发者也会遇到问题。以下是最常见的问题及其解决方法。

  • 错误的 chain ID。 你的 RPC URL 指向 BSC,但钱包或 SDK 配置的是其他链。请始终在应用代码和钱包配置中将 chainId 设置为 56。对于 testnet,使用 97
  • eth_chainId 返回 0x1 或其他意外值。 你可能正连接到一个 Ethereum 端点或一个重写请求的代理。切换到已知的 BSC 端点并重新运行检查。
  • 429 或“超出限制”错误。 你已达到公共端点的速率限制。添加退避和缓存,或迁移到限制更高的托管端点。
  • 不支持 eth_getLogs 使用 WebSocket 连接订阅日志,或选择支持该方法的 托管提供商
  • 发送交易后找不到区块。 BSC 的区块时间为 3 秒,但你的节点可能需要几秒钟来同步最新区块。再次轮询,并考虑等待几个确认区块后再向用户显示成功。
  • WebSocket 连接断开。 一些社区 WebSocket 端点不如 HTTP 可靠。对于生产环境流式传输,请使用具有专用 WebSocket 基础设施的提供商。

何时使用专用 BNB Smart Chain 节点

专用节点是为你的项目配置的单租户 BNB Smart Chain 节点。它为你提供:

  • 隔离的性能。 你的请求不会与共享流量池竞争。
  • 灵活的 RPC 配置。 你可以启用或禁用特定模块,将区块存储设置为归档模式,并调整同步设置。
  • 更高的请求量。 你可以调整 maxpeers 和其他节点参数以匹配你的工作负载。
  • 隐私。 请求不会被共享公共服务记录。

在以下情况下,专用节点很有用:

  • 你的 dApp 拥有大量用户或高频读写模式。
  • 你运行需要归档数据和重复日志查询的分析管道。
  • 你希望为后端使用私有端点,而不暴露使用模式。

在 OnFinality,你可以在 mainnet 或 testnet 上启动 专用 BNB Smart Chain 节点,如果你更喜欢共享但可扩展的端点,也可以使用 RPC API 服务。有关所有支持网络的概述,请参阅 支持的 RPC 网络

关键要点

  • BNB Smart Chain 的 mainnet 端点是 https://bsc-dataseed.bnbchain.org,chain ID 为 56
  • testnet 端点使用 chain ID 97tBNB 代币。
  • 公共端点适合开发,但存在速率限制,并可能禁用 eth_getLogs
  • 在将端点接入应用之前,始终使用 eth_chainId 进行验证。
  • 生产环境应用应评估速率限制、归档数据、WebSocket 支持、延迟和故障转移。
  • 当你的 dApp 发展到原型阶段之后,托管 RPC API 或专用节点是更具可预测性的选择。

常见问题

官方的 BNB Smart Chain RPC 端点是什么?

官方的 mainnet 端点是 https://bsc-dataseed.bnbchain.org。BNB Chain 团队还运行其他数据种子 URL,例如 bsc-dataseed1.bnbchain.orgbsc-dataseed2.bnbchain.org。有关当前官方列表,请查阅 BNB Chain 文档。

BNB Smart Chain testnet 端点是什么?

BNB Smart Chain testnet(Chapel)使用 chain ID 97,可以通过类似 https://data-seed-prebsc-1-s1.bnbchain.org:8545 的 URL 访问。可通过 BNB Chain 的官方开发者工具获取 testnet 水龙头。

为什么一些公共 BSC 端点会禁用 eth_getLogs

日志查询对节点运营者来说成本很高,因为它们会强制进行大量扫描。公共端点会禁用或严格限制 eth_getLogs,以保持共享基础设施的稳定。托管提供商可以通过适当的索引和缓存来支持该功能。

我应该为 BNB Smart Chain 使用哪个 chain ID?

对于 mainnet 使用 56,对于 testnet 使用 97。在需要十六进制值的代码中,560x38970x61

我可以将 WebSockets 与 BNB Smart Chain 端点一起使用吗?

可以。多个提供商提供 wss:// 端点用于实时订阅。OnFinality 和其他托管 RPC 服务在其 BNB Smart Chain 端点上支持 WebSocket 连接,这对于流式传输新区块和交易日志非常有用。

常见问题

What is the BNB Smart Chain mainnet RPC URL?

The official public endpoint is https://bsc-dataseed.bnbchain.org. OnFinality also provides a public endpoint at https://bnb.api.onfinality.io/public. For production, use a private endpoint from a managed provider.

What is the chain ID for BNB Smart Chain?

Mainnet chain ID is 56 (hex 0x38). Testnet chain ID is 97 (hex 0x61). Always check eth_chainId to confirm the network.

Are public BNB Smart Chain RPC endpoints rate limited?

Yes, the official public endpoints have a rate limit of 10,000 requests per 5 minutes per IP, and eth_getLogs is disabled on some. OnFinality's public endpoint may have different policies; for high-volume apps, use a managed plan.

Can I use Ethereum tools like ethers.js and viem with BNB Smart Chain?

Yes, BNB Smart Chain is EVM-compatible, so standard Ethereum JSON-RPC methods and libraries work. Just change the RPC URL and chain ID.

How do I get a private BNB Smart Chain endpoint?

Sign up for an RPC provider like OnFinality, create a project, and copy your private endpoint from the dashboard. Replace the public URL in your wallet or app and keep the API key secure.

RPC 知识库

相关 RPC 内容

网络 RPCEfinity

Sonic RPC 节点:如何连接 Sonic 主网

Sonic 是一个兼容 EVM 的第 1 层区块链,专为高吞吐量的 DeFi 应用而设计。要与 Sonic 交互,开发者需要一个可靠的 RPC 节点来处理 JSON-RPC 请求、WebSocket 订阅和归档数据查询。 本页介绍如何配置您的钱包或 dApp 以使用 Sonic RPC 端点,RPC...

测试网 RPCSolana

什么是 Solana Devnet,以及如何在开发中使用它?

Solana Devnet 是一个免费的公共测试网络,开发者可以在其中部署程序、测试交易,并模拟主网行为,而无需使用真实的 SOL。它紧密模拟 Solana 运行时,使其成为在主网启动前构建和调试 dApp 的标准环境。 本指南涵盖如何连接 Devnet、从水龙头获取免费 SOL,以及选择可靠的 R...

网络 RPCSonic

关于 Sonic RPC 端点,我需要了解什么?

# 关于 Sonic RPC 端点,我需要了解什么? Sonic RPC 端点之所以重要,是因为 Web3 应用程序依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持你所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时为你提供扩展路径。 对于 Son...

网络 RPCPolkadotAsset Hub

Polkadot Asset Hub 迁移:开发者中继链过渡指南

# Polkadot Asset Hub 迁移:开发者中继链过渡指南 Polkadot Asset Hub 迁移于 2025 年 11 月 4 日执行,将核心面向用户的功能——余额、质押、治理——从中继链迁移到 Asset Hub 系统平行链。这一架构转变减少了中继链的膨胀,实现了更快的升级,并为 ...

RPC 故障排查

What is a nonce in crypto and how does it affect RPC calls?

A nonce is a number used once in cryptographic communications. In crypto, it serves two primary purposes: as a counter in proof-of-work mining (Bitcoi...

RPC 故障排查

区块链交易中的nonce是什么?

区块链nonce是一个用于排序交易、防止重放攻击以及在某些区块生产系统中证明工作量的数字。在以太坊等基于账户的链上,每次账户发送交易时交易nonce都会递增,这使得网络能够按预期顺序处理交易。 如果应用通过RPC端点发送大量交易,nonce处理就成为生产可靠性的组成部分。OnFinality帮助团队...

永远不用担心基础设施

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

开始