本周比特币核心回顾

INSIDER 发布于 2025-08-15 阅读 37

本周比特币核心开发回顾:合并了CFeeRate内部封装FeeFrac、将uint256转换为Txid类型、引入per-txin sighash中状态缓存以缓解二次哈希攻击、检测exFAT文件系统警告等PR。开放PR包括处理-named参数中'='字符的解析、日志速率限制后续等。IRC会议讨论了Erlay、Kernel API、基准测试、集群内存池、MuSig2、QML GUI、脚本验证等工作组进展,以及30.0版本功能冻结即将到来。

bitcoin++ 是一个国际比特币开发者会议系列。“Insider Edition”是我们的新闻编辑室,报道 bitcoin++ 宇宙内外的动态。

上周比特币动态

本周比特币核心动态

Bitcoin Core 贡献者 kevkevin 介绍一些最新更新……

大家好 👋,我是 kevkevin,一名开源开发者和 Insider Edition 记者。上周,我审查了 Bitcoin Core 仓库中的几个拉取请求。以下是我认为值得关注的。

已合并的拉取请求
每周都会有若干变更正式加入 Bitcoin Core。本周共合并了 <xx> 个变更。以下是我觉得本周比较有趣的。

此变更是对 CFeeRate 的重构;在本拉取请求之前,它并未使用 FeeFrac(一种表示分数的类型)。

虽然这只是一个重构,意味着不会改变任何功能,但本 PR 可以成为 RPC 调用中使用多种单位的基础,具体如该 issue 所述:将 RPC 和启动选项从 BTC/kvB 迁移到 sat/vB

此重构近期获得了较多审阅,将每个 uint256 实例在合理情况下转换为 Txid。此 PR 合并后,Txid 和 Wtxid 将成为 Bitcoin Core 代码库中的基本类型。由于 Txid 和 Wtxid 使用频繁,本 PR 涉及 75 个文件,因此需要充分审阅。

此代码对用于解释比特币脚本的脚本解释器文件进行了更改。

引入了每 txin 缓存,用于 legacy(裸)、P2SH、P2WSH 和 P2WPKH 的 sighash 中间状态计算。这有助于缓解标准交易的二次哈希攻击。该机制不适用于非标准交易;此类攻击仍可能发生。

Jameson Lopp 之前曾发表文章解释二次哈希攻击

此变更的动机很直接。用户 nym21 报告在 macOS Sonoma 上使用 ExFAT 外部 SSD 时出现崩溃问题。随后,通过 issue 讨论,他们透露使用了 exFAT 文件系统。

这促使了本 PR 的创建。虽然它不能完全解决问题,但会向用户发出警告,告知他们正在使用 exFAT——该文件系统在 macOS 上已知存在间歇性损坏问题。


开放中的拉取请求
始终有变更在不断更新和审阅。以下是一些仍在进行中并需要审阅的 PR。

如果你曾使用过不同的命令行界面(cli),就会知道它们有时会以不同方式格式化输入。

例如,可能使用 (var <value>、var=value 等)。

在此 PR 中,zaidmstrr 指出,当在 finalizepsbt、decodepsbt、verifymessage 命令中使用 -named,然后输入可能包含“=”的 psbt 时,会导致问题。因为代码期望等号后面是一个变量,但实际上它只是 psbt 文本的一部分。

此 PR 创建了 vRPCStringParams,用于识别需要特殊处理的参数。

这是对 日志:通过速率限制 LogPrintf、LogInfo、LogWarning、LogError 来缓解磁盘填充攻击 的后续。该 PR 的目标是防止恶意行为者向你的日志发送垃圾信息,从而填满磁盘并导致节点崩溃。

本 PR 目前正在寻找审阅。


IRC 会议记录
每周四都会举行 IRC 会议。以下是该会议的一些简短记录。
  • Erlay 工作组更新(sr_gi, gleb)

    • sr_gi[m]1: 我正在清理和重新设计完整 Erlay 实现的某些部分,使其更易于理解,以 txdownloadman 为参考。我还添加了所有缺失的单元测试,并扩展了部分功能测试。
  • 内核工作组更新(TheCharlatan)

    • TheCharlatan: API 方面进展稳定,进行了大量讨论,但似乎我们正慢慢汇聚到一种共同方法上。正在寻找 #33078 的 ACK——应即将合并,它简化了部分 API 代码。过去几周也有一批新贡献者持续加入,一些希望完善 API,另一些则希望编写新应用。
  • 基准测试工作组更新(josie, l0rinc)

    • l0rinc: 由于我们在上一版本中为较大的 dbcache 刷新添加了警告(#31534),如果能添加一项相关优化以加速慢速刷新,效果会很好,参见 #31645。该变更仅调整了已可配置的默认值,但对 IBD 性能的关键部分有可衡量的影响。
  • 集群内存池工作组更新(sdaftuar, sipa)

    • sipa: 打开了我认为目前最后一个 txgraph PR。接下来是审查集群内存池 PR 本身。
  • MuSig2 工作组更新(achow101)

    • achow101: 本周无更新,请审阅 #29675
  • QML GUI 工作组更新(jarolrod, johnny9dev)

    • johnny9dev: 上周因家庭度假缺席,正在重新跟上进度。离开前有几份 PR 用于将新分支的功能集提升到我在个人 fork 中的水平。短期内,重点只是赶上发送和支付请求功能。另一位贡献者 deer-gee 正在考虑将一些事件上游化,以便他也能完成 assumeutxo 界面,这应该很快就会开始。
  • 脚本验证工作组更新(fjahr)

    • fjahr: 批量验证 secp PR 有一些进一步开发(审阅仍然欢迎),但仍然缺少 pippenger 支持,我可能会稍微等待一下,直到该支持就绪才 rebase 核心 PR。这是我这边的情况。
  • 30.0 功能冻结

查看 IRC 日志以阅读完整讨论


发布版本
  • 本周无发布

感谢阅读。请下周继续关注 Bitcoin Core 的最新动态!


  • 原文链接: insider.btcpp.dev/p/this...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论