新私有广播工作组 - 本周Bitcoin Core #43

INSIDER 发布于 2026-05-15 阅读 93

本文是Bitcoin Core开发周报第43期,介绍了本周的主要进展:新成立了Private Broadcast工作小组,旨在通过临时Tor/I2P连接发送交易;合并了11个PR,包括addhdkey RPC(允许导入BIP32扩展密钥)和编译器最小特性检查;正在审查的PR有并行获取区块输入(31132),可提升性能;IRC会议讨论了fuzzing、网络拆分、基准测试、QML GUI等工作组状态,并计划在6月推出QML GUI预览版;libevent移除工作仍在进行,需处理日志分类兼容问题。

bitcoin++ 是一个国际比特币开发者会议系列。“内幕版”是我们的新闻编辑室,报道 bitcoin++ 生态及更广泛领域正在发生的事情。

上周比特币动态

新的私有广播工作组——本周比特币核心 #43

本周比特币核心内部,开发者们去了某个未知的地方度假

大家好👋,我是 kevkevin,一名开源开发者兼内幕版记者。上周,我审阅了来自 Bitcoin Core 仓库的几个拉取请求。

本周创建了一个新的私有广播工作组。通常新的工作组会在 IRC 频道中建立,但这次是在 Signal 群聊中完成的。你可以在完整的会议记录中找到该 Signal 群组。

私有广播是指打开一个临时的 Tor 或 I2P 连接,发送交易,然后关闭连接。

已合并的 PR
每周,都会有若干项变更正式添加到比特币核心中。本周共 11 个变更加入。以下是我本周觉得有趣的一些。

Ava Chow 添加了一个名为 addhdkey 的 RPC 方法。这允许将 BIP 32 扩展密钥添加到钱包,而无需将其作为独立描述符的一部分导入。有时,让钱包拥有可以签名的密钥,但这些密钥(最初)不参与任何脚本,这会很有用。

Ryan Ofsky 最初建议添加一个未使用的(KEY)描述符,但这个 PR 实现了它并合并到了主分支。

正如标题所说,这个变更加入了编译器最低特性检查。这有助于开发者节省时间,因为编译器会提前报错并解释原因,避免开发者费时追踪版本错误。

这个变更让开发者构建项目更轻松,不再浪费时间。

总有一些变更正在实时更新和审核。以下是一些仍在等待审查的值得注意的 PR。

问题

目前,在 ConnectBlock 中获取输入时,每个输入都是从缓存中顺序获取的。缓存未命中时需要一次磁盘数据库往返,以获取输出点并将其插入缓存。由于在 ConnectBlock 期间数据库是只读的,我们可以在连接区块时在多个线程上并行获取一个区块的所有输入。

解决方案

我们向 CoinsViewOverlay 添加了一个线程池,以并行获取区块输入。在进入 ConnectBlock 之前,区块被传递给 CoinsViewOverlay 视图,这会启动工作线程开始获取输入。缓存通过重写的 FetchCoinFromBase 方法,在币可用时返回已获取的币。如果币还不可用,主线程也会在等待的同时获取币。


