概述
想在本地快速、安全地测试 Bitcoin 交互?regtest 无疑是开发者最友好的选择。它完全脱离主网和测试网,私钥、区块、手续费统统可控。
下面,我们用一张清单拆解 Bitcoin Regtest 本地搭建 全流程:环境准备 → Bitcoin Core 安装 → 钱包创建 → 启动链 → 生成测试币 → 调用 RPC,边动手边说原理。
Regtest 究竟是什么
regtest=Regression Test,中文常称“回归测试网”。一句话总结:
- 一条私有的、隔离的 Bitcoin 区块链,只在本地存在,重启即可清零或复用。
- 零网络延迟,区块可以按需瞬时出块。
- 无真实资产风险,挖矿奖励即可做“测试币”。
适合场景
- Dapp 开发者原型验证
- 钱包或交易所对接 Bitcoin RPC 调试
- 教学演示、CTF 练习题
开工前:硬件与系统
| 项目 | 最低要求 | 本文演示 |
|---|---|---|
| OS | Linux / macOS / Windows | Ubuntu 22.04.3 LTS |
| CPU | 1 核即可 | 8 vCPU |
| 内存 | 512 MB | 8 GB |
| 存储 | 5 GB 已够用 | 100 GB |
| 软件 | Bitcoin Core v26.0 |
regtest 对硬件要求极低;哪怕树莓派也跑得欢。
👉 如果你还没准备开发阶段预算,这笔小贴士或许能帮你先免费体验链上指标
安装 Bitcoin Core
1. 下载并解压
# 国内服务器建议替换为镜像源
wget https://bitcoincore.org/bin/bitcoin-core-26.0/bitcoin-26.0-x86_64-linux-gnu.tar.gz
sudo tar -xvf bitcoin-26.0-x86_64-linux-gnu.tar.gz -C /opt/2. 建立软链接(方便全路径调用)
sudo ln -s /opt/bitcoin-26.0/bin/bitcoind /usr/local/bin/bitcoind
sudo ln -s /opt/bitcoin-26.0/bin/bitcoin-cli /usr/local/bin/bitcoin-cli
# 其余工具同理,按需创建如需中文手册,可把 /opt/bitcoin-26.0/share/man/man1 内文件拷贝到系统 man 目录,然后执行 sudo mandb。
单文件搞定配置
进入 Bitcoin 数据目录,新建 bitcoin.conf(Linux 路径为 ~/.bitcoin/bitcoin.conf):
regtest=1
server=1
daemon=1 # 默认后台启动
rpcuser=your_user
rpcpassword=your_pass
# 若想外部钱包访问,可再放开 rpcbind该行不要留空格,regtest 必须顶格写,首位注释会失效。
创建钱包
Bitcoin Core 18 以后默认不再自动建钱包,必须手动:
bitcoin-cli -regtest createwallet "dev_wallet"
bitcoin-cli -regtest loadwallet "dev_wallet"查看钱包地址:
bitcoin-cli -regtest getnewaddress一键起飞:启动与挖矿
后台启动守护进程
bitcoind -regtest -daemon日志路径:~/.bitcoin/regtest/debug.log
想停只需:
bitcoin-cli -regtest stop立刻出 101 个区块拿奖励
ADDR=$(bitcoin-cli -regtest getnewaddress)
bitcoin-cli -regtest generatetoaddress 101 "$ADDR"
bitcoin-cli -regtest getbalance取得 50 * 50 = 2500 regtest BTC(前 100 区块 maturation,第 101 个解锁奖励)。
自此,本地链开始自洽,想再出块,随时generatetoaddress 1。
Regtest 目录结构揭密
~/.bitcoin/regtest/
├── blocks/ # blk*.dat 存放所有区块
├── chainstate/ # UTXO 集合数据库
├── debug.log # 运行日志
├── mempool.dat # 交易池快照
├── peers.dat # 本地 peers 信息(regtest 下几乎为空)
└── wallets/ # 多钱包隔离存放RPC 连通测试
默认端口 18443,curl 验证:
curl --user rpc_user:rpc_password \
-H 'content-type: application/json' \
--data '{"jsonrpc":"1.0","id":"curltest","method":"getblockchaininfo","params":[]}' \
http://localhost:18443返回 blocks: 101 即成功。
FAQ:常见疑问 5 连击
- Q:为什么一定要 101 个区块?
A:前 100 区块的奖励需成熟后方可用,101 块后钱包余额才会大于 0。 - Q:source code 里改 magic 和端口,必须吗?
A:regtest 已经是私有链,无需改 magic 即可独立运行,除非要混用多个链才需自定义。 - Q:用 Docker 难道不行?
A:可以。镜像通常已内置 bitcoind,只需挂载卷并传递-regtest=1参数即可。示例命令:docker run -v $(pwd)/bitcoin-data:/bitcoin/.bitcoin bitcoin/bitcoin -regtest -daemon。 - Q:Electrum 钱包如何连?
A:Electrum-regtest 插件或自行编译 Electrum 后,指定electrum --regtest -s localhost:18443:t。
👉 查看官方示例脚本以快速打通 Node - Wallet 通道 - Q:重启后余额会消失吗?
A:不会,链数据还在硬盘上;若要清零,删除~/.bitcoin/regtest/整个文件夹即可。
进阶玩法串烧
- 多节点联动:两台机器分别启动,在
bitcoin.conf中填对方addnode,就能模拟 P2P peer。 - 合约脚本脚本测试:锁定脚本用
OP_CSV延迟赎回,3 天后自动解锁。10 秒在 regtest 里就能跑完。 - 挖矿手续费模拟:
submitblock前可将 fee 给零,节省精度测试步骤。
小结
一套下来 10 分钟完成:
- 下载并装载 Bitcoin Core v26;
bitcoind -regtest启动;generatetoaddress 101拿 2500 测试币;- 通过 18443 端口 RPC 与本机钱包或前端 Dapp 交互。
从此你的 IDE 就是比特币开发沙盒,随时 revert、随时 carve,性能与真实网络完全一致但再也没有资产焦虑。祝你玩得开心,代码写完再稳稳妥妥上线主网。