Bitcoin Core 28.0 版本已经发布,该版本包括新功能,各种错误修复和性能改进,以及更新的翻译。此版本更新包括:Testnet4/BIP94 支持、Windows 数据目录变更、JSON-RPC 2.0 支持、移除 libbitcoinconsensus、P2P 和网络变更、Mempool 策略变更等。
Bitcoin Core 28.0 版本现已发布:
<https://bitcoincore.org/bin/bitcoin-core-28.0/>
此版本包括新功能、各种错误修复和性能改进,以及更新的翻译。
请使用 GitHub 上的 issue tracker 报告错误:
<https://github.com/bitcoin/bitcoin/issues>
要接收安全和更新通知,请订阅:
<https://bitcoincore.org/en/list/announcements/join/>
如果你运行的是旧版本,请将其关闭。 等待它完全关闭(在某些情况下可能需要几分钟),然后运行安装程序(在 Windows 上)或者直接复制 /Applications/Bitcoin-Qt
(在 macOS 上) 或 bitcoind
/bitcoin-qt
(在 Linux 上)。
可以直接从已达到 EOL 的 Bitcoin Core 版本升级,但如果需要迁移数据目录,则可能需要一些时间。通常支持旧版本的 Bitcoin Core 钱包。
在 macOS 上运行 Bitcoin Core 二进制文件需要 self signing。
cd /path/to/bitcoin-28.0/bin
xattr -d com.apple.quarantine bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin
codesign -s - bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin
Bitcoin Core 在使用 Linux Kernel 3.17+、macOS 11.0+ 和 Windows 7 及更高版本的操作系统上受支持并经过广泛测试。 Bitcoin Core 也应该可以在大多数其他类 UNIX 系统上运行,但在这些系统上测试的频率不高。 不建议在不支持的系统上使用 Bitcoin Core。
增加了对 BIP94 中指定的 Testnet4 的支持。 可以使用 -testnet4
选项选择网络,并且 section header 也命名为 [testnet4]
。
虽然目的是在即将发布的版本中逐步淘汰对 Testnet3 的支持,但在此版本中仍然可以通过已知选项获得支持。 (#29775)
Windows 上的默认数据目录已从 C:\Users\Username\AppData\Roaming\Bitcoin
移动到 C:\Users\Username\AppData\Local\Bitcoin
。 Bitcoin Core 将首先检查旧目录是否存在,如果存在,则继续使用该目录以实现向后兼容。 (#27064)
JSON-RPC 服务器现在可以识别 JSON-RPC 2.0 请求,并严格按照规范进行响应。 有关详细信息,请参阅 JSON-RPC-interface.md。 (#27101)
可能需要更新 JSON-RPC 客户端才能与 JSON-RPC 服务器兼容。 如果发现任何兼容性问题,请在 GitHub 上打开一个 issue。
libbitcoin-consensus 库已在 27.0 中弃用,现在已完全删除。 (#29648)
之前,如果 Bitcoin Core 正在监听 P2P 连接,无论是使用默认设置还是通过 bind=addr:port
,它总是也会绑定到 127.0.0.1:8334
以监听 Tor 连接。 即使节点不使用 Tor,也无法关闭此功能。 这种情况已更改,现在 bind=addr:port
仅导致绑定到 addr:port
。 绑定到 0.0.0.0:8333
和 127.0.0.1:8334
的默认行为没有改变。
如果你使用的是不带 bind=...=onion
的 bind=...
配置,并且依赖于以前的隐含行为来接受 127.0.0.1:8334
上的传入 Tor 连接,你现在需要使用 bind=... bind=127.0.0.1:8334=onion
显式地指定此行为。 (#22729)
如果任何 P2P 绑定失败,Bitcoin Core 现在将无法启动,而不是之前的行为,即只有在所有 P2P 绑定都失败时才会中止启动。 (#22729)
UNIX 域套接字现在可以用于代理连接。 使用前缀 unix:
将 -onion
或 -proxy
设置为本地套接字路径(例如 -onion=unix:/home/me/torsocket
)。 (#27375)
现在接受 -zmqpubrawblock
和 -zmqpubrawtx
的 UNIX 套接字路径,格式为 -zmqpubrawtx=unix:/path/to/file
(#27679)
已将额外的“in”和“out”flag 添加到 -whitelist
,以控制权限是否适用于入站连接和/或手动连接(默认:仅入站)。 (#27114)
交易费用率过低的交易将有机会与其子交易配对并作为package提交,从而使节点能够使用现有的交易中继协议下载 1 父交易-1 子交易package。 结合其他 mempool 策略,此更改允许有限的“package中继”,当父交易低于 mempool 最小费用率时。 拓扑限制直到确认 (TRUC) 父交易另外允许低于最低中继费用率(即支付 0 费用)。 使用 submitpackage
RPC 将package直接提交到节点。 警告:此 P2P 功能受到限制(与 submitpackage
接口不同,不支持具有多个未确认父交易的子交易),并且在对抗条件下尚不可靠。 (#28970)
版本号设置为 3 的交易现在被视为所有网络上的标准交易 (#29496),但须遵守选择加入的拓扑限制直到确认 (TRUC) 交易策略,如 BIP 431 中所述。 该策略包括对花费未确认输出的限制 (#28948),如果提交了更多激励兼容的输出则驱逐先前的后代 (#29306),以及 10,000vB 的最大交易大小 (#29873)。 这些限制简化了对接受或替换 TRUC 交易的激励兼容性的评估,从而确保任何替换对于节点来说都更有利可图,并使费用提升更加可靠。
Pay To Anchor (P2A) 是一种新的标准见证输出类型,用于花费,是一种新识别的输出模板。 这允许无密钥锚定输出,具有紧凑的花费条件,除了等效的 sh(OP_TRUE)
输出之外,还具有额外的效率,以及花费交易的 txid 稳定性。
注意:在此输出花费在网络上的传播将受到限制,直到网络上有足够数量的节点采用此升级。 (#30352)
现在启用了有限的package RBF,其中提议的冲突package将导致 mempool 中大小为 2 的连接组件,也称为集群。 所有被冲突的集群的大小必须为 2 或更小。 (#28984)
-mempoolfullrbf
配置选项的默认值已从 0 更改为 1,即 mempoolfullrbf=1
。 (#30493)
dumptxoutset
RPC 现在以一种新的和改进的格式返回 UTXO 集转储。 相应地,loadtxoutset
RPC 现在期望在其尝试加载的转储中使用这种新格式。 不再支持旧格式的转储,需要使用新格式重新创建才能使用。 (#29612)
已添加高度 840,000 的 AssumeUTXO mainnet 参数。
这意味着 loadtxoutset
RPC 现在可以在 mainnet 上使用来自该高度的匹配 UTXO 集。 (#28553)
getblockchaininfo
、getmininginfo
和 getnetworkinfo
中的 warnings
字段现在将所有活动的节点警告作为字符串数组返回,而不是单个警告。 可以通过使用配置选项 -deprecatedrpc=warnings
运行 Bitcoin Core 来暂时恢复当前行为。 (#29845)
之前,当使用 sendrawtransaction
RPC 并指定 UTXO 集中已存在的输出时,响应中会返回 RPC 错误代码 -27
,消息为“Transaction already in block chain”。 错误消息已更改为“Transaction outputs already in utxo set”,以更准确地描述问题的来源。 (#30212)
estimatesmartfee
RPC 的默认模式已从 conservative
更新为 economical
,预计这将减少许多用户的过度估计,特别是如果 Replace-by-Fee 是一种选择。 对于需要对其费用估算具有高可信度但可能过度估计的用户,conservative
模式仍然可用。 (#30275)
RPC scantxoutset
现在在 "unspents" JSON 数组中返回 2 个新字段:blockhash
和 confirmations
。
有关详细信息,请参阅 scantxoutset 帮助。 (#30515)
RPC submitpackage
现在允许传递 2 个新参数:maxfeerate
和 maxburnamount
。 有关详细信息,请参阅 subtmitpackage 帮助。 (#28950)
与钱包相关的 RPC 的更改可以在下面的钱包部分找到。
/rest/getutxos
的参数验证。 这些请求以前是静默处理的。 (#30482, #30444)现在需要 GCC 11.1 或更高版本,或 Clang 16.0 或更高版本,才能编译 Bitcoin Core。 (#29091, #30263)
运行 Bitcoin Core 的最低 glibc 要求现在是 2.31。 这意味着不再支持 RHEL 8 和 Ubuntu 18.04 (Bionic)。 (#29987)
鉴于 lcov 版本 1 和 2 之间的不兼容性,已删除 --enable-lcov-branch-coverage
。 应使用 LCOV_OPTS
来设置任何选项。 (#30192)
-alertnotify
运行时,现在可以多次引发警报,而不仅仅是一次。 以前,仅当激活未知的新共识规则时才会引发警报。 现在的范围已扩大到包括所有内核警告。 具体来说,当检测到具有大量工作的无效链时,也会引发警报。 将来可能会添加其他警告。 (#30058)GUI 或与钱包相关的设置的更改可以在下面的 GUI 或钱包部分找到。
钱包现在可以检测钱包交易何时与 mempool 冲突。 可以在 gettransaction
的 "mempoolconflicts"
字段中看到与 mempool 冲突的交易。 现在可以重新花费与 mempool 冲突的交易的输入,而无需在从 mempool 中删除父交易时手动放弃交易,这可能会导致钱包余额看起来更高。 (#27307)
fundrawtransaction
、walletcreatefundedpsbt
和 send
RPC 中添加了一个新的 max_tx_weight
选项。
它指定了最大交易权重。 如果资金超过限额,则不会构建交易。
默认值为 4,000,000 WU。 (#29523)
新的 createwalletdescriptor
RPC 允许用户向其钱包添加新的自动生成的描述符。 这可用于升级在新标准描述符(例如 taproot)引入之前创建的钱包。 (#29130)
新的 RPC gethdkeys
列出了钱包中所有描述符使用的所有 BIP32 HD 密钥。 这些密钥可以与 createwalletdescriptor
结合使用,为钱包已经知道的特定密钥创建和添加单密钥描述符到钱包。 (#29130)
sendall
RPC 现在可以花费未确认的找零,并将包括额外的费用,以使交易的费用率提高到指定的费用率。 (#28979)
在 RPC bumpfee
中,如果指定了 fee_rate
,则费用率不再限于遵循钱包 5 sat/vb 的增量费用率。 费用率仍然必须至少是原始费用和 mempool 增量费用率的总和。 (#27969)
“迁移钱包”菜单允许用户迁移其钱包目录中的任何旧钱包,而不管加载了哪些钱包。 (gui#824)
“信息”窗口现在显示最大 mempool 大小以及 mempool 用量。 (gui#825)
BIP94 时空扭曲攻击缓解现在在 regtest
网络上处于活动状态。 (#30681)
向 test_bitcoin
添加了一个新的 -testdatadir
选项,以允许指定单元测试数据目录的位置。 (#26564)
-blocksxor
帮助。 (#28052)感谢所有为此版本做出直接贡献的人:
以及所有在 Transifex 上帮助翻译的人。
- 原文链接: github.com/bitcoin/bitco...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!