本周的周报总结了一篇关于让全节点忽略未经请求而转发过来的交易的文章。此外还包括我们的常规部分,其中有来自比特币 Stack Exchange 的热门问题和答案,新版本和候选版本的公告,以及对流行的比特币基础设施软件的重要变更摘要。

新闻

  • 忽略未经请求的交易: Antoine Riard 在 Bitcoin-Dev 邮件列表发布了两个草案 BIP,这些 BIP 将允许节点表明它将不再接受未通过 inv 消息请求的 tx 消息,即所谓的_未经请求的交易_。Riard 之前在 2021 年提出了这一总体想法(参见周报 #136)。第一个提议的 BIP 添加了一种机制,允许节点表明其交易转发能力和偏好;第二个提议的 BIP 使用该信号机制表明节点将忽略未经请求的交易。

    该提案有几个小优势,正如在 Bitcoin Core 拉取请求中讨论的那样,但它与一些较旧的轻量级客户端的设计相冲突,可能会阻止该软件的用户能够广播他们的交易,因此可能需要谨慎部署。尽管 Riard 已经开启了上述拉取请求,但他后来关闭了它,表示他计划基于 libbitcoinkernel 开发自己的全节点实现。他还表示,该提案可能有助于解决他最近披露的一些攻击(参见周报 #332)。

来自 Bitcoin Stack Exchange 的精选问答

Bitcoin Stack Exchange 是 Optech 贡献者寻找答案的首选场所之一,也是我们有空闲时间时帮助好奇或困惑用户的地方。在这个月度专栏中,我们会突出显示自上次更新以来发布的一些投票最高的问题和答案。

新版本和候选版本

流行的比特币基础设施项目的新版本和候选版本。请考虑升级到新版本或帮助测试候选版本。

重要代码和文档变更

以下是Bitcoin CoreCore LightningEclairLDKLNDlibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBDKBitcoin Improvement Proposals (BIPs)Lightning BOLTsLightning BLIPsBitcoin InquisitionBINANAs 中最近的重要变更。

  • Core Lightning #8116 改变了通道关闭协商中断的处理方式,即使不需要也会重试该过程。这修复了一个问题,即当节点错过对等节点的 CLOSING_SIGNED 消息时,重新连接时会出错并广播单方面关闭交易。同时,已处于 CLOSINGD_COMPLETE 状态的对等节点已广播了双方同意的关闭交易,可能导致两个交易之间的竞争。此修复允许重新协商继续进行,直到双方同意的关闭交易得到确认。

  • Core Lightning #8095setconfig 命令(参见周报 #257)添加了 transient 标志;引入了临时启用的动态配置变量,而不修改配置文件。这些更改在重启时会被恢复。

  • Core Lightning #7772chanbackup 插件添加了 commitment_revocation 钩子,每当收到新的撤销密钥时更新 emergency.recover 文件(参见周报 #324)。这使用户能够在使用 emergency.recover 清扫资金时,如果对等节点发布了过时的已撤销状态,则广播惩罚交易。此 PR 扩展了静态通道备份 SCB 格式,并更新了 chanbackup 插件以序列化新旧两种格式。

  • Core Lightning #8094xpay 插件(参见周报 #330)引入了运行时可配置的 xpay-slow-mode 变量,该变量会延迟返回成功或失败,直到多路径支付(MPP)的所有部分都得到解决。没有此设置,即使某些 HTLC 仍在等待中,也可能返回失败状态。如果用户重试并从另一个节点成功支付了发票,而等待中的 HTLC 也被结算,则可能发生超额支付。

  • Eclair #2993 使接收方能够支付与支付路径的盲化部分相关的手续费,而发送方则支付非盲化部分的手续费。之前,发送方支付所有手续费,这可能使他们推断并可能揭示出路径。

  • LND #9491 添加了在有活跃 HTLC 时使用 lncli closechannel 命令进行协作通道关闭的支持。启动后,LND 将暂停通道以防止创建新的 HTLC,并等待所有现有 HTLC 解决后再开始协商过程。用户必须设置 no_wait 参数才能启用此行为;否则,错误消息将提示他们指定它。此 PR 还确保在启动协作通道关闭时,max_fee_rate 设置对双方都强制执行;之前,它只应用于远程方。