保障Grandine的性能

该项目旨在通过并行化和高效设计提高 Grandine 客户端的性能和简化性。项目将进行 Grandine 和 Lighthouse 的对比分析,建立基准性能指标,评估现有测试基础设施,集成性能监控到 CI/CD 管道,探索高级测试技术,并实施有希望的测试方法来发现和解决漏洞,提高 Grandine 的可靠性和效率,从而为以太坊网络的稳定性和性能做出贡献。

保护 Grandine 的性能

并行路径:通往最佳性能的旅程。

动机

你的项目正在解决什么问题?为什么它很重要?协议的哪个领域会受到影响?

Grandine 客户端旨在通过并行化和高效设计来实现高性能和简洁性。然而,为了确保其稳健性和安全性,需要进行全面的测试和性能分析。本项目将解决这些需求,旨在提高 Grandine 的可靠性和效率,从而为以太坊网络的稳定性和性能做出贡献。

项目描述

你提出的解决方案是什么?

  1. 进行 Grandine 和 Lighthouse 之间的对比分析,以确定架构差异、依赖关系和关键优化,作为高级测试的基础步骤。
  2. 设置并运行两个客户端,以建立基准性能指标并了解它们在实际环境中的行为,并通过测试基础设施设置来整合此过程。
  3. 评估当前的测试基础设施,重点关注现有的独立于客户端的 spec-tests 和端到端测试框架 Hive,以找出差距。
  4. 利用现有的存储库进行性能分析,并将这些工具集成到 CI/CD 管道中,以确保持续的性能监控。
  5. 探索和评估高级测试技术,例如基于属性的测试、sanitizers 和并发测试工具,以确定它们的可行性和有效性。
  6. 实施最有希望的测试方法,以发现和解决漏洞,特别是与并行化相关的漏洞。

规范

你将如何实施你的解决方案?提供有关该项目的详细信息和更多技术信息。

CL 客户端的对比分析

  • 创建现有 CL 客户端的简要概述。
  • 重点关注 Grandine 和 Lighthouse,获得对其设计的高级概述并进行比较。
  • 审查代码库以确定主要的优化,特别是与并行化相关的优化。

CL 客户端的对比分析

  • 创建现有 CL 客户端的概述以了解整体情况。
  • 获得 Grandine 和 Lighthouse 设计的高级概述,重点关注它们的架构差异。
  • 审查代码库以确定关键优化,特别是与并行化相关的优化,以指导选择用于高级测试方法的感兴趣的模块。

运行客户端和测试基础设施

  • 为 Grandine 和 Lighthouse 设置受控环境,以确保持续的测试条件。
  • 运行两个客户端,使用诸如 profiling crate 之类的工具收集性能数据,并记录初始观察结果和指标。
  • 比较 Grandine 和 Lighthouse 之间的测试覆盖率。

性能分析和监控

  • 使用 现有存储库 进行性能分析。
  • 评估将性能监控集成到 CI/CD 管道中的可行性。

探索和集成 Fuzzers / Sanitizers

  • 探索各种高级测试策略:
    • 基于属性的测试:使用 proptest 生成任意输入并测试代码属性。
    • Sanitizers:使用 Rust Unstable Book on Sanitizers 中描述的工具来检测诸如内存泄漏、数据竞争等问题。
    • 并发测试:使用 Loom 进行置换测试以查找并发问题。
  • 实施这些方法中最有希望的方法来检测并发问题或其他隐藏的漏洞。

路线图

你提出的时间表是什么?概述项目的一部分以及执行它们需要花费多少时间。

gantt
    dateFormat  YYYY-MM-DD
    title       EPF Cohort Project Plan

    section Preoccupied
    EthCC & ETH Global           : done, t1, 2024-07-08, 2024-07-14

    section Design Analysis
    Set up environments          : crit, active, t2, 2024-07-08, 14d
    Setup Completed              : crit, milestone, m1, after t2, 0d
    Comparative Design Analysis  : t3, after m1, 14d
    Design Report                : crit, milestone, m2, after t3, 0d

    section Test Analysis
    Compare Test Coverage        : t4, after m1, 28d

    section Areas to Target
    Identify Testing Areas       : t5, after m2, 14d
    Areas Identified             : crit, milestone, m3, after t5, 0d

    section Exploration Testing Techniques
    Implement and Analyze        : t6, after m3, 21d
    Preliminary Results          : crit, milestone, m4, after t6, 0d
    Refine Areas & Strategies    : t7, after t6, 21d
    Finalize Analysis            : t8, after t7, 14d
    Final Testing Results        : crit, milestone, m4, after t8, 0d

    section Performance Analysis
    Gather Performance Data      : t9, after m2, 28d
    Analyze Performance Data     : t10, after t9, 14d
    Performance Report           : milestone, m5, after t10, 0d
    CI/CD Integration            : t11, after t10, 14d
    CI/CD Integrated             : milestone, m6, after t11, 0d

    section Finalization
    Document Findings            : t12, 2024-10-14, 14d
    Final Report                 : crit, milestone, m7, after t12, 0d
    Presentation                 : crit, milestone, m8, after t12, 0d

可能的挑战

你可能需要克服的局限性和问题是什么?

  1. 资源约束:有限的时间将限制分析的深度以及可以实施和评估高级测试策略的程度。
  2. 比较分析的复杂性:由于设计复杂性和缺乏文档,理解和比较 Grandine 和 Lighthouse 之间的架构差异可能具有挑战性。
  3. 设置和环境配置:在受控环境中设置和运行两个客户端可能需要进行故障排除。
  4. 性能分析集成:将性能分析工具集成到 CI/CD 管道中可能会出现兼容性和配置问题。
  5. 测试工具的调整:使基于属性的测试、sanitizers 和并发测试工具适应 Grandine 客户端的特定环境可能需要大量的自定义和实验。
  6. 识别关键组件:确定 Grandine 的哪些组件最容易受到漏洞攻击,因此应该成为测试的重点,这可能并不明显。

项目目标

成功的样子是什么?描述项目的最终目标、范围、状态和影响,以便将项目视为已完成且成功。

该项目的成功将通过以下方式定义:

  • Grandine 和 Lighthouse 之间详细的比较报告。
  • 为两个客户端建立基准性能指标。
  • 增强 Grandine 的测试覆盖率和建议。
  • 在 CI/CD 管道中集成或建议性能监控。
  • 探索和识别基于属性的测试、sanitizers 和并发测试工具中最有希望的测试技术。
  • 通过使用上述方法识别和解决潜在的安全漏洞。

合作者

伙伴

是否有任何伙伴与你一起参与此项目?

导师

哪些导师正在帮助你完成项目?

资源

提供指向构成项目的存储库、PR 和其他资源的链接。

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

0 条评论

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