/ home / newsletters /
Bitcoin Optech Newsletter #199
本周的简短 Newsletter 总结了一次 Bitcoin Core PR 审查俱乐部会议,并描述了 Rust Bitcoin 的一次更新。
新闻
本周没有重要新闻。我们之前已经报道的话题,包括 OP_CHECKTEMPLATEVERIFY 操作码和 SIGHASH_ANYPREVOUT,收到了更多评论——但大部分讨论要么是非技术性的,要么是关于一些我们认为对广大读者并不重要的细节。在本期 Newsletter 编辑期间,开发者邮件列表收到几篇有趣的帖子;我们将在下周详细介绍它们。
Bitcoin Core PR 审查俱乐部
本月专栏,我们总结了最近一次 Bitcoin Core PR 审查俱乐部 的会议,突出一些重要问题与解答。点击下面的问题可查看会议回答摘要。
通过修剪阻挡器改进裁剪节点上的索引 是 Fabian Jahr 提交的一个 PR,引入了一种新的方法来决定何时可以安全地从区块存储中裁剪区块。该新方法使得裁剪节点能够维护 Coinstats 索引,并移除了验证模块对索引相关代码的依赖。
-
Bitcoin Core 目前有哪些索引,它们各自的作用是什么?
一个节点最多可以维护三种可选索引,以帮助高效地从磁盘检索数据。交易索引(
-txindex
)将交易哈希映射到包含该交易的区块。区块过滤器索引(-blockfilterindex
)为每个区块索引 BIP157 区块过滤器。Coinstats 索引(-coinstatsindex
)存储 UTXO 集的统计信息。 ➚ -
什么是循环依赖?为什么我们要尽量避免循环依赖?
当两个代码模块彼此都离不开对方才能工作时,就存在循环依赖。循环依赖本身不是安全问题,但它意味着代码组织不良,并通过增加单独构建、使用和测试特定模块或功能的难度来阻碍开发。 ➚
-
与旧方法相比,这种修剪方式的优缺点是什么?
此前,
CChainState::FlushStateToDisk
中的逻辑会向索引查询其最佳高度,以确定停止裁剪的区块位置;因此索引与验证逻辑相互依赖。现在,修剪锁被主动计算,可能计算得更频繁,但验证过程不再需要查询索引。 ➚
Notable code and documentation changes
本周 Bitcoin Core、Core Lightning、Eclair、LDK、LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、比特币改进提案(BIPs)以及闪电网络规范(BOLTs)的值得注意的代码和文档更改。
- ● Rust Bitcoin #716 新增了
amount::Display
,一种可配置的显示类型,用于面向用户的金额或其他数值表达。该补丁默认将所有数字表示压缩到最小宽度,从而减少多余的零,这些多余的零会让 BIP21 URI 不必要地变长,常常导致二维码尺寸更大或更难扫描。