#waku #数据完整性 #图协议 #索引器 #P2P

bin+lib listener-radio

Listener Radio 监控 Graphcast 网络并存储消息

3 个版本

0.0.4 2024年3月8日
0.0.3 2024年2月5日
0.0.1 2023年7月26日

#208 in HTTP客户端

Download history 42/week @ 2024-04-02

每月 95 次下载

Apache-2.0

84KB
2K SLoC

Graphcast Listener Radio

Docs

简介

本广播通过订阅八卦网络主题来监控 Graphcast 网络。该广播不会向网络发送消息,但会记录消息并生成基本指标以供网络监控。

快速入门

  • 确保运行着Postgres实例
  • 将Postgres url 设置为 DATABASE_URL.env
  • 设置一般 GraphcastAgent 环境变量。查看SDK文档和CLI帮助了解详细信息。以下是一个简要的必需/推荐设置列表
    • wallet_key: Graphcast id,
    • graph_node_endpoint: 这是 GraphcastAgent 所必需的,但可以稍后抽象,因为 Listener Radio 操作中不使用它,
    • graphcast_namespace: 选择要监听的 Graphcast 网络 ('mainnet', 'testnet'),
  • cargo run 从源代码或构建Docker镜像

动机

Graphcast 网络是一个由众多节点和连接组成的复杂系统,监控它对于维护其性能、识别潜在问题以及确保其健壮性和可靠性至关重要。

  • 性能优化:以确定瓶颈和低效区域。
  • 故障排除:以快速诊断网络中的问题,减少停机时间并提高可靠性。
  • 安全性:立即检测可能表明安全入侵的任何异常活动。
  • 规划和预测:记录可用于规划和预测的有价值数据,帮助我们就网络的未来做出明智的决策。

基本功能

  • 数据存储:存储感兴趣的数据。
  • API:轻松操作和管理存储的数据。
  • 指标收集:收集有关网络的各种指标,例如活动节点数量、传输的消息/数据量以及网络的合法性。以后它应跟踪性能指标,如延迟。
  • 日志记录:提供网络活动的日志。

未来功能

  • 错误检测:检测和记录网络中的错误。
  • 警报:当满足某些条件时发送警报,例如当网络的性能低于某个阈值时。
  • 高级分析:提供更高级的分析功能,以便更深入地分析网络性能。
  • 与其他工具的集成:与网络中的其他工具兼容,以实现更全面的网络监控。
  • 用户界面改进:通常更易于使用和直观。

数据库

此工具包含数据库的自动迁移功能,但需要用户创建有效的数据库连接。请确保传入的数据库 URL 是有效的。

传入消息类型约束

  • 满足 GraphQL 输出类型
  • 可序列化和反序列化的 json 对象

示例消息表

id 消息
1 {"nonce": 1686182179, "network": "mainnet", "payload": {"content": "0x3f...", "identifier": "QmVhiE4nax9i86UBnBmQCYDzvjWuwHShYh7aspGPQhU5Sj"}, "signature": "dff1...", "block_hash": "276e...", "identifier": "QmVhiE4nax9i86UBnBmQCYDzvjWuwHShYh7aspGPQhU5Sj", "block_number": 17431860}
2 {"nonce": 1686182183, "network": "goerli", "payload": {"content": "0xc0...", "identifier": "QmacQnSgia4iDPWHpeY6aWxesRFdb8o5DKZUx96zZqEWrB"}, "signature": "dbd2...", "block_hash": "0198...", "identifier": "QmacQnSgia4iDPWHpeY6aWxesRFdb8o5DKZUx96zZqEWrB", "block_number": 9140860}
... ...

🧪 测试

运行 Radio 的单元测试。我们建议使用 nextest 作为测试运行器。安装后,您可以使用以下命令运行测试

cargo nextest run

贡献

我们欢迎并感谢您的贡献!请参阅此存储库的 贡献指南行为准则安全注意事项

依赖关系

~111MB
~2M SLoC