Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
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_blockNumber、eth_getBalance 和 eth_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 回滚,请检查发送者余额和合约逻辑。使用带 stateOverride 的 eth_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)可用。请参见我们的 测试网网络页面 获取端点。

RPC 知识库

相关 RPC 内容

网络 RPCSolana

Solana WebSocket API:如何从链上流式传输实时数据

Solana WebSocket API 允许您订阅实时更新,如账户变更、交易确认和新时隙,而无需轮询。本文解释了核心订阅方法、如何连接到 WebSocket 端点,以及如何在生产中处理常见故障模式。...

RPC 提供商选择Solana

是什么让 Solana 验证器即服务提供商在生产工作负载中可靠?

Solana 验证器即服务提供商代表你运行 Solana 节点基础设施,但这个术语经常被宽泛使用。一些提供商专注于质押和共识参与,而另一些则提供应用程序实际查询的 RPC API 访问和专用节点基础设施。对于生产应用,可靠性问题通常涉及 RPC 可用性、WebSocket 支持以及提供商如何处理故障...

区块链基础设施

区块链 API 服务:如何为您的 Web3 技术栈评估选项

区块链 API 服务为开发者提供访问区块链数据、广播交易以及与智能合约交互的能力,而无需运行自己的节点。本文详细介绍了主要类别——RPC 端点、数据 API、Webhook 和专用节点——并提供了一份决策清单,帮助您为生产环境选择正确的服务。...

区块链基础设施Sui

Sui Indexer:如何在不运行自己的管道的情况下索引 Sui 数据

Sui indexer 将原始的 Sui checkpoint 和交易数据转化为可查询的状态,供仪表盘、分析和应用后端使用。难点很少在于查询层——而在于保持可靠、低延迟的 Sui 数据流持续流入其中。本文介绍了开发者在 Sui 上实际使用的索引架构、为其提供数据的 RPC 和 gRPC 访问模式,以...

网络 RPCFantom

Fantom API: Methods, Endpoints, and How to Start Building

The Fantom API provides JSON-RPC methods for interacting with the Fantom Opera blockchain, covering balances, transactions, event logs, gas estimation...

网络 RPCPolygon

Polygon RPC 列表:面向开发者的主网和 Amoy 测试网端点

查找 Polygon 主网和 Amoy 测试网的官方 RPC 端点,包括 HTTPS 和 WebSocket URL。了解如何根据应用需求在公共、托管和专用 RPC 提供商之间进行选择,并获取钱包和开发者的配置示例。...

永远不用担心基础设施

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

开始