Logo
RPC Assistant

BSC API:端点、方法与开发者设置

摘要

BSC API(BNB智能链API)是一组JSON-RPC端点,允许开发者与BSC网络交互。本参考涵盖端点类型、常用方法、设置步骤以及生产环境工作负载的故障排除技巧。

BSC API 决策清单

在集成BSC API之前,请考虑以下关键点:

  • 端点类型:公共、共享还是专用RPC?公共端点有速率限制;专用节点提供稳定的性能。
  • 归档节点 vs. 全节点:归档节点提供历史状态数据;全节点只提供近期数据。根据您的数据需求选择。
  • WebSocket 支持:如需实时订阅(例如待处理交易、日志),请确保您的提供商支持WSS。
  • 速率限制:检查允许的每秒请求数(RPS)和月度配额。生产应用需要预留空间。
  • 地理延迟:选择靠近用户群体的端点,或使用全局负载均衡器。
  • 调试和跟踪 API:用于交易模拟和高级监控;并非所有提供商都启用。
  • 定价模式:按需付费 vs. 固定费用。在确定前预估您的调用量。

更多详情请参见我们的 RPC 定价支持的网络

BSC API 快速介绍

BSC API 指 BNB 智能链(BSC)节点暴露的 JSON-RPC 接口。由于 BSC 兼容 EVM,其 API 几乎与以太坊的 JSON-RPC 相同——eth_blockNumbereth_getBalanceeth_sendRawTransaction 等方法的工作方式完全相同。这意味着现有的以太坊工具(Hardhat、Foundry、viem、web3.js)只需极少修改即可用于 BSC。

BSC 添加了一些特定于其最终性机制和 blob 支持的 BEP 方法。理解这些有助于构建更可靠的 dApp。

BSC API 端点概览

BSC 端点主要有三种类型:

  • 公共 RPC:免费,但速率限制严格(例如 5–10 req/s)。仅用于测试。
  • 共享/服务 RPC:由 OnFinality 等基础设施平台提供。更高的限制、归档数据,通常带有 WebSocket 和跟踪 API。
  • 专用节点:独立实例,拥有保证的资源、完全控制权,且无噪音邻居。

对于生产环境,推荐使用服务 RPC 或专用节点。您可以在我们的 网络页面 上找到 BSC 端点。

BSC JSON-RPC 方法

以下是最常用的方法,按类别分组:

类别主要方法使用场景
链信息eth_chainId, eth_blockNumber, net_version识别网络和当前区块
账户eth_getBalance, eth_getTransactionCount查询账户状态和 nonce
区块/交易eth_getBlockByNumber, eth_getTransactionReceipt, eth_getLogs获取链上数据
执行eth_call, eth_estimateGas, eth_sendRawTransaction模拟和发送交易
事件订阅eth_subscribe, eth_unsubscribe (WebSocket)实时事件流
调试/跟踪debug_traceTransaction, trace_block交易内省
BSC 特有eth_getFinalizedBlock, eth_getBlobSidecarByTxHash最终性查询和 blob 数据

大多数 EVM 库对这些方法进行了抽象。您很少直接调用它们;而是使用库的 API。

连接到 BSC API

以下是使用 curl 和 viem(JavaScript)连接到 BSC 主网的方法:

使用 curl

curl -X POST https://rpc.onfinality.io/bsc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

使用 viem (JavaScript)

import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: http('https://rpc.onfinality.io/bsc')
});

async function main() {
  const blockNumber = await client.getBlockNumber();
  console.log('Current BSC block:', blockNumber);
}

main();

WebSocket 订阅

import { createPublicClient, webSocket } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: webSocket('wss://rpc.onfinality.io/bsc/ws')
});

const unwatch = await client.watchBlockNumber({
  onBlockNumber: (blockNumber) => console.log('New block:', blockNumber),
});

常见陷阱与故障排除

  • 速率限制:公共端点常返回 429 Too Many Requests。使用限制更高的服务或专用节点。
  • 最终性确认:BSC 具有概率最终性(约15个区块)和经济最终性(BEP-126)。对于不可逆交易,请等待 eth_getFinalizedBlock 或至少15个确认。
  • 缺少归档数据:如果需要过去的状态(例如历史代币余额),请确保您的端点启用了归档数据。
  • WebSocket 断开:不稳定的连接可能导致订阅丢失。使用指数退避实现重连逻辑。
  • Gas 估算失败:如果 eth_estimateGas 回滚,请检查发送者余额和合约逻辑。使用带 stateOverrideeth_call 进行调试。

