
BSV 主网 mainnet 与测试环境有什么区别
主网承载真实价值,测试环境用于学习和开发。本文梳理 BSV mainnet 与测试环境的区别、常见风险、SDK 使用中的注意事项,以及项目配置中的分环境建议。
林知衡
technical_editor
一句话理解
主网承载真实价值,测试环境用于学习、开发和调试。写 BSV 应用时,必须明确自己正在连接哪个网络。
很多区块链事故并不是因为算法太复杂,而是因为开发者把测试代码、测试私钥或测试配置误用到了真实网络。学习 BSV 时,先分清主网和测试环境,是一项非常实际的安全要求。
什么是主网 mainnet
主网(mainnet)是真实运行的 BSV 网络。
主网上的交易具有真实经济意义。你在主网上花费 UTXO,就是在真实转移 BSV 的控制权;你把数据写上主网,也会形成公开的链上记录。
主网包含真实矿工、真实费用、真实区块、真实区块浏览器和真实用户。也正因为如此,主网上的错误通常不能简单撤销。
主网适合用于:
- 真实支付;
- 生产业务;
- 正式数据记录;
- 需要长期保存和验证的交易。
但主网不适合随意试错。任何广播到主网的交易,都应该经过充分检查。
什么是测试环境
测试环境用于开发、调试和学习。它可能是官方测试网络、私有测试网络、本地 regtest 环境,也可能是某些 SDK 或钱包提供的开发模式。
测试环境里的币通常没有真实经济价值,或者只在测试范围内有意义。它的目标不是承载真实业务,而是让开发者安全地完成试验,例如:
- 创建地址;
- 构造交易;
- 生成签名;
- 广播交易;
- 查询交易状态;
- 测试钱包接口;
- 测试应用协议。
对于新手来说,测试环境的最大价值是:允许你在低风险条件下犯错、排查问题并理解流程。
为什么新手必须先用测试环境
刚开始写 BSV 应用时,出错很正常。你可能会遇到这些问题:
- 忘记添加找零 output;
- 手续费计算错误;
- 用错私钥;
- 把数据写成错误格式;
- 重复广播交易;
- 误删钱包文件;
- 把主网地址和测试地址混在一起。
在测试环境中,这些错误主要是学习成本;在主网中,它们可能带来真实资金损失,或者造成公开数据污染。
因此,更安全的学习路径是:先在测试环境中跑通完整流程,再用极小金额在主网上验证,最后才进入正式业务场景。
网络环境会影响哪些细节
网络环境不只是一个名称,它会影响应用运行的多个关键环节:
- 地址格式;
- 钱包配置;
- API endpoint;
- 区块浏览器;
- 广播服务;
- 手续费策略;
- 可用矿工或测试节点;
- 交易确认速度;
- SDK 示例配置。
所以,不能只看代码里有没有调用 send() 或广播函数,还要确认它连接的是哪个网络。
一个清晰的项目通常会显式区分不同环境,例如:
同时,应用也应该在日志、命令行输出或界面中清楚显示当前网络,避免开发者误操作。
使用 BSV SDK 时也要有环境意识
使用 @bsv/sdk 或钱包接口时,开发者可能不需要一开始就处理所有底层网络参数,因为钱包或 SDK 会封装很多细节。
但这并不意味着网络环境不重要。你仍然需要确认:
- 钱包当前连接的是主网还是测试环境;
- 交易是否会消耗真实 BSV;
- 交易会被广播到哪里;
- 返回的 txid 应该使用哪个区块浏览器查询;
- 示例代码中是否写死了某个 endpoint。
例如,在学习 BSV TypeScript SDK 的 first transaction 示例时,不应只关注代码是否能运行,还要关注钱包、广播服务和查询工具对应的是哪个网络。
参考文档:
- BSV TypeScript SDK first transaction: https://bsv-blockchain.github.io/ts-sdk/tutorials/first-transaction/
- Wallet reference: https://bsv-blockchain.github.io/ts-sdk/reference/wallet/
- WhatsOnChain: https://whatsonchain.com/
主网数据不能随便删除
BSV 是公开链。写入链上的数据会由交易记录承载。即使某些服务不再显示,链上记录仍可能长期存在。
因此,不要在主网上写入以下内容:
- 私钥;
- 助记词;
- 身份证件;
- 真实手机号;
- 未加密隐私数据;
- 商业机密;
- 任何你未来希望删除的敏感内容。
同时,测试环境也不应放入真实隐私信息。测试服务同样可能被他人访问、索引或记录。
项目配置建议
即使只是学习项目,也建议从一开始就建立分环境习惯:
- 把网络名称写进配置文件;
- 不要在代码里硬编码私钥;
- 主网操作前打印明显提示;
- 测试钱包和主网钱包分开;
- API key 和 wallet credential 分开管理;
- 交易日志记录 txid、网络名和时间;
- 不要把
.env提交到 GitHub。
这些习惯看起来基础,但能显著降低误操作风险。越早建立,后续开发真实应用时越轻松。
新手常见误解
下面这些误解在学习阶段很常见,需要特别注意:
- 测试环境成功,不代表主网一定成功;
- 主网小额测试,也是真实资金操作;
- 区块浏览器查不到交易,可能是网络选错了;
- 同一个助记词在不同网络或路径下,可能看到不同地址;
- SDK 示例能运行,不代表可以直接用于生产;
- 测试数据也不应该包含真实隐私。
小结
主网和测试环境的区别,不只是“有没有真实币”这么简单。它会影响地址、钱包、广播、查询、费用、确认和数据可见性。
对 BSV 开发者来说,最重要的实践原则是:
- 明确当前网络;
- 测试环境先跑通;
- 主网操作前再次确认;
- 不把敏感数据写上链;
- 从一开始就做好环境隔离。
当你能清楚回答“这笔交易会发到哪里、会花谁的钱、会留下什么记录”时,再进入主网操作会更安全。
推荐文章
区块链2026年5月26日
一个地址可以有很多 UTXO:理解 BSV 中的地址、余额与交易构造
在 BSV 的 UTXO 模型中,一个地址不是账户,也不是单一余额槽。同一个地址可以关联多个 UTXO,钱包余额只是这些 UTXO 的汇总。理解这一点,有助于正确处理交易构造、手续费、UTXO 碎片化和隐私问题。
区块链2026年5月26日
在 BSV 中,花钱就是消耗旧 UTXO、创造新 UTXO
在 BSV 中,花钱不是修改余额,而是消耗旧 UTXO、创建新 UTXO。理解这一点,有助于掌握付款、找零、交易链以及 token 和应用状态转移的基本逻辑。
区块链2026年5月26日
什么是 UTXO:理解 BSV 交易模型的基础
UTXO 是“未花费交易输出”,是 BSV 交易模型的基本单位。钱包余额并不是链上的账户字段,而是一组可控制 UTXO 的金额总和。理解 UTXO,有助于理解 BSV 的 input、output、找零、手续费、双花、Script 以及并行处理。