比特币核心本周动态 - #30

INSIDER 发布于 2026-02-13 阅读 43

本期比特币核心开发周报总结了最近一周的合并PR、待审查PR、IRC会议讨论和版本发布。重点包括:用ThreadPool替换WorkQueue简化HTTP服务器逻辑;分离日志生成与处理;实现确定性交易排序;讨论GUI开发困境及可能的解绑方案。

bitcoin++ 是一个国际比特币开发者会议系列。"Insider Edition" 是我们的新闻编辑室,报道 bitcoin++ 世界及其周边发生的一切。

Last Week In Bitcoin

本周 Bitcoin Core - #30

我们打算如何处理 GUI?...

大家好 👋,我是 kevkevin。我是一名开源开发者,也是 Insider Edition 的记者。上周,我审阅了 Bitcoin Core 仓库中的几个拉取请求。以下是我觉得值得注意的内容。

已合并的 PR
每周,都会有若干变更被正式添加到 Bitcoin Core 中。本周,共有26项变更被合并。以下是我认为本周比较有意思的一些。

在这个拉取请求中,furszy 解释说,最近发现 #26966 中创建的通用线程池类可以干净地集成到 HTTP 服务器中。

这样做很好,因为它简化了初始化、关闭和请求执行逻辑。此外,现有的代码之前从未经过充分的单元测试或模糊测试;用功能更好且经过更全面测试的代码来替换它,是一个重大胜利。

这还分离了职责,使 Bitcoin Core 维护者能够尝试未来的性能改进。

如果你之前读过这份周报,你就会知道重构变更意味着什么。这个变更主要是纯移动操作。该变更带来的主要明显区别是,我们不再使用/包含完整的 logging.h 实现,而是可以使用更简单的 util/log.h。

这一变更的初衷是减少内核变更(内核结构化日志)的大小和复杂性。

在这个 PR 中,sipa 解释说,TxGraph 的基本职责是决定内存池中交易的顺序。TxGraph 依靠 cluster_linearize.h 来优化排序,但通常可能存在多个质量基本等效的解决方案。

这意味着我们必须选择一个。Sipa 解释说,解决方案将由以下之一决定:内部标识符、随机选择、txid 或大小。

目前,它是随机选择的。在这个 PR 中,sipa 精确描述了现在将如何选择交易。我注意到的主要变化是,现在交易是确定性选择的。

变更始终在实时更新和审查中。以下是一些仍在进行中、需要审查的值得关注的 PR。

通过以下方式现代化我们的 lint 工具:

- 用 uv 替换 pyenv + pip,以实现更佳的 Python 环境和依赖管理

- 用 https://github.com/astral-sh/ty 替换 mypy

- 用多阶段 Docker 镜像导入(针对 uv、ruff、shellcheck、mlc 和 ty)替换 01_install.sh 运行时安装脚本

- 将 ruff lint 规则从硬编码的 Rust 数组(在 lint_py.rs 中)移至顶层的 ruff.toml,并为类型检查器添加 ty.toml

- 将所有剩余的 pip 依赖项提取到专用的 ci/lint/requirements.txt 中


IRC 会议记录
每周四都会举行一次 IRC 会议。以下是该会议的简要记录。
16:01:41 <fjahr> #topic Fuzzing WG Update (dergoegge)
16:01:52 <dergoegge> 我这边没什么可汇报的
16:02:21 <fjahr> #topic Cluster Mempool WG Update (sdaftuar, sipa)
16:02:39 <sipa> 大家好!
16:03:26 <sipa> 我们非常接近终点了。#34257 已合并。接下来需要审查的是 #34023,最好能将它纳入第一个版本。
16:03:42 <sipa> 我已经去掉了后者中一些不太关键的部分,所以现在可以审查了。
16:04:02 <sipa> 我这边就这些。
16:04:14 <fjahr> #topic Net Split WG Update (cfields)
16:05:12 <cfields_> 本周没什么可汇报的
16:05:57 <fjahr> #topic unbundling the GUI
16:06:04 <hebasto> 大家好
16:06:07 <hebasto> 我独自展示这个主题。
他提供了一个要点
16:06:18 <hebasto> 普遍认为 GUI 开发停滞了。
16:06:23 <hebasto> 但我的看法略有不同;它处于僵局。
16:06:29 <hebasto> 当前在代码库、构建系统、发布流程和发布方式上的整体式方法,使得无论是当前的 GUI(例如为发布二进制文件添加 Wayland 支持)还是基于 QML 的新 GUI,都无法向前推进。
16:06:34 <hebasto> 这场危机源于安全性(更少的依赖)和功能性(更多的依赖)之间的天然对立。
16:06:41 <hebasto> Bitcoin Core GUI 的问题早就为人所知,这次寻求解决方案的尝试也不是第一次了。
16:06:46 <hebasto> 此外,这个问题的长期存在,加上独立的 GUI 仓库,导致开发者对 GUI 的关注度下降。
16:06:53 <hebasto> 我坚信,为了当前和**未来**用户的利益,我们应该将重点转移到基于公共 API(IPC、RPC 等)开发 GUI 上。
16:06:59 <hebasto> 当然,我们必须承诺基于最佳工程实践来开发和维护此类 API。
16:07:04 <hebasto> 作为副作用,这将为替代 GUI 实现打开一个自由市场。
16:07:08 <hebasto> 我提议立即采取的行动是,在 v31.0 中弃用 GUI 二进制文件。
16:07:14 <hebasto> 鉴于上述情况,我将相应地调整个人的工作重点。
16:07:18 <hebasto> 我这边就这些

随后对此进行了更多讨论。详情请阅读完整的会议记录。

点击此链接查看完整的会议记录


发布

感谢阅读。请务必下周再次关注,获取 Bitcoin Core 的最新动态!

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

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

相关文章

0 条评论