Bitcoin Core 29.2 发布
FillBlock 在 Bitcoin Core 29.2 中获得两项 P2P 修复:增加见证篡改检查(#32646),调用前检查区块头是否为空(#33296)。链重组时不再强制执行 TRUC 检查(#33504),getblock 和 getblockheader 也不再返回链尖目标值(#33446)。
Bitcoin Core
从官方来源收录的全部内容。
141 篇文章
FillBlock 在 Bitcoin Core 29.2 中获得两项 P2P 修复:增加见证篡改检查(#32646),调用前检查区块头是否为空(#33296)。链重组时不再强制执行 TRUC 检查(#33504),getblock 和 getblockheader 也不再返回链尖目标值(#33446)。
Bitcoin Core
OP_RETURN 限制到 Bitcoin Core 30.0 基本取消:-datacarriersize 默认值改为 100,000,单笔交易可含多个数据输出,设置 -datacarriersize=83 即可恢复旧上限。默认转发费率降至每 vB 0.1 聪,每笔标准交易的旧式签名操作上限为 2500 次,新增的 bitcoin 命令封装了现有可执行文件。
Bitcoin Core
从 Bitcoin Core 29.1 起,无条件写盘的日志开始限速,每个源码位置每小时最多 1MiB(#32604);标准交易中可能执行的旧式签名操作不得超过 2500 次。默认转发费率降到每 kvB 100 聪,32 位版本的 -maxmempool 上限为 500MB,-dbcache 上限为 1GiB。
Bitcoin Core
Bitcoin Core 28.2 的改动略超半数属于构建工作。Guix 现在会为 macOS 应用包做公证,并为所有 macOS 和 Windows 二进制文件签名(#31407);depends 修复了 NetBSD 上 libevent(#31500)和 cmake 下 freetype(#32693)的编译问题。
Bitcoin Core
31 位 Bitcoin Core 贡献者联名发信表示,对于有持续经济需求、能稳定进入区块的交易,节点软件不应拒绝转发,因为用户和矿工总能绕过这类过滤。他们强调,这并不代表赞同非金融用途的数据上链,运行什么软件和策略只由用户自己决定。
Bitcoin Core
持续数年不间断发送 addr 垃圾消息,可使 Bitcoin Core 地址管理器的 32 位标识符溢出,节点随之崩溃。这是 v22.0 靠限速初步遏制的攻击留下的残余部分。29.0 改用 64 位标识符,关闭了低危漏洞 CVE-2024-52919。Eugene Siegel 发现漏洞,Martin Zumsande 完成改动。
Bitcoin Core
Bitcoin Core 29.0 移除了 UPnP 支持;-natpmp 改用内置的 PCP 和 NAT-PMP 实现,不再依赖 libnatpmp。新策略 ephemeral dust(临时粉尘)上线,针对区块权重重复预留的修复新增了 -blockreservedweight,节点还会向每个宣告孤儿交易的对等节点索取其缺失的父交易。26.x 及更早版本到达维护终点。
Bitcoin Core
设置 -port 后,Bitcoin Core 28.1 的默认洋葱监听端口改为该端口加一,不再固定为主网 8334,同一台机器上运行多个节点不会再因启动冲突受阻。torrc 里手动写的 HiddenServicePort 可能需要修改。DecodeExtKey 中的秘密数据也会被清除(#31166)。
Bitcoin Core
对等节点宣告新区块后故意拖延,可让 Bitcoin Core 节点干等最多 10 分钟才转向别处,攻击者还能反复使用这一招。中危漏洞 CVE-2024-52922 由 Greg Sanders 报告并修复,v25.1 和 v26.0 已缓解:节点可同时向最多 3 个高带宽致密区块对等节点请求区块。
Bitcoin Core
Bitcoin Core 27.2 消除了自连接检测中的竞态条件(#30394),FillPSBT 调用错误返回 complete=true 的问题也得到纠正(#30357)。加载区块线程和调度器的关闭顺序有所调整(#30435),代码可用 miniupnpc 2.2.8 和 GCC 15 构建。
Bitcoin Core
v25.0 之前的 Bitcoin Core 中,一个对等节点发来的篡改区块,能清掉其他宣告同一区块的对等节点的下载状态,导致节点忘记正在重建的致密区块。问题由 Suhas Daftuar 注意到,#27608 把每个对等节点的影响限制在自身状态内。CVE-2024-52921 属中危。
Bitcoin Core
v25.0 之前的 Bitcoin Core 节点可遭远程攻击而崩溃:针对同一区块重复发送 blocktxn 消息,会触发 FillBlock 只能运行一次的断言。攻击无需短 ID 碰撞,只要包含不在该区块默克尔根内的交易,就能走到同一路径。高危漏洞 CVE-2024-35202 由 Niklas Gögge 发现并修复。
Bitcoin Core
2023 年 5 月初网络活动激增,间谍节点又火上浇油,对超大 inv-to-send 集合排序几乎占满 P2P 线程的时间,拖慢了区块和交易传播。这一中危问题在 Bitcoin Core v25.0 中由 #27610 修复:更快丢弃已离开交易池的交易,集合越大清空越快。
Bitcoin Core
Testnet4(BIP94)登陆 Bitcoin Core 28.0,同时带来面向一父一子交易对的有限包转发、BIP 431 下的标准 TRUC 交易和新的 Pay To Anchor 输出类型。-mempoolfullrbf 默认值改为 1,27.0 已弃用的 libbitcoinconsensus 正式移除。
Bitcoin Core
v24.0.1 之前,一串低难度区块头就能远程击溃 Bitcoin Core 节点,而且同一条精心构造的链可反复用来攻击全网任意节点。#25717 的修复要求节点先确认链上累积了足够工作量才予以存储,抵御已知攻击也不必再靠检查点。严重程度:高危。
Bitcoin Core
攻击者在局域网内冒充 UPnP 设备,不断向 Bitcoin Core 节点发送臃肿的 M-SEARCH 响应,直到内存耗尽。只有用 -miniupnp 启动的节点才受影响,该库默认关闭。这一低危漏洞已在 v22.0 中修复。
Bitcoin Core
狂发 addr 消息可致 Bitcoin Core 节点崩溃:addrman 插入达到 2^32 次后,32 位 ID 计数器溢出并触发断言。Eugene Siegel 于 2021 年报告这一高危漏洞,v22.0 已包含 Pieter Wuille 的修复。
Bitcoin Core
签名时,Bitcoin Core 26.2 不再假定 TapMiniscript 是合规的(#29853);getnetworkhashps 遇到无效参数会抛出错误(#28554),setmocktime 设置了强制上限(#29869)。miniupnpc 2.2.8 下也能正常构建。
Bitcoin Core
version 消息处理中有两个漏洞:有符号整数溢出和 abs64 逻辑错误,攻击者借此拨偏受害节点的调整后时间,使其以时间过于超前为由拒收新区块。攻击者必须是最先连上的 200 个对等节点之一。这一中危缺陷已在 Bitcoin Core 0.21.0 中修复。
Bitcoin Core
借助 IPv6,撑大 Bitcoin Core 没有上限的封禁列表成本很低;此后每条 GETADDR 消息都迫使节点为返回的每个地址(最多 2500 个)扫描一遍列表。内存崩溃和 CPU 消耗都由 #19219 解决,这一高危问题的修复随 0.20.1 和 0.21.0 发布。
Bitcoin Core