改进 Lighthouse 指标/性能

本文介绍了旨在改进 Lighthouse 客户端性能的项目计划,包括暴露 Validator 错过区块的指标、分析 BeaconProcessor 调度器性能、以及实现模拟 Staking 性能指标。该项目旨在通过暴露更多指标和创建模拟场景,帮助开发者更好地了解和优化 Lighthouse 客户端的性能。

改进 Lighthouse 指标/性能

动机

以太坊协议奖学金为学习和为以太坊生态系统做贡献提供了宝贵的经验。 在过去的一年里,我冒险进入了区块链的世界,发现自己越来越被它的复杂性所吸引。

作为去中心化技术的热情倡导者,我有幸通过个人 和专业项目参与了各种区块链协议,其中以太坊是最成熟和引人注目的。 随着我花更多的时间来理解以太坊并在这一过程中解决许多技术挑战,这种感觉只会越来越强烈。

我越来越喜欢了解以太坊客户端如何在网络中运行和交互的机制。 再加上我越来越喜欢编写 Rust 代码,并作为核心开发人员为以太坊生态系统做出贡献, 这就是我的动力所在。我也相信核心开发人员面临着一些最复杂的技术挑战,我想成为其中的一员。

过去,我曾密切合作解决一些以太坊节点的性能问题和延迟问题。 在客户端多样性方面,很明显,Rust 由于其作为目前最有效和最具弹性的编程语言之一的声誉,有望得到更广泛的采用。

将我对解决性能问题、编写 Rust 代码和整个以太坊生态系统的兴趣结合起来,我很高兴能成为以太坊协议奖学金的一员,并为 Lighthouse 客户端做出贡献。

项目描述

作为尝试提高 Lighthouse 指标和性能的一部分,我将研究以下几个主题,包括:

  1. 公开受监控的验证器池中错过的区块指标

    • 越来越多的用户有兴趣在 CL 中直接公开更多指标,尤其是那些可以让他们更深入地了解他们的(池)验证器及其性能的指标,然后可以很容易地添加警报。
    • 这里有几个我们需要考虑的方面(Paul Hauner 在 4 个阶段中对此进行了详尽的描述):
      • 我们如何检测到错过了一个区块(即“跳过的槽”)?
      • 我们如何知道跳过的槽的提议者是谁?
      • 如何减少误报。
      • 警报去抖动。
  2. 调度器分析

    • Lighthouse 有一个调度器,称为 BeaconProcessor,它用于排队和 服务质量 (quality-of-service)。
    • 添加一些 Prometheus 指标,无论是饼图风格的指标,显示哪些任务占总运行时间的百分比,还是显示每个任务在一段时间内的平均时间的图表。
  3. 模拟质押性能指标

    • 向 Lighthouse 添加功能,使其“假装”创建证明并回顾性地评估其性能。
    • 这将提供更多的数据点(例如,每个 epoch 一致的 32 个,而不是单个验证器每个 epoch 1 个),并有助于对 Beacon Node 性能做出定性判断。
    • 这也将能够——结合向 BeaconProcessor 添加指标——查看潜在的性能问题或瓶颈,甚至高亮显示需要优化的区域,并允许团队更轻松地进行优化(尝试不同的 Rust 调度模式),以及发现潜在的性能问题。

路线图

第 1-3 周:实现错过区块的指标

第 2-4 周:在 BeaconProcessor 调度的任务中实现一些指标

第 5-10 周:实现一个简单版本的模拟器

第 11-12 周:测试/调试上述实现

可能的挑战

  • 我越来越熟悉 Rust,但即使我使用过另一种函数式语言(如 Scala),它也不是我每天使用的语言。我对 Rust 的概念理解得很好,但也知道 borrow checker 有时会有点挑战,会降低我的速度。学习曲线很艰难。
  • Lighthouse 的代码库不是一个小项目,理解它的所有方面可能需要一些时间。
  • 我对前两个任务有很好的理解,但我需要对最后一个名为“模拟质押性能指标”的项目进行更多的研究,以及完成它需要多长时间。

项目目标

当在 LH 中公开更多指标时,该项目将被考虑。

为一组验证器添加错过的区块是让我更熟悉 LH 架构的一个好的第一步,并且包含一个体面的第一步挑战,因为有几个技术要求需要考虑(例如,更多地了解代码库的组件,需要从不同的组件(缓存、状态等)查询更多信息,确保性能是可以接受的。

然后我将继续在 BeaconProcessor 调度的不同任务中添加更多指标,这将使开发人员可以更好地了解每个任务在运行时的不同处理时间。

然后创建一个工作流程,使开发人员能够模拟不同类型的场景,挑战其客户端的性能,并使他们能够更轻松地改进代码的某些部分。

合作者

导师

资源

https://github.com/sigp/lighthouse
https://github.com/sigp/lighthouse/issues/3414
https://github.com/sigp/lighthouse/tree/unstable/beacon_node/beacon_processor

  • 原文链接: github.com/eth-protocol-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
eth-protocol-fellows
eth-protocol-fellows
江湖只有他的大名,没有他的介绍。