Bitcoin Core 25.0 版本正式发布,这一版本带来了多项新功能、错误修复、性能改进及翻译更新。本文将为您详细解析此次更新的核心内容,并提供清晰的升级指南。
如何升级 Bitcoin Core
如果您正在运行旧版本,请先完全关闭节点(在某些情况下可能需要几分钟),然后根据您的操作系统执行以下操作:
- Windows:运行新版本安装程序
- macOS:覆盖
/Applications/Bitcoin-Qt
目录 - Linux:替换
bitcoind
或bitcoin-qt
可执行文件
直接从已终止支持(EOL)的版本升级是可行的,但如果数据目录需要迁移,可能会花费一些时间。旧版钱包通常仍受支持。
兼容性说明
Bitcoin Core 官方支持并在以下操作系统上经过充分测试:
- Linux 内核系统
- macOS 10.15 及以上版本
- Windows 7 及以上版本
它也可以在大多数其他类 Unix 系统上运行,但测试频率较低。不建议在不受支持的系统中使用 Bitcoin Core。
主要更新内容
P2P 与网络变更
- 交易大小限制调整:内存池和转发策略现在允许非隔离见证大小在 65 字节及以上的交易。这更好地反映了针对 CVE-2017-12842 的实际防护,并为更小的交易尺寸开辟了新的使用场景。
新增 RPC 方法
- scanblocks:通过扫描给定范围内的所有区块过滤器,返回与一组描述符相关的区块哈希。可与
getblockheader
和rescanblockchain
RPC 结合使用,实现快速钱包重新扫描。注意:此功能要求节点已构建紧凑区块过滤器索引(即使用-blockfilterindex=1
配置)。
RPC 方法更新
- 参数传递优化:所有 JSON-RPC 方法现在接受一个名为
args
的新命名参数,可用于传递位置参数值。这简化了部分参数的传递,无需为每个值命名。 - verifychain 改进:如果检查未失败但因数据缺失(如修剪模式下)、缓存不足或节点关闭而无法完成,现在会返回
false
。 - sendrawtransaction 新增风控:新增可选参数
maxburnamount
(默认值 0),用于控制不可花费输出的最大值。超过此值的交易将被拒绝。 - testmempoolaccept 返回更详细费用信息:现在返回 "effective-feerate"(包括打包验证时的整体费率)和 "effective-includes"(相关交易列表)。
- Miniscript 支持增强:
decodescript
和finalizepsbt
现在更好地支持 Miniscript 描述符。
构建系统与配置更新
- 移除默认 UPnP/NAT-PMP:
--enable-upnp-default
和--enable-natpmp-default
选项已被移除。如需端口映射,请通过配置文件或运行时参数设置。 - 启动验证强化:如果用户显式指定
-checkblocks
或-checklevel
但因缓存不足无法完成验证,节点将报错并退出。 - 端口验证:
-port
和-rpcport
指定的端口现在会在启动时进行验证,之前有效但不符合规范的设置可能 now 会报错。 - blocksonly 模式内存优化:设置
-blocksonly
后,内存池最大内存将降至 5MB(仍可用-maxmempool
覆盖)。未使用的内存池内存与 dbcache 共享,因此也会影响数据库缓存大小。 - 连接数设置为 0 的行为变更:设置
-maxconnections=0
将自动禁用-dnsseed
和-listen
(仍可手动覆盖)。
钱包功能增强
- UTXO 确认数控制:
fundrawtransaction
、send
、walletcreatefundedpsbt
和sendall
RPC 新增minconf
和maxconf
选项,用于控制所用 UTXO 的最小和最大确认数。 - 描述符列表改进:
listdescriptors
响应中新增next_index
字段,与importdescriptors
格式保持一致。 - 包含未成熟 Coinbase:
listunspent
新增include_immature_coinbase
参数,可包含未达到最小可花费深度要求的 Coinbase UTXO。 - 快速重扫优化:如果紧凑区块过滤器(BIP158)可用,描述符钱包的重扫速度将显著提升。需配置
-blockfilterindex=1
以启用此优化。 - 密码支持空字符:钱包密码现在可以包含空字符,此前仅识别第一个空字符之前的内容。
- 地址用途规范:目的字符串现在仅限于 "send"、"receive" 和 "refund"。未知用途将触发警告。
- 多警告信息支持:
createwallet
、loadwallet
、unloadwallet
和restorewallet
RPC 中,"warning" 字段已被弃用,改用 "warnings" 数组字段以更好地处理多条警告。 - Miniscript 支出支持:描述符钱包现在可以花费发送到 P2WSH Miniscript 描述符的币。
图形界面(GUI)更新
- “隐藏数值”选项持久化:该选项现在为持久化设置。
- 交易视图支持隐藏数值:除了“概览”页面,“交易”视图现在也受此选项影响。
REST 接口扩展
- 新增
/rest/deploymentinfo
端点,用于获取有关共识变更部署的各种状态信息。
二进制验证改进
二进制验证脚本已更新,现在要求多个可信密钥的阈值签名,而非单个“发布密钥”。详情请参阅相关文档。
常见问题
如何升级 Bitcoin Core 节点?
关闭当前节点后,根据您的操作系统下载并安装新版本。数据目录通常会自动迁移,但从较旧版本升级可能需要额外时间。
新增的 scanblocks RPC 有何用途?
它允许开发者快速扫描区块过滤器,定位与特定描述符相关的区块,从而大幅加速钱包重扫过程。需提前启用区块过滤器索引。
Miniscript 支持有哪些实际好处?
Miniscript 增强了比特币脚本的可读性和可分析性,使得复杂支出条件的编写和验证更加安全与简便。新版 Bitcoin Core 更好地支持了相关的操作与解析。
blocksonly 模式如何影响节点性能?
该模式将内存池限制降至 5MB,减少内存使用,但也可能因为共享缓存机制而影响数据库操作性能。建议根据您的硬件和需求进行配置。
为什么二进制验证改为多密钥阈值方案?
这提高了发布过程的安全性,要求多个可信方的参与才能验证二进制文件的真实性,降低了单点风险。
钱包密码支持空字符后,应注意什么?
虽然技术上是可行的,但请确保您的密码管理工具或输入方法能够正确处理空字符,避免意外截断。
无论您是节点运营商、开发者还是高级用户,Bitcoin Core 25.0 都带来了值得关注的改进与优化。👉 查看实时节点工具与资源,助您更高效地参与比特币网络。