一个新工作组刚刚诞生 🐣 — 本周Bitcoin Core #35

INSIDER 发布于 2026-03-20 阅读 87

本文是Bitcoin Core开发周报第35期,介绍了本周合并的18个PR中的几个有趣变更,包括validation信号优化、钱包迁移模糊测试、RPC类型检查等。同时记录了IRC会议中各工作组(模糊测试、内核、基准测试、QML GUI、Libevent移除、MempoolUpdated回调、ASmap)的更新。此外还发布了v31.0rc1版本。

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

上周比特币动态

一个新工作小组刚刚孵化 🐣 - 本周比特币核心 #35

本周一个新工作小组刚刚孵化...

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

已合并的拉取请求
每周都会有一些变更正式添加到 Bitcoin Core 中。本周,共有 18 个变更被合并。以下是我认为本周值得关注的一些。

这强制执行了当前已经隐含的行为:区块的析构函数主要在调度线程中运行。这个变更应该让这些验证信号的所有权语义更清晰一些。

BlockConnected 已经引用了 connected_blocks 中一个被放置的区块。一旦 connected_blocks 被遍历完毕,它就不会再被重用。类似地,BlockDisconnected 当前引用了一个在调用后被丢弃的区块。请注意,这并不保证区块在被连接后其生命周期会以其他方式延长。例如,在 IBD 之后,区块的生命周期会在 net_processing 的 m_most_recent_block 中延长,而 ActivateBestChain 本身会复制区块的共享指针,这意味着其调用者可能会延迟释放。

Bruno Garcia 的这个变更增加了对 scriptpubkeyman 迁移的模糊测试覆盖。它添加了一个新的模糊测试目标 spkm_migration。Garcia 指出,这仅针对迁移 scriptpubkeyman,而不是整个迁移过程。这是因为尝试对整个迁移过程进行模糊测试会更加昂贵,而模拟需要更多的重构工作。

他还指出,这明确避免了任何加密相关的内容,因为它会使模糊测试目标运行得更慢。

  • RPC:对 decodepsbt 结果进行类型检查 作者 maflcko Marco Falke 更新了 RPCResult,当类型可能是 ELISION 时进行类型检查,因为它既令人困惑又脆弱。ELISION 只应影响帮助输出,而不应影响类型本身。我们还希望类型是真实的类型,以便对其进行类型检查。

Falke 还引入了一个新的 print_elision 选项,并在 decodedpsbt 中使用它。Falke 还在拉取请求描述中提供了测试失败的指导。

总有一些变更加在被实时更新和审查。以下是一些仍在等待审查的重要拉取请求。

解决 #34731

根据问题中分享的调试日志和调试器线程回溯输出,我认为这不是死锁问题的原因:

  • HTTP 工作线程(b-http_pool_x)正在等待条件变量,而不是等待互斥锁,互斥锁信号表明这些线程处于空闲状态并等待分配工作。

  • HTTP 线程(b-http)正在 epoll 等待,这意味着它在等待接收请求(或请求的一部分)。

  • 添加的日志显示,最初几个 testmempool RPC 成功了,但下一个超时了。但与前几次不同,日志中没有显示该请求被记录,暗示服务器从未收到这个请求(或完整请求),因此从未处理过它。即便如此,功能测试客户端也超时了,这意味着它确实发送了请求(至少是部分)。

  • 测试按顺序发送的大型孤立交易每个为 780KB。它尝试在一个循环中发送 60 个这样的交易,通过单个复用的 HTTP 连接发送了 46MB 的数据。

此 PR 在客户端限制了 RPC 的发送频率。我无法重现这个间歇性问题,因此不保证此修复能完全解决问题。

之前此 PR 的一种方法尝试在此测试中不复用 HTTP 连接。但我注意到一次 CI 运行中,受影响的测试花费了大约 75 分钟才完成,这促使我转向当前方法:像之前一样复用 HTTP 连接,但加入了一些限流。