决定共享 vs. 专用 BSC API

评判标准检查内容为什么重要
吞吐量每秒请求数限制影响同时服务的用户/合约数量
数据保留归档 vs. 剪枝决定能否查询历史状态
API 表面调试/跟踪、WebSocket、eth_subscribe高级工作流(模拟、实时数据)所需
延迟端点地理位置影响用户体验,尤其对时间敏感的 dApp
正常运行时间 SLA提供商保证高可用性减少生产应用停机的风险
定价按需付费 vs. 月度固定与预算和扩展模式匹配

对于中小型工作负载,共享 RPC 服务性价比高。高流量或延迟敏感型项目受益于专用节点。

关键要点

  • BSC API 兼容 EVM;大多数以太坊工具在链 ID 56 上无需修改即可运行。
  • 根据工作负载选择端点:测试用公共、生产用服务 RPC、高吞吐用专用。
  • BSC 特有方法如 eth_getFinalizedBlock 有助于更快地确认最终性。
  • 构建前务必检查速率限制、归档支持和 WebSocket 可用性。
  • OnFinality 提供 BSC 主网测试网 RPC 端点,包含共享和专用选项。

常见问题

BSC API 和以太坊 API 有什么区别?

它们几乎相同。BSC 为其最终性和 blob 功能添加了一些自定义方法,但所有标准 eth_* 方法都有效。

使用 BSC 端点是否需要 API 密钥?

公共端点可能不需要密钥,但有速率限制。对于生产环境,您需要从 OnFinality 等提供商获取 API 密钥,以解锁更高的限制和专用资源。

在认为交易最终确定之前,我应该等待多少个确认?

BSC 的概率最终性建议等待15个区块(约30秒)。对于经济最终性(BEP-126),您可以检查 eth_getFinalizedBlock,它在2个区块内确认(约3.75秒)。

能否使用 BSC API 获取实时数据?

可以,通过 WebSocket 订阅(eth_subscribe)。确保您的提供商支持 WSS 且具有足够的吞吐量。

如果我的提供商不支持归档数据怎么办?

您可以切换到支持归档的提供商,或自行运行归档节点。OnFinality 为 BSC 提供归档端点。

有测试网 API 吗?

有,BSC 测试网(Chapel)可用。请参见我们的 [测试网网络页面](/networks/bnb-testnet) 获取端点。

RPC 知识库

相关 RPC 内容

Network Rpc

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

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

Network Rpc

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

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

Rpc Provider Selection

什么是Arbitrum RPC节点,如何选择合适的节点?

Arbitrum RPC节点是一个端点,让你的dApp能够读取和写入Arbitrum One、Nova或Sepolia测试网的数据。选择合适的节点提供商需要评估吞吐量限制、归档数据支持、WebSocket可用性以及故障转移模式。本文涵盖了链设置、公共与私有端点,以及一个决策清单,帮助你选择符合生产需...

Network Rpc

Kaia RPC:端点、提供商和最佳实践

本指南涵盖您需要了解的关于Kaia RPC端点的所有内容——从公共JSON-RPC URL到为生产环境选择可靠的提供商。了解如何连接到Kaia主网和Kairos测试网,评估RPC服务,并避免常见陷阱。...

Testnet Rpc

Sepolia RPC 端点:链设置、水龙头和开发者指南

Sepolia 是以太坊智能合约开发的主要测试网。本页面提供官方链设置、RPC 端点、水龙头链接以及常见用法模式,帮助您快速测试 dApp。无论您需要公共端点还是专用 RPC 提供商,我们都会介绍需要注意的事项。...

Rpc Provider Selection

专用Polygon节点:生产环境dApp的基础设施考量

了解何时需要为生产环境dApp使用专用Polygon节点,它与共享端点的对比,以及评估提供商时应考虑哪些标准。本文涵盖架构权衡、成本因素和运营考量。...

永远不用担心基础设施

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

开始