IRC 会议记录
每周四都会举行一次 IRC 会议。以下是该会议的一些简短记录。
stickies-v: #topic Fuzzing 工作组更新 (dergoegge)
dergoegge: 我这边没什么可汇报的
stickies-v: #topic Net Split 工作组更新 (cfields)
cfields: 本周没有更新。我目前暂停了网络重构工作,转而处理其他项目(主要是 multi_index 替换)。也许最好暂时把我从轮换中移出?
stickies-v: 好的,我会照做,如果你想重新加入,请告诉我,或者随时更新 wiki!
stickies-v: #topic Benchmarking 工作组更新 (l0rinc, andrewtoth)
cfields: 👍
l0rinc: #35156 已合并,另外也试验了几个类似的其他内容——我这边没别的了
_andrewtoth_: 与 dergoegge 合作,在 antithesis 中运行 #31132,使用 drive 构造带缺失输入及其他情形的区块。没有发现问题。
stickies-v: 没问题就是好事
_andrewtoth_: 正在创建一个新的 PR 来包含这些变更,因为原有 PR 有超过 600 条评论,且大部分已不相关
_andrewtoth_: 我这边就这些
stickies-v: #topic QML GUI 工作组更新 (johnny9dev)
johnny9dev: 上次会议有人建议创建一个项目面板,我朝着这个方向努力,因为这是个好主意
johnny9dev: 在 coredev 上,我设置了官方的面板,并包含了我收集的所有任务
johnny9dev: https://github.com/orgs/bitcoin-core/projects/1/views/3
stickies-v: 这个项目面板内容真丰富!
johnny9dev: 可以在这里找到,我们有一个发布计划。优先级排序是:“预览版”是我们的第一个构建版本,用于获取反馈,预计在六月份。“测试版”是我们在今年秋天创建 PR 的目标列表。而“v1.0”是所有内容都准备好合并到 bitcoin/bitcoin 的阶段。
jarolrod: 我想插一句:从现在起,我会更正式地参与进来,帮助 QML GUI 发布。
jarolrod: 很高兴回来 :)
stickies-v: 我们很快就会把文件发给你
johnny9dev: 是的!很兴奋有更多贡献者加入
stickies-v: 很高兴看到你回来,jarolrod!
jarolrod: 🥂
johnny9dev: epicleafies: 有进展吗?
epicleafies: 是的,我实现了只观察钱包,以及一些 bug 修复。
johnny9dev: 很好。QML 部分就这些。
stickies-v: #topic Libevent 移除 (pinheadmz, fjahr)
pinheadmz: 正在处理 #35182,解决边缘情况。
pinheadmz: 使用最新提交重新启动模糊测试。
pinheadmz: 即将发布我进行的一些基准测试,只是在这三个平台上运行功能测试套件,比较与主分支的时间差异(比主分支慢约 1-2%)。调试构建甚至更慢,因为 libevent 总是以优化方式编译。
pinheadmz: 通过了与 LND 的集成测试,这揭示了最重大的破坏性变更:`debugexclude=libevent` 会阻止启动,因为日志类别被移除了。对此有什么想法吗?它会被写在发布说明中,但我们现在也可以做一个临时修复。
fjahr: 在忙,但我这边没有更新,仍然需要处理 CLI 拉取请求的最新反馈
sipa: 或许应该直接保留它,作为一个没有关联消息的类别。
cfields: pinheadmz: 保留该类别并标记为已弃用?
sipa: 并在启动时给出警告。
stickies-v: 我也认为这是最好的方法,加上弃用警告日志,是的
sipa: 在日志类别位耗尽之前,保留它的成本很小,对吧?
pinheadmz: 好的,janb84 和我之前讨论过如何处理日志类别,但我当时没有意识到它实际上会阻止启动
pinheadmz: 所以我将做出那个更改
pinheadmz: 我这边就这些
stickies-v: 还有其他要讨论的吗?
_andrewtoth_: 我们已经建立了一个私有广播工作组频道。欢迎加入 https ://signal.group/#CjQKIIBs79NZA9NAwuNXzBteyKUWxOEWu3QqaiQSMMJZCl2hEhD80HdpVUYNB_AGrMMTZFdu
stickies-v: 我不想强加我个人对通信方式的偏好,但我认为如果人们继续使用专门的 IRC 频道来保留公共日志,那将会很酷
stickies-v: 算了,这是另一个话题了
stickies-v: 看来我们这里已经结束了,感谢大家的更新
_andrewtoth_: stickies-v 已记录,谢谢

在此阅读完整会议记录


发布
  • 本周没有发布

感谢阅读。请务必在下周再次查看有关比特币核心的更新!

如果有任何评论、建议或错误,请随时联系我们或评论

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

相关文章

0 条评论