创建有用的方法来监控和可视化门户网络的健康状况

该项目旨在通过创建有用的方式来监控和可视化Portal网络的健康状况,并全面改进Glados,包括编写测试、改进Glados UI、创建图表,提高运行时复杂性,并改进Glados的导航,以便更多的人能够查看和理解Portal网络的健康状况,同时为开发人员提供帮助,使其能够快速识别错误并解决它们,以保护网络的安全。

我的项目正在解决的问题是创建有用的方法来监控和可视化门户网络的健康状况,并从各个方面改进整个glados,无论是编写测试、改进glados UI、创建图表、提高运行时复杂性还是改进glados的导航。这非常重要,因为它允许更多的人能够查看和理解门户网络的健康状况,特别是对于用户而言,并且对开发人员也很有帮助。这也很重要,因为能够可视化门户网络的健康状况以及哪里出错或失败的方式越多越好。

项目描述

我为我的问题提出的解决方案是创建有用的方法来监控和可视化门户网络的健康状况,并通过创建不同的图表、编写测试、改进导航、致力于动态加载所有内容以提高运行时复杂性和改进用户界面来改进整个glados。可能会有更底层的改进,具体取决于事情的进展和我剩下的时间。

规范

  • 图表:首先找到我可以绘制的图表数据,这些数据可以让我们更好地/新颖地了解网络性能,然后找到最适合我显示的信息的图表,然后弄清楚如何从数据库中提取我希望显示的数据,并通过图表在页面上显示数据。我可能会展示的一些很酷的图表想法是

    • 节点位于何处,一个很酷的想法是像显示一张带有圆点的世界地图,显示这些节点位于世界的哪个位置
    • 网络上节点的平均数据半径
    • 给定网络内的估计总存储量
    • 一个饼图,显示网络上有多少个节点以及它们是哪些客户端,例如trin、fluffy、ultralight和unknown。
    • 最近看到的节点
  • 测试:当我们在glados中遇到问题或错误时,编写测试以确保我们不再遇到这些问题有时是一个好主意。我还会编写测试来帮助我找到可能出现问题的地方。我预见编写最多的测试是Rust集成测试,以确保一切正常运行并帮助防止这些问题再次发生,同时编写Rust单元测试来帮助我找到代码无法工作或运行遇到bug时出现错误的地方。我可以编写的测试的示例包括

    • 回归测试,以确保当我们添加新索引时,它不会破坏SQL插入/更新
    • 测试以确保新代码不会导致页面无法工作
  • UI:使用Figma创建一个粗略的草稿,说明如何改进UI,与门户网络团队一起运行它,如果他们批准,就开始在我的IDE中进行样式设置。

  • 导航:实现诸如breadcrumb链接和顶部导航之类的功能。

  • 动态加载:不会一次性加载所有内容,而是一次加载一件内容,以提高性能和降低时间复杂度。

  • (如果我有额外的时间) 更底层的特性:这将取决于我在奖学金期间的进展情况。但这将是一个额外的好处,具体取决于我的项目的进展情况,并且对我来说将是一个成长机会。一些更底层的特性的例子可能是

    • 重写函数以增加并行化,从而缩短从开始到结束的完成时间。这可能会在高IO任务中完成
    • 优化共识代码,以更有效地收集我们需要的数据,以提供某些最初未计划因此未优化的图表和视觉效果
    • 处理未解决的github issues
  • 我想可视化的数据

    • 平均节点半径
    • 网络上的客户端多样性
    • 网络上可用的估计总存储量
    • 客户端位置多样性
    • 网络上是否有数据,是否有任何漏洞?如果有,缺少哪些chunks
    • 节点是否均匀地覆盖了潜在的内容空间?或者节点是否聚集在一起,导致大量特定信息被存储,而其他数据最终变得更加稀有。
  • 能够可视化网络健康状况需要什么?能够可视化网络健康状况非常重要,因为如果没有它,我们只有在为时已晚时才知道出了问题。这可能涉及很多事情,但以下是一些示例

    • 能够快速查看网络上的客户端是否均匀地覆盖了密钥空间。这很重要,因为它可能是存在bug的警告,但除此之外,它可能会导致网络中出现间隙,某些内容范围将不会被存储。
    • 能够看到节点分散开来,而不是全部托管在一个数据中心上。如果一个数据中心运行着网络上一半的节点,那么一次小小的停电可能会导致一半的网络关闭,这可能会被用作一种审查形式。
    • 我们希望跟踪密钥空间的均匀分布的另一个原因是它可能是日蚀攻击的警告。在这种攻击中,恶意节点挖掘接近目标节点的node_id。这可能是为了审查列表以及其他问题。
    • 知道客户端多样性很强。如果一个客户端控制了网络的大部分,那么一个bug可能会导致本来可以避免的中断。

总的来说,我希望改进Glados,使其既具有视觉吸引力又具有高度的功能性,以便我们可以快速识别bug并解决它们,从而保护网络的安全。

路线图

  • 持续工作:在整个队列中,我计划始终关注我可以做的任何美学上的改进和UI改进,我的主要挑战将是实现有趣的图表,而测试更多的是副任务,测试将在我发现的bug的形式中出现。
    • 测试:为我在此过程中发现的bug编写测试
    • UI改进:在整个奖学金期间,我将研究可以添加到glados UI的任何改进,因为最终目标是使glados看起来非常漂亮/干净,并且非常容易浏览和查找你要查找的内容。

在整个计划中,我一直在参加Portal Network Discord服务器上的每次每周会议,并在那里每周一和周四提供我的每周更新,我将继续在门户网络电话会议中提供我的每周更新,以完成其余的队列程序,甚至更长时间。

  • 第一阶段:在以太坊奖学金计划的第一阶段,我已经强烈地意识到我想做什么并做出贡献,最终成为了glados。在第一阶段,我正在努力为glados做出我的第一个贡献,这是一个饼图,显示网络上有多少个节点以及它们是什么客户端,我还最终对以太坊和门户网络进行了大量研究,在合并此PR之前,我还需要做更多的工作,但是在进行此实施工作时,我最终学到了很多重要的技能,例如

    • 解析我想从pier sql数据库中提取的特定数据
    • 然后学习将sql转换为sea-orm和sea-query
    • 从数据库中模板化数据
    • 将图表添加到页面并通过它们显示信息
  • 第二阶段:在第二阶段,我开始非常努力地进行我的项目提案,并练习我的演示文稿,以便我可以尝试进行最好的演示。在奖学金的这一阶段,我还开始对kademlia和discv5进行了大量研究,甚至对以太坊和门户网络进行了更多的研究,以全面地真正提高我的知识和能力,以便在处理glados时查看和理解我查看的所有数据。我还对glados的大部分页面进行了样式设置,如果你查看我的开发更新中的PR,则可以查看样式设置前后图像,从而使它们看起来更干净,更现代。

  • 第三阶段:进入第三阶段,我将开始实施该程序的第二个图表,我将在其中显示给定网络中的估计总存储量,在此阶段,我还将添加顶部导航/导航栏功能,并花时间在Rust中学习路由的工作原理,以提高查找所需内容的能力,并改善站点的整体导航。

  • 第四阶段:在第四阶段,我计划开始实施我的下一个图表,该图表将显示网络上节点的平均数据半径,前提是我已经设法完成了正在实现的先前图表。我也会在此阶段添加breadcrumb链接功能。

  • 第五阶段:到此阶段结束时,我将完成该程序的第三张图表的实施

  • 第六阶段:(如果我有额外的时间,则为可选阶段):深入研究glados的更底层的工作原理,以添加新功能或优化。示例:优化人口普查代码以提供某些最初不打算使用的图表和视觉效果,提高内容控制面板(atm加载速度相当慢)的加载速度,进行美学上的改进或处理问题部分下的问题,并全面地尽可能地改进glados

虽然我已经阐明了我在程序的每个阶段的预期成就,但完成它们的时间表可能会变化。这是由于我的项目的双重性质,该项目同时处理手头的任务并参与持续的学习过程,以掌握实现我正在努力做出的贡献的技能。在本程序的后期,我可能会找到更好的数据来显示和绘制图表,因此我的路线图可能会在本程序的后期发生变化。

可能的挑战

  • 我认为我可能会遇到的一些可能的挑战是,一路上会遇到一些学习曲线,这可能会妨碍我尽快发布PR,并暂时停止我的学习和进步。

  • 努力做出在审查后将被合并并且有用的贡献,同时又试图不要将所有时间都花在最终可能无法实现的事情上

以下是我认为我可能会遇到的一些学习曲线的示例,努力寻找如果显示在页面上有益的数据,并且可能努力弄清楚如何实施某些更改。

我认为可能会阻碍我的一件事是难以查看和理解某些数据。这不是问题,因为这是一次学习经历,并且我只会通过投入工作并希望学习来使自己变得更好。

项目目标

本项目的有形目标纲要

  • 页面看起来更现代和可读,从一个hello world的站点到一个核心功能是简洁的极简设计
  • 页面加载速度更快,从而提高了用户满意度,而不是像今天某些页面那样需要8到20秒的加载时间
  • 主页不再是空白的,而是充满了有见地的图表,可以快速了解网络的性能/健康状况。(目前计划的图表可以在规范部分中看到。)
  • 添加测试以防止bug再次出现,并确保新更改不会破坏站点,无论是新的还是旧的功能
  • 网站的导航是直观且可扩展的,因为我们添加了新页面和功能,查找所需的页面应该只需要一秒钟

将要实现的图表和功能的 goals 将随着项目的继续而发展。这是我在该领域研究的自然发展。我了解得越多,我就越能更好地洞察,从而更好地进行可视化和优化代码库。这个项目的一部分只是在做这项工作并找出答案,然后从那里重新评估。因此,我确实已经有了一个计划好的路线图,但是我相信我可能会想到更好的新想法。这些偏差可能会发生,这仅仅意味着最终结果比我在此当前提案中可以预测的要更好。

当然,这不用说,但我认为这是一个个人成长的绝佳机会,因此我很高兴获得这个机会,尽管非许可性的包容性结构确实在帮助我成长。自我完善和成长对我来说是项目非常重要的目标。所以感谢你提供这个机会。

合作者

研究员: KaydenML

导师: Mike Ferris

资源

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

0 条评论

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