Elements 22.1.1:为轻量级 DIY 硬件优化节点
Elements

Elements 22.1.1:为轻量级 DIY 硬件优化节点

Blockstream Team

长期以来,Liquid 社区一直要求推出更轻量级的 Elements 节点客户端,以便更好地兼容廉价的现成 DIY 硬件。Elements 21.1.1通过优化 Liquid 的块头文件开始兑现这一承诺,我们计划在未来的版本中进一步优化节点效率。 在 21.1.1 中,内部基准测试表明,运行liquidv1 时,内存使用量减少了 50% 以上。 通过削减内存中保留的一些较大的标头字段,我们能够减少开销。有了这些新的优化措施,我们相信用户现在只需使用比 8GB Raspberry Pi 更小的功率,就能同时利用整个比特币堆。

此外,Elements 22.1.1 还包含维护更新和小修复,包括

  • 更正 getsidechaininfo RPC 和 testproposedblock 的帮助信息
  • 日志中不明显的主链 RPC 字段
  • 允许部署带有付费验证脚本哈希(P2WSH)挂接插件的 Regtest 网络
  • 修正块在标头前面时的下溢问题

团队还通过元素 Qt 对资产做了一些修改,包括使 "使用可用余额 "保持选定的资产,而不是默认返回 L-BTC。

要深入了解该版本的细节,请查看完整的更新日志,并在 Build On L2 (BOL2) 社区的开发者页面上与我们联系,告诉我们您喜欢什么或我们可以改进什么。

优化元素(全靠标题)

我们希望进一步解释元素 21.1.1 中减少内存开销的优化措施。

作为从 Bitcoin Core 继承而来的行为的一部分,元素中的所有区块头(区块元数据)都一直保存在内存中。在比特币中,这些标头相对较小,因此影响不大,但在元素中,由于一分钟区块时间、DynaFed 和区块签名信息的速度更快,标头要大得多。目前,Liquid 区块链(liquidv1)包含的区块数量大约是比特币的 3 倍。

在新的 trim_headers 参数下(参见 PR #1190),我们删除了一些较大的头字段,以减少总体内存开销,但只有在足够的区块时间过去后才会删除,因为不太可能需要这些头字段。这在 IBD(初始区块下载)期间有特别的效果,因为通常情况下(比特币和非 trim_headers 模式),头文件和区块是独立下载的,唯一的要求是头文件先于区块下载,以便区块到达时可以进行验证;这在 trim_headers 模式下并不是一个真正的选择,因为要么 a) 你进行了修剪,然后无法验证区块,要么 b) 你没有进行修剪,使用的内存和以前一样多。我们的解决方案是让头文件和数据块的下载更加 "同步",这意味着头文件不能像以前那样比数据块领先太多。

通过从保存在内存中的标头中删除一些不需要的字段,我们得以减少开销。不过,磁盘上的数据仍保持不变,用户可以在有无参数之间自由切换。

IBD 同步后的内存消耗,测试在 8GB RAM、4GB Swap 虚拟机上执行。

加入 BOL2 并申请新功能

元素平台仍然是一个免费的开源下载平台,任何人都可以在比特币之上建立自己的侧链解决方案。自首次发布以来,我们增加了新的操作码和功能,如保密交易和发行资产。其中一些对 Elements 的升级甚至已经在比特币上实现,包括 OP_CSV 和隔离见证(SegWit)。下一代智能合约语言 Simplicity 将于今年晚些时候在 Liquid 上发布,这也是比特币未来可能的另一种升级。

我们希望延续这一传统,并欢迎比特币社区就新的操作码和功能向 Liquid 提供任何反馈意见。Build On L2 (BOL2) 社区平台是联系工程团队并与其他 Liquid 高级用户讨论新想法和项目的最佳途径。

今天晚些时候,Liquid 工程经理 Pablo Greco 将在 BOL2 上主持一场现场访谈,回答社区对 22.1.1 版本的任何问题。

我们期待着您的提问和交流!

If you have specific preferences, please, mark the topic(s) you would like to read: