摘要
BNB 智能链测试网是一个兼容 EVM 的测试网络,镜像了 BNB 智能链主网,使用 tBNB 作为无价值的 Gas 代币。本指南涵盖链设置、如何获取测试代币,以及如何通过 RPC 端点连接以进行开发和测试。
快速决策指南:你应该使用哪种 BNB 测试网设置?
在深入细节之前,这里有一个快速指南,帮助你为 BNB 测试网开发选择合适的设置:
- 用于快速原型和手动测试:使用公共 RPC 端点和官方水龙头。这适用于简单的合约交互和钱包设置。
- 用于自动化测试或 CI/CD 流水线:使用专用 RPC 端点以避免速率限制并确保一致的可用性。公共端点可能会限制请求,导致测试不稳定。
- 用于需要在高负载下测试的生产级 dApp:考虑使用专用节点或提供更高吞吐量和可靠性的高级 RPC 服务。
- 用于调试和交易追踪:使用像 BscScan 测试网这样的浏览器来验证交易和检查合约状态。
如果你需要可靠且可扩展的 RPC 端点用于 BNB 测试网开发,请查看 OnFinality 的 BNB 测试网 RPC 和 RPC 定价。
什么是 BNB 智能链测试网?
BNB 智能链测试网是一个公共测试网络,镜像了 BNB 智能链(BSC)主网。它使用相同的权益权威证明(PoSA)共识机制,但原生代币 tBNB 没有实际价值。这允许开发者在无需冒真实资金风险的情况下测试智能合约、dApp 和基础设施。
该测试网兼容 EVM,这意味着你可以使用与以太坊相同的工具和库,如 MetaMask、Hardhat 和 ethers.js。这是在部署到主网之前进行开发、测试和质量保证的重要环境。
链设置一览
以下是配置钱包或应用程序所需的关键网络参数:
| 参数 | 值 |
|---|---|
| 网络名称 | BNB 智能链测试网 |
| RPC URL | https://data-seed-prebsc-1-s1.bnbchain.org:8545(公共) |
| 链 ID | 97 |
| 货币符号 | tBNB |
| 区块浏览器 URL | https://testnet.bscscan.com |
| 原生代币 | tBNB(无价值) |
| 共识 | 权益权威证明(PoSA) |
请注意,公共 RPC 端点在高负载下可能不可靠。对于生产级开发,请考虑使用专用 RPC 提供商,如 OnFinality 的 BNB 测试网 RPC。
如何获取测试网 BNB(tBNB)
要与测试网交互,你需要 tBNB 作为 Gas 费用。以下是获取测试代币的最常见方式:
- 官方 BNB 链水龙头:访问 testnet.bnbchain.org/faucet-smart 并按照说明操作。你可能需要在主网上持有少量 BNB 才能符合资格。
- Chainlink 水龙头:faucets.chain.link/bnb-chain-testnet 提供 tBNB 和 LINK 代币。
- 第三方水龙头:存在一些社区水龙头,但请谨慎使用,只使用可信来源。
水龙头通常有速率限制(例如,每 24 小时 0.3 tBNB)。如果你需要更多代币进行测试,请考虑通过官方渠道请求更大数量或使用测试网桥。
连接到 BNB 测试网:RPC 端点和钱包设置
要将你的钱包或 dApp 连接到 BNB 测试网,你需要一个 RPC 端点。以下是如何将其添加到 MetaMask:
- 打开 MetaMask,点击顶部的网络下拉菜单。
- 点击“添加网络”并输入以下详细信息:
- 网络名称:BNB 智能链测试网
- 新的 RPC URL:
https://data-seed-prebsc-1-s1.bnbchain.org:8545 - 链 ID:
97 - 货币符号:
tBNB - 区块浏览器 URL:
https://testnet.bscscan.com
- 点击“保存”并切换到该网络。
对于编程访问,你可以使用 ethers.js 或 viem 等库。以下是使用 ethers.js 的示例:
const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("https://data-seed-prebsc-1-s1.bnbchain.org:8545");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block number:", blockNumber);
}
getBlockNumber();
对于更可靠和可扩展的端点,请考虑使用 OnFinality 的 BNB 测试网 RPC。
使用 BNB 测试网进行智能合约开发
BNB 测试网非常适合部署和测试智能合约。以下是典型的工作流程:
- 设置开发环境:使用 Hardhat 或 Foundry 配置 BNB 测试网网络。
- 获取 tBNB:使用水龙头为你的测试钱包充值。
- 部署合约:使用部署脚本将合约部署到测试网。
- 验证合约:使用 BscScan 测试网验证并发布合约源代码。
- 测试交互:使用脚本或 dApp 与合约交互。
以下是 BNB 测试网的示例 Hardhat 配置:
module.exports = {
networks: {
bnbTestnet: {
url: "https://data-seed-prebsc-1-s1.bnbchain.org:8545",
chainId: 97,
accounts: ["0xYOUR_PRIVATE_KEY"]
}
}
};
在 BNB 测试网上调试和监控
当出现问题时,以下是常见问题及调试方法:
- 交易失败:在 BscScan 测试网上检查交易哈希以查看回滚原因。
- RPC 错误:如果遇到速率限制错误或超时,请尝试不同的 RPC 端点或使用专用提供商。
- 资金不足:确保你的钱包有足够的 tBNB 作为 Gas。使用水龙头充值。
- 链 ID 不匹配:确保你的钱包和 dApp 配置了链 ID 97。
对于监控,你可以使用以下工具:
- BscScan 测试网:查看交易、区块和合约状态。
- 自定义脚本:使用 WebSocket 连接订阅事件。
以下是使用 ethers.js 进行 WebSocket 订阅的示例:
const { ethers } = require("ethers");
const provider = new ethers.providers.WebSocketProvider("wss://data-seed-prebsc-1-s1.bnbchain.org:8546");
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
测试网与主网:有什么区别?
虽然 BNB 测试网镜像了主网,但有一些关键区别需要记住:
- 代币价值:tBNB 没有实际价值,因此你可以自由测试而无需财务风险。
- 网络稳定性:测试网可能会经历重置或停机,因此不要依赖它们用于生产。
- 水龙头限制:你可能需要定期请求代币。
- 共识:两者都使用 PoSA,但验证者集合不同。
理解这些差异有助于你规划测试策略。
关键要点
- BNB 智能链测试网是一个兼容 EVM 的测试网络,链 ID 为 97,tBNB 作为 Gas 代币。
- 使用公共 RPC 端点进行快速测试,但考虑使用专用 RPC 提供商以获得可靠和可扩展的访问。
- 从官方水龙头或第三方水龙头(如 Chainlink)获取 tBNB。
- 使用正确的链设置配置你的钱包和开发工具。
- 使用 BscScan 测试网调试交易,并使用 WebSocket 订阅监控网络活动。
常见问题解答
BNB 测试网的链 ID 是什么? 链 ID 是 97。
如何获取测试网 BNB? 使用官方 BNB 链水龙头或第三方水龙头,如 Chainlink。
我可以在 BNB 测试网上使用 MetaMask 吗? 是的,你可以使用 RPC URL 和链 ID 手动添加网络。
BNB 测试网和 BSC 测试网是一样的吗? 是的,它们指的是同一个网络。
BNB 测试网的 RPC URL 是什么?
公共 RPC URL 是 https://data-seed-prebsc-1-s1.bnbchain.org:8545,但对于生产使用,请考虑专用提供商。
有关支持的网络和 RPC 服务的更多信息,请访问 OnFinality 的支持网络 和 RPC 定价。