#telegram-bot #bot #telegram #lightning #monitoring

app 闪电哨兵

一个用 Rust 编写的 Telegram 机器人,它将监控通过 Tor 的闪电节点。它通过调用节点的 REST API 并向节点管理员的 Telegram 私人频道发送通知来完成此操作。

5 个版本

0.1.4 2022 年 1 月 24 日
0.1.3 2022 年 1 月 21 日
0.1.2 2021 年 12 月 31 日
0.1.1 2021 年 12 月 18 日
0.1.0 2021 年 12 月 18 日

#telegram-bot 中排名第 106

自定义许可证

83KB
2K SLoC

闪电哨兵

描述

  • 一个用 Rust 编写的 Telegram 机器人,它将监控通过 Tor 的闪电节点。它通过调用节点的 REST API 并向节点管理员的 Telegram 私人频道发送通知来完成此操作。

隐私信息和此机器人的原因

  • 这个项目的需求是在尝试使用 lightning-watch Telegram 机器人后产生的,当时感到沮丧的是,在其理想状态下,它需要用户将其资金锁定在与它相关的频道中。这可能是一个很大的努力来解决这个问题,但我们将拭目以待。
  • 正如源代码所示,连接的节点上只存储了其通过 Tor 的 REST API URL 和提供的麦片。这意味着机器人不知道它与之交谈的节点的 IP 地址。如果任何查看此代码的人对此代码有增加用户隐私的建议,请提出。

注意:目前仅支持 LND,但如果人们发现这很有用,也计划支持其他实现

使用现有的 Telegram 监控机器人

要求

  • 有一个 LND 闪电节点配置
  • 在同一台机器上运行一个 REST API,该 API 理解 "/getInfo" 端点,并且托管在静态 Tor 地址上
    • 如果您正在运行 raspiblitz,那么它会自带一个,这就是在开发此工具期间所使用的
    • 如果您有其他 LND 节点实现,请查看这些选项(注意:您需要静态洋葱地址,以便 REST API 能够使用此工具!)

使用方法

  • 与 Telegram 机器人 @t.me/llightning_sentinel 创建一个私人聊天,并发送 \help
  • 在您的闪电节点命令行上创建一个带有 "/getInfo" 访问权限的麦片: lncli bakemacaroon uri:/lnrpc.Lightning/GetInfo
  • 用元组 (<lightning_node_tor_address>,<macaroon>) 响应机器人的 \start 命令,例如:(https://wkdirllfgoofflfXXXXXXXXXXXXXXXXXXXXXXXXXXXXJJJJJJJJJJJJ.onion:8080, XXXXXXXXXXX...)

除非你想管理自己的机器人,否则请在此处停止!

托管自己的Telegram监控机器人

要求

如何运行

  • 使用Dockerfile从源代码构建二进制文件或从GitHub发布下载静态二进制文件
    • docker build. &docker-compose run lightning-sentinel
  • 下载二进制文件:wget https://github.com/tee8z/lightning-sentinel/releases/download/initial-release/lightning-sentinel
  • 将构建的二进制文件复制到您想要运行服务的位置
  • 不要忘记使用以下命令使二进制文件可执行: sudo chmod +x lightning-sentinel
  • 从将运行的目录中的 Settings.default.toml 创建一个 Settings.toml 文件
  • 添加从botfather收到的您的Telegram机器人ID
  • 然后,转到 /etc/systemd/system 并创建以下文件,命名为 lightning-sentinel.service
  • 注意:如果您想在非root用户下运行此程序,请确保更新 WorkingDirectory & ExecStart 的路径
[Unit]
  Description=Telegram Bot monitoring lightning nodes 
  After=network.target 
  StartLimitIntervalSec=0 

[Service] 
 Type=simple 
 Restart=always 
 RestartSec=1 
 User=root 
 WorkingDirectory=~ 
 ExecStart=/root/lightning-sentinel 

[Install]  
  WantedBy=multi-user.target
  • 保存文件,然后运行
systemctl enable lightning-sentinel
systemctl daemon-reload
systemctl start lightning-sentinel

  • 使用 systemctl status lightning-sentinel 检查状态,现在旁边应该有一个绿色的点
  • 然后以使用现有机器人的方式将机器人注册到机器人中

***注意:不要将此与您的节点运行在同一电源源上(这将违背机器人的目的)***

待办事项

  • 确保可以与c-lightning和原始LND以及运行REST API一起工作
  • 添加公钥/签名方案以验证此处的源代码是您与之交谈的机器人

依赖关系

~15–29MB
~461K SLoC