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监控机器人
要求
- 拥有安装了ubuntu 20.04的远程服务器,使用cargo编译/构建源代码或从发布二进制文件安装
- 在Telegram上创建一个新的机器人,按照以下说明使用botfather创建一个新的机器人
如何运行
- 使用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
检查状态,现在旁边应该有一个绿色的点 - 然后以使用现有机器人的方式将机器人注册到机器人中
***注意:不要将此与您的节点运行在同一电源源上(这将违背机器人的目的)***
- 如何在tor上设置lnconnect,并在此之上托管您的REST API
- https://github.com/openoms/bitcoin-tutorials/blob/master/Zap_to_RaspiBlitz_through_Tor.md
如果您觉得这个工具很有用,并且想请我喝咖啡/啤酒,请使用下面的按钮捐赠(tor链接)
待办事项
- 确保可以与c-lightning和原始LND以及运行REST API一起工作
- 添加公钥/签名方案以验证此处的源代码是您与之交谈的机器人
依赖关系
~15–29MB
~461K SLoC