摘要
BNBChain 列表是对 BNB Chain 生态系统的引用,其中包括作为 EVM 兼容执行层的 BNB Smart Chain (BSC) 以及围绕它构建的一组应用侧链和 Layer 2 网络。开发者使用此列表在连接钱包、索引器或后端服务之前查找链 ID、RPC 端点、浏览器和桥接详情。
本页解释了如何阅读该列表,如何连接到 BNB Smart Chain 及其测试网,以及如何为生产工作负载在公共端点和专用节点基础设施之间做出选择。
BNBChain 列表是开发者常用的一种方式,用来指代构成 BNB Chain 生态系统的网络、链 ID 和 RPC 端点的集合。其核心是 BNB Smart Chain (BSC),一条 EVM 兼容链,运行 BNB Chain 原生代币 (BNB) 并承载大多数 DeFi、NFT 和游戏活动。围绕它的是应用侧链、Layer 2 网络和测试网,它们共享工具、桥接,有时还与 BSC 共享验证者。
如果你搜索了 BNBChain 列表,你可能需要以下三件事之一:用于钱包或后端的正确链 ID 和 RPC URL,一种判断哪些侧链值得支持的方法,或者用于生产流量的可靠端点。本页首先提供实用参考,然后解释如何连接以及何时从公共端点迁移。
决策指南:公共端点、托管 RPC 还是专用节点
在将端点复制到配置之前,请确定你正在运行的工作负载类型。正确的选择取决于请求量、是否需要归档数据或 WebSocket 订阅,以及你的应用可以容忍多少停机时间。
| 工作负载 | 典型适用场景 | 需要注意什么 |
|---|---|---|
| 本地开发、脚本、一次性读取 | 公共 RPC 端点 | 速率限制、共享容量、无 SLA |
| 具有稳定流量的钱包或 dApp 前端 | 带 API 密钥的托管 RPC API | 每方法限制、WebSocket 支持、故障转移 |
| 索引器、机器人或后端扫描日志 | 专用节点或高容量 RPC 计划 | eth_getLogs 成本、归档深度、突发余量 |
| 交易所、桥接或托管服务 | 专用节点加冗余提供商 | 正常运行时间预期、监控、事件处理流程 |
OnFinality 为 BNB Chain 提供 RPC API 服务和专用节点基础设施。你可以从共享端点开始,当请求模式超出其能力时迁移到专用节点。有关计划形态,请参阅 RPC 定价;有关链的完整列表,请参阅 支持的 RPC 网络。
BNB Smart Chain 设置一览
BNB Smart Chain 主网是大多数开发者提到“BSC”时所指的链。在钱包、Hardhat、Foundry、ethers、viem 或任何 JSON-RPC 客户端中使用这些值。
| 设置 | 值 |
|---|---|
| 链名称 | BNB Smart Chain Mainnet |
| 链 ID | 56 |
| 原生货币 | BNB (18 位小数) |
| 区块浏览器 | https://bscscan.com |
| 传输 | HTTP 和 WebSocket |
| OnFinality 公共端点 | https://bnb.api.onfinality.io/public |
测试网使用链 ID 97、tBNB 货币符号,浏览器位于 https://testnet.bscscan.com。其公共端点为 https://bnb-testnet.api.onfinality.io/public。将主网和测试网配置保存在单独的文件中,以免将测试网链 ID 发布到生产环境。
将钱包或客户端连接到 BNB Smart Chain
大多数连接问题源于链 ID 不匹配或 RPC URL 过时。一个最小的钱包网络配置如下所示:
{
"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 是链 ID 56 的十六进制形式。钱包期望十六进制,而大多数 SDK 配置期望十进制。混合两者是“错误网络”错误的常见来源。
要从终端快速进行 JSON-RPC 检查,请调用 eth_chainId 并确认它返回 0x38:
curl -s https://bnb.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
如果你使用 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 blockNumber = await client.getBlockNumber()
console.log('Latest BNB Smart Chain block:', blockNumber)
BNBChain 列表中“应用侧链”的含义
BNBChain 列表不是单一链。它将 BNB Smart Chain 与扩展或专门化它的网络分组在一起。在实践中,你会看到几个类别:
- BNB Smart Chain 主网和测试网。 基础 EVM 链及其测试环境。
- 应用侧链。 可能使用 BNB Chain 工具、桥接或验证者,但运行自己的共识和区块生产的专用链。
- Layer 2 和扩容网络。 结算到 BSC 或其他链并暴露 EVM 兼容 RPC 的 Rollup 或侧系统。
- 操作码和兼容性说明。 每个网络支持的 EVM 版本、预编译和 Gas 规则的详细信息。
当你阅读 BNBChain 列表时,在将网络添加到应用之前检查四个字段:链 ID、RPC URL、浏览器 URL 和原生货币。如果其中任何一个缺失或在来源之间不一致,请将该网络视为未经验证,并先在小额交易上进行测试。
为 BSC 和侧链选择 RPC 端点
公共端点很方便,但它们是共享的。这意味着你的请求速率会受到使用同一 URL 的其他人的影响,并且你无法控制维护窗口。对于原型来说这没问题。对于任何有用户的东西,请规划以下内容:
- 密钥访问。 从公共 URL 迁移到 API 密钥,以便你的流量可识别并得到支持。
- 方法覆盖。 确认端点支持你依赖的方法,特别是
eth_getLogs、带状态覆盖的eth_call,以及如果需要跟踪则使用debug_traceTransaction。 - WebSocket 支持。 实时功能如待处理交易源或事件订阅需要
wss://传输,而不仅仅是 HTTP。 - 归档深度。 历史余额和事件重放需要归档节点。检查提供商是否为你需要的区块范围暴露归档数据。
- 故障转移。 配置辅助端点,以便单个提供商问题不会导致应用宕机。
OnFinality 通过 HTTP 和 WebSocket 暴露 BNB Chain,当你需要隔离容量时可以使用专用节点。你可以在 BNB Chain RPC 查看网络页面,在 BNB Chain 测试网 RPC 查看测试网。
监控和调试 BSC 连接
一旦上线,一些信号会告诉你端点是否健康。跟踪请求延迟、按方法划分的错误率,以及最后处理的区块与链头之间的差距。不断增长的区块差距通常意味着你的端点被限流或消费者落后。
一个简单的健康探测可以按计划运行,并在链 ID 或区块高度停止推进时发出警报:
async function probe(url) {
const res = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0', id: 1,
method: 'eth_blockNumber', params: []
})
})
const { result } = await res.json()
return parseInt(result, 16)
}
const height = await probe('https://bnb.api.onfinality.io/public')
console.log('BNB Smart Chain head:', height)
BSC 上常见的故障模式包括跨越太多区块的 eth_getLogs 查询、流量高峰期间的速率限制响应,以及静默断开的 WebSocket 连接。对于日志查询,缩小区块范围并分页。对于速率限制,添加退避并考虑专用节点。对于 WebSocket,实现带重新订阅步骤的重连逻辑。
何时租用基础设施而不是运行自己的节点
自己运行 BNB Smart Chain 节点可以给你完全控制权,但这也意味着磁盘、带宽、升级和监控都是你的责任。BSC 状态增长迅速,归档节点需要大量存储。如果你的团队很小或你的节点不是你的产品,租用基础设施通常比运营它更快、更便宜。
OnFinality 的专用节点为你提供隔离容量和稳定端点,而无需运营开销。当你具有可预测的高流量、需要归档或跟踪数据,或想要一个不与其他用户共享的私有端点时,这是一个不错的选择。有关其工作原理,请参阅 专用节点;有关评估标准,请参阅 如何选择 RPC 提供商。
迁移检查点
如果你正在从公共端点迁移到托管或专用端点,请完成以下检查点:
- 清点你的应用引用 RPC URL 的每个位置,包括前端、后端、cron 作业和 CI。
- 确认新端点支持你的方法组合和传输(HTTP、WebSocket 或两者)。
- 使用金丝雀测试:将一小部分流量路由到新端点并比较错误率。
- 在切换之前设置监控,而不是之后。
- 将旧端点配置为回退,直到新端点运行完整的流量周期。
关键要点
- BNBChain 列表描述了 BNB Smart Chain 以及应用侧链、Layer 2 网络和测试网,每个都有自己的链 ID 和 RPC URL。
- BNB Smart Chain 主网使用链 ID 56、BNB 作为原生代币,浏览器位于 bscscan.com;测试网使用链 ID 97 和 tBNB。
- 公共端点适合开发但共享;生产应用应使用密钥访问,确认方法和传输支持,并规划故障转移。
- 归档数据、
eth_getLogs和 WebSocket 订阅是最有可能迫使你迁移到专用基础设施的功能。 - OnFinality 提供 BNB Chain RPC 和专用节点;在承诺之前,请查看 RPC 定价 和 支持的 RPC 网络。
常见问题
BNB Smart Chain 和 BSC 是一样的吗? 是的。BSC 是 BNB Smart Chain 的常见简写,即链 ID 为 56 的 EVM 兼容主网。
BNB Chain 测试网应该使用什么链 ID? 测试网使用链 ID 97 和 tBNB 货币符号。将其与主网分开配置。
小型 dApp 需要专用节点吗? 不一定。带 API 密钥的托管 RPC API 通常就足够了,直到你遇到方法限制、需要归档数据或需要隔离容量。
如何知道端点是否支持 WebSocket?
检查提供商文档中的 wss:// URL。如果只列出了 https:// URL,则假设仅支持 HTTP,并相应地设计你的实时功能。
在哪里可以找到 OnFinality 支持的链的完整列表? 请参阅 支持的 RPC 网络 获取当前列表,包括 BNB Chain 及其测试网。