IRC 会议记录
每周四都会举行 IRC 会议。以下是该会议的一些简短记录。
16:02:03 <fjahr> #主题 模糊测试工作组更新 (dergoegge)
16:02:17 <dergoegge> 没有更新
16:02:28 <fjahr> #主题 内核工作组更新 (sedited)
16:02:43 <sedited> aj 和 cory 在 #32317 上留下了一些有趣的评论。我还没有时间处理它们,但我鼓励其他人去阅读。
16:02:54 <yancy> 嗨
16:04:03 <sedited> craig raw 也尝试了 #32427 以加快静默支付扫描速度:https://github.com/bitcoin/bitcoin/pull/32427#pullrequestreview-3935024360
16:04:25 <sedited> 这也在那个 PR 上引发了一些有趣的讨论。
16:04:38 <sedited> 就这些。
16:04:53 <fjahr> #主题 基准测试工作组更新 (l0rinc, andrewtoth)
16:05:10 <fjahr> l0rinc 之前留下了一个更新
16:05:26 <fjahr> https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2026-03-19#1204475;
16:06:03 <fjahr> #主题 QML GUI 工作组更新 (johnny9dev)
16:06:35 <johnny9dev> 针对钱包迁移流程和钱包导入/恢复流程开启了 PR。最后一个将 QML 项目与原始 Qt-widgets 解耦的 PR 已提交,合并后该工作将完成。
16:07:17 <johnny9dev> 我们引入了 GMock 来模拟钱包和节点接口,以便于进行单元测试。
16:07:46 <johnny9dev> epicleafies:你能报告一下你的状态吗?
16:08:06 <epicleafies> 我已经为添加桌面托盘图标以及语言和单位设置提交了 PR。
16:08:44 <johnny9dev> 很好
16:09:28 <johnny9dev> 我认为现在就是这些。PR 堆积如山,我们需要尽快清理它们。
16:09:47 <fjahr> #主题 Libevent 移除 (pinheadmz, fjahr)
16:09:51 <fjahr> 一个新工作小组刚刚孵化 🐣。最近有很多开发和审查工作,目标相当明确,所以我们认为定期提供状态更新是个好主意。所有必要的部分都已存在,你可以在跟踪问题 #31194 中找到它们。
16:09:59 <pinheadmz> 在多次优秀审查后,#32061 的工作仍在继续。下次重新变基后,我将关闭该 PR 并以相同代码重新开启一个新 PR,但不再保留一年多的内容和 300 多条评论。审查还暴露了一些我想添加到主分支的新测试,以及对一些我们上个月已经合并的实用工具的调整——我现在意识到那些调整大部分是错误的 <鬼脸表情>。所以请期待三个新的 PR:一个重生,两个小家伙。
16:10:19 <fjahr> pinheadmz:我们本应更同步一些 :D
16:10:26 <furszy> 确认
16:10:37 <pinheadmz> 我们干得不错,兄弟
16:11:21 <pinheadmz> 就这些
16:11:42 <fjahr> 所以审查重点是 #34772(HTTP 服务器的新先决条件)和 #34158
16:12:11 <fjahr> 还有别的事要讨论吗?
16:12:35 <fjahr> #主题 `MempoolUpdated` ValidationInterface 回调 (abubakarsadiq)
16:12:45 <abubakarsadiq> 已开启 #34803,它添加了一个 `MempoolUpdated` ValidationInterface 回调,在每次内存池更新时发出之前/之后的费率图块,从而实现集群感知的费用估算,并消除挖矿接口中冗余的区块模板重建。变更很小,大部分差异是测试。期待反馈。
16:13:13 <abubakarsadiq> 就这些,谢谢。
16:13:53 <fjahr> 还有其他主题吗?
16:13:55 <jurraca> #主题 ASmap
16:13:58 <jurraca> 我开启了 #34842,目的是将 asmap 认证脚本添加到 contrib/asmap 中。我想问一下大家对于将其放在核心仓库中是支持还是反对。另一种选择是将它们放在 asmap.sigs 仓库中,连同认证本身一起。
16:15:39 <fjahr> 它们目前放在 asmap.sigs 仓库中
16:15:53 <fjahr> 但这些脚本或多或少会更新,对吧?
16:15:58 <jurraca> 是的

发布版本

感谢阅读。请务必下周再来收听 Bitcoin Core 的最新动态!

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

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

相关文章

0 条评论