手把手在本地搭建 Bitcoin Regtest 链:开发测试不求人

·

概述

想在本地快速、安全地测试 Bitcoin 交互?regtest 无疑是开发者最友好的选择。它完全脱离主网和测试网,私钥、区块、手续费统统可控。
下面,我们用一张清单拆解 Bitcoin Regtest 本地搭建 全流程:环境准备 → Bitcoin Core 安装 → 钱包创建 → 启动链 → 生成测试币 → 调用 RPC,边动手边说原理。


Regtest 究竟是什么

regtest=Regression Test,中文常称“回归测试网”。一句话总结:

适合场景


开工前:硬件与系统

项目最低要求本文演示
OSLinux / macOS / WindowsUbuntu 22.04.3 LTS
CPU1 核即可8 vCPU
内存512 MB8 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 连击

  1. Q:为什么一定要 101 个区块?
    A:前 100 区块的奖励需成熟后方可用,101 块后钱包余额才会大于 0。
  2. Q:source code 里改 magic 和端口,必须吗?
    A:regtest 已经是私有链,无需改 magic 即可独立运行,除非要混用多个链才需自定义。
  3. Q:用 Docker 难道不行?
    A:可以。镜像通常已内置 bitcoind,只需挂载卷并传递 -regtest=1 参数即可。示例命令:docker run -v $(pwd)/bitcoin-data:/bitcoin/.bitcoin bitcoin/bitcoin -regtest -daemon
  4. Q:Electrum 钱包如何连?
    A:Electrum-regtest 插件或自行编译 Electrum 后,指定 electrum --regtest -s localhost:18443:t
    👉 查看官方示例脚本以快速打通 Node - Wallet 通道
  5. Q:重启后余额会消失吗?
    A:不会,链数据还在硬盘上;若要清零,删除 ~/.bitcoin/regtest/ 整个文件夹即可。

进阶玩法串烧


小结

一套下来 10 分钟完成:

  1. 下载并装载 Bitcoin Core v26;
  2. bitcoind -regtest 启动;
  3. generatetoaddress 101 拿 2500 测试币;
  4. 通过 18443 端口 RPC 与本机钱包或前端 Dapp 交互。

从此你的 IDE 就是比特币开发沙盒,随时 revert、随时 carve,性能与真实网络完全一致但再也没有资产焦虑。祝你玩得开心,代码写完再稳稳妥妥上线主网。