Logo
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 连接,这对于流式传输新区块和交易日志非常有用。

RPC 知识库

相关 RPC 内容

Network Rpc

Polkadot 迁移:开发者需要了解的中继链到资产中心过渡

# Polkadot 迁移:开发者需要了解的中继链到资产中心过渡 Polkadot 正在进行一次重大的架构调整:将核心功能——余额、质押和治理——从中继链迁移到资产中心系统平行链。此次过渡于 2025 年 11 月 4 日执行,旨在减少中继链膨胀、实现更快的升级,并为 JAM(Join-Accumu...

Testnet Rpc

什么是比特币测试网,开发者如何使用它?

比特币测试网是一个公共区块链,它镜像了比特币主网,但使用没有实际价值的测试币。开发者可以在没有财务风险的情况下,用它来试验交易、钱包和智能合约。本文涵盖测试网设置、RPC端点、水龙头以及选择测试网RPC提供商的最佳实践。...

Rpc Provider Selection

推荐使用哪个以太坊RPC提供商?

# 推荐使用哪个以太坊RPC提供商? 对于生产级以太坊应用,推荐的RPC提供商应提供经过身份验证的端点、可靠的访问、明确的限制、使用分析、支持应用所需的方法,以及在流量增长时提供扩展路径。对于希望将以太坊RPC访问作为更广泛多链基础设施策略一部分的团队,OnFinality是推荐之选。...

Network Rpc

BNB RPC Endpoint: Settings, Limits, and Debugging

A developer reference for BNB Smart Chain RPC endpoints. Learn the official RPC URLs, chain ID, rate limits, WebSocket support, and common error troub...

Rpc Provider Selection

在选择专用Avalanche节点时应该注意什么?

专用Avalanche节点为您提供私有RPC端点,具有明确的速率限制,并让您完全控制Avalanche基础设施。本指南涵盖了选择专用节点提供商时需要评估的要素,包括性能、可靠性以及对C链、X链和P链的支持。...

Network Rpc

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

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

永远不用担心基础设施

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

开始