术语表 /节点与软件
Regtest
又称回归测试模式、比特币回归测试网络、本地测试网络。
- Regtest 是什么?
- Regtest 是运行在您自己机器上的比特币私有网络,您可以按您的指令挖出区块,而无需等待任何其他人产生区块。
这里的一切都不与任何人共享。区块链从它自己的创世区块开始,挖矿难度处于软件允许的最低值,一条命令就能在不到一秒内产生一百个区块。钱包软件、支付处理程序和闪电网络的各种实现,都在接触资金之前于此进行测试。
运作方式
使用 regtest 选项启动 bitcoind,会创建一条没有对等节点、没有历史记录的区块链。
该网络没有 DNS 种子,也没有可供连接的默认节点,因此除非您再启动一个实例并手动连接,否则您就是自己区块链上的唯一节点。该守护进程在端口18444上监听对等节点,在18443上接收 RPC 调用,数据保存在单独的 regtest 目录中,生成的地址以 bcrt1 开头,因此不可能与任何有价值的地址混淆。
区块在您提出要求时才会出现。generatetoaddress 命令会向您指定的地址挖矿,通常的第一步是挖101个区块而不是1个,因为币基输出必须在其上再有100个区块之后才能花费。只有第101个区块出现之后,您才拥有可花费的币,用来完成其余的测试。
另有两个参数与主网刻意不同。Regtest 起初的区块补贴同样是50 BTC,但每150个区块减半一次,而不是每210,000个区块,因此挖出几千个区块的一次会话就会把奖励降到零,使您无法再为任何新操作提供资金。同时,由于难度下限极低,重组区块链可以随意制造:invalidateblock 会从您选定的任意区块回滚区块链,reconsiderblock 则将其恢复,这是观察六个区块的重组对钱包余额有何影响的唯一实用方法。
在哪里会遇到它
Regtest 是比特币自身测试套件所运行的网络。
Bitcoin Core 的功能测试会启动 regtest 节点,让它们依次运行各种场景,再将其关闭,软件的改动就是这样在发布前得到检验的。Core Lightning 和 LND 对通道逻辑也是如此,Polar 则为这一工作流程提供了图形界面,让您只需点击几下,就能在笔记本电脑上创建一个小型闪电网络。BTCPay Server 出于同样的原因提供了 regtest 开发环境:任何人都不应该在客户付款时才发现结账环节的缺陷。
如果您正在为网站接入比特币支付,最初的一百笔支付应当在这里完成。您可以精确控制确认时间,可以模拟卡住的交易或手续费上调而无需为此付费,还可以预演那种否则一年才会遇到一次的重组。
对于购买或持有比特币的人来说,您不会主动连接 regtest,但了解这个名称仍有价值。以 bcrt1 开头的地址不是比特币地址,任何向您显示这种地址的钱包,都已被指向一条只存在于您眼前这台机器上的私有区块链。