摘要
BNB智能链(BSC)RPC URL是您的dApp、钱包或脚本用来向BSC网络发送JSON-RPC请求的端点。OnFinality官方公共端点是https://bnb.api.onfinality.io/public。本文解释了如何配置它、选择RPC提供商时需要注意什么,以及如何调试常见问题。
快速回答:BNB智能链RPC URL
BNB智能链(BSC)RPC URL是您的应用程序通过JSON-RPC与BSC网络通信的端点。OnFinality官方公共端点是:
https://bnb.api.onfinality.io/public
此URL同时支持HTTP和WebSocket连接。您可以在MetaMask、Hardhat、ethers.js、viem或任何其他支持自定义RPC端点的Web3工具中使用它。
链设置一览
在连接之前,请确保您的配置与BSC主网参数匹配:
| 设置 | 值 |
|---|---|
| 网络名称 | BNB智能链主网 |
| 链ID | 56 |
| 原生货币 | BNB(18位小数) |
| 区块浏览器 | https://bscscan.com |
| RPC URL(OnFinality) | https://bnb.api.onfinality.io/public |
| WebSocket URL | wss://bnb.api.onfinality.io/public/ws |
对于测试网开发,请使用链ID为97的BNB链测试网,端点为https://bnb-testnet.api.onfinality.io/public。
如何在钱包中配置RPC URL
如果您想将BSC添加到MetaMask或其他钱包,请使用上述链设置。以下是MetaMask的示例:
- 打开MetaMask并点击网络下拉菜单。
- 点击添加网络。
- 填写详细信息:
- 网络名称:BNB智能链
- 新的RPC URL:https://bnb.api.onfinality.io/public
- 链ID:56
- 货币符号:BNB
- 区块浏览器URL:https://bscscan.com
- 点击保存。
现在您的钱包可以与BSC交互了。
在代码中使用RPC URL
以下是如何使用ethers.js和viem使用该端点。
ethers.js
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://bnb.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block:", blockNumber);
}
getBlockNumber();
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('Current block:', blockNumber);
公共RPC与托管RPC:应该使用哪个?
像上面这样的公共RPC端点非常适合开发、测试和低流量应用。然而,它们被许多用户共享,这可能导致速率限制和高峰时段响应变慢。
对于生产环境应用,您应该考虑托管RPC提供商。OnFinality提供RPC定价和支持的RPC网络,其中包括BSC。托管端点提供更高的可靠性、更好的性能和专用选项。
如何为BSC选择RPC提供商
在评估BSC的RPC提供商时,请考虑以下因素:
| 标准 | 检查什么 | 为什么重要 |
|---|---|---|
| 正常运行时间和可靠性 | 历史正常运行时间、SLA | 停机意味着您的dApp不可用 |
| 吞吐量和速率限制 | 每秒请求数、突发容量 | 高流量应用需要余量 |
| 归档数据 | 提供商是否提供归档节点? | 历史查询和分析需要 |
| WebSocket支持 | 是否支持wss://? | 实时订阅需要 |
| 专用选项 | 能否获得专用节点? | 将您的流量与嘈杂邻居隔离 |
| 定价模型 | 按需付费与订阅 | 可预测的成本预算 |
OnFinality提供共享和专用BSC节点。对于高吞吐量工作负载,专用节点提供更一致的性能。有关更多详细信息,请参阅我们的BNB链RPC提供商对比。
常见RPC错误及调试方法
以下是使用BSC RPC URL时可能遇到的一些常见问题:
| 错误 | 可能原因 | 修复方法 |
|---|---|---|
connection refused | URL错误或网络问题 | 检查URL和您的互联网连接 |
rate limit exceeded | 共享端点请求过多 | 使用托管提供商或添加重试逻辑 |
invalid chain id | 配置中的链ID错误 | 将链ID设置为56(主网) |
method not found | 使用不支持的JSON-RPC方法 | 检查提供商的方法支持 |
timeout | 网络缓慢或提供商过载 | 增加超时或使用专用节点 |
使用curl进行调试
您可以使用简单的curl命令测试您的RPC端点:
curl -X POST https://bnb.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
成功的响应如下所示:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1a2b3c"
}
WebSocket订阅
对于实时数据,请使用WebSocket端点。以下是ethers.js的示例:
const { ethers } = require("ethers");
const provider = new ethers.WebSocketProvider("wss://bnb.api.onfinality.io/public/ws");
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
关键要点
- BNB智能链RPC URL是您的dApp或钱包访问BSC的门户。
- OnFinality公共端点是https://bnb.api.onfinality.io/public。
- 配置环境时,始终验证链ID(56)和其他设置。
- 对于生产环境,考虑使用托管RPC提供商以获得更好的可靠性和性能。
- 使用上述调试技巧快速解决常见的RPC问题。
常见问题解答
什么是BNB智能链RPC URL?
OnFinality官方公共RPC URL是https://bnb.api.onfinality.io/public。它支持HTTP和WebSocket。
我可以免费使用BSC RPC URL吗?
是的,公共端点免费用于开发和轻度使用。对于生产环境,请查看RPC定价了解托管选项。
BSC测试网RPC URL是什么?
BNB链测试网RPC URL是https://bnb-testnet.api.onfinality.io/public,链ID为97。
如何将BSC添加到MetaMask?
使用本文提供的链设置将BSC添加为自定义网络。
如果遇到速率限制该怎么办?
切换到托管RPC提供商或实现指数退避的重试逻辑。OnFinality为生产工作负载提供可扩展的选项。