Hermes:以太坊 Gossipsub 网络的监控轻节点 - 网络

Hermes 是一个 GossipSub 监听器和追踪器,用于基于 libp2p 的网络。它像一个轻节点一样工作,连接到网络中的其他参与者,并依赖于一个受信任的本地节点来确保可以回复任何传入的请求并保持稳定的连接。Hermes旨在测量任何基于 libp2p 的网络中 GossipSub 消息广播协议的效率和性能,可以帮助开发者调整其网络的协议,根据消息传播延迟和控制消息开销。

ProbeLab 团队很高兴地宣布 Hermes,主要由 @dennis-tra@cortze 构建。Hermes 是一个基于 libp2p 网络的 GossipSub 监听器和追踪器。 我们希望该工具能被社区广泛使用,并贡献更多功能和对其他网络的支持。

什么是 Hermes,你能用它做什么

Hermes 的行为类似于轻节点,并连接到网络中的其他参与者。它依赖于一个受信任的本地节点,以确保我们可以回复任何传入的请求并保持稳定的连接。

基于 Hermes 的实验旨在测量 GossipSub 消息广播协议在任何基于 libp2p 的网络中的效率和性能。Hermes 可以帮助开发人员根据消息传播延迟和控制消息开销来调整其网络协议。

该工具目前支持任何 Ethereum 网络(在共识层),尽管将来会支持更多网络。

它是如何工作的

组件

Hermes 作为单个组件(轻节点)运行于其部署的每个网络中。但是,它有两个主要的工作要求:1) 一个 受信任的本地节点,它将提供链状态的正确视图;2) 一个 事件消费者,它将接收所有 libp2p 跟踪并存储它们。轻节点负责发现节点,维护与它们的连接,并监控 libp2p 主机上的内部事件。

轻节点

Hermes 的运行方式类似于标准的 libp2p 节点,发现并连接到网络,同时支持所有 libp2p 协议以确保可靠和安全的通信。它连接到受信任的本地或远程节点,以获取某些需要链状态信息的 RPC,从而利用这些受信任的来源来增强其功能。

Hermes 订阅所有可用的 GossipSub 主题,使其能够全面接收、显示和跟踪与网络的所有交互。这使该工具能够有效地跟踪网络活动。

此外,Hermes 可以将这些跟踪提交给任何定义的消费者,目前支持来自以太坊基金会 (EF) 的 AWS KinesisXatu。此功能有助于将网络数据与分析和监控工具集成,从而有助于网络的整体安全性和功能。

部署

Hermes 的开发目的是持续运行。但是,为了提高轻节点连接的稳定性,该节点必须成功响应远程节点可能提出的面向链的 RPC 调用。由于 Hermes 被设计为与链无关,因此我们必须依赖外部受信任节点来提供该信息。

Hermes 必须与一个链客户端配对:在我们的例子中,对于以太坊的共识层,我们使用了 Prysm。通过为 Hermes 提供 HTTP API 和 gRPC 主机的端点,Hermes 可以将自己添加为“白名单”节点,以便稍后转发大多数与链或状态相关的 RPC 调用。但是,同一个 Prysm 节点可以连接到多个 Hermes 实例,如下图所示,这有助于减少部署要求。

hermes-arch\ hermes-arch3484×1204 229 KB

Hermes 已经扩展为支持不同的数据消费者或数据流。由于所有事件跟踪都需要持久化在某个地方,因此该工具提供了三个不同的选项:

  • AWS Kinesis(我们的部署)
  • Xatu 回调(由 EF 使用)
  • 跟踪记录器到标准输出(用于本地开发测试)

如果你有兴趣使用或升级该工具以支持其他网络或数据流,请 联系我们

Hermes 收集什么数据

由于 Hermes 与网络中的其余节点保持稳定的连接,因此它可以发出 libp2p 和 GossipSub 在实际应用中如何工作的调试跟踪。

Hermes 可以从 libp2p 主机和 GossipSub 协议中收集以下开箱即用的信息:

  • 来自 libp2p 主机的连接和断开连接
  • 控制 GossipSub 消息:
    • 其他节点订阅主题
    • GRAFTPRUNE 控制消息
    • GossipSub 节点评分
    • IHAVEIWANT 控制消息
    • 最近的 IDONTWANT 控制消息
  • 发送和接收的消息
  • 协议 RPC

这是一组非常有价值的数据,因为它涵盖了给定网络中 Gossipsub 行为的很大一部分。相对简单的数据分析可以揭示非常重要的指标,并告知工程师协议的健康(或不健康)运行状况。对于 Gossipsub 作为区块链网络的区块传播协议的情况,深入了解这些指标至关重要!

到目前为止我们是如何使用它的

Hermes 帮助 ProbeLab 团队对 Gossipsub 在以太坊网络上的运行进行了广泛的研究。以下是相关 ethresear.ch 帖子的链接:

此外,它还有助于发现跨实现中 Gossipsub 运行中的错误,并提供有关需要采用 IDONTWANT 消息的支持证据。

未来的计划和贡献方式

Hermes 是开源的 - 它的 Github 存储库是:GitHub - probe-lab/hermes: A Gossipsub listener and tracer.。我们欢迎 Github Issues 与社区讨论、接收功能请求和听取反馈。我们也欢迎 Pull Requests 来改进该工具并添加功能或支持其他网络。如果你对来自其他网络的数据感兴趣并希望 Hermes 支持这些网络,请 联系我们

我们希望你喜欢使用 Hermes。我们很乐意听取你如何使用它以及你所做的任何改进。

[最初发布于:Hermes: a monitoring light node for Gossipsub-based networks]

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

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展