轮询 Binance Smart Chain(币安智能链)上指定合约地址和方法 ID 的调用,并在匹配时发送 Telegram 通知。
pip install -r requirements.txtuv 是一个快速的 Python 包管理器。
# 安装 uv(如果还没有)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境并安装依赖
uv venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
uv pip install -r requirements.txt复制示例配置文件并填入你的配置:
cp .env.example .env然后编辑 .env 文件,配置以下参数:
| 变量 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|
BSC_RPC_URL |
否 | https://bsc-dataseed.binance.org |
HTTPS RPC 端点 |
BSC_RULES_FILE |
否 | config/monitor_rules.json |
规则文件路径(管理 Bot 指令会写入) |
POLL_INTERVAL |
否 | 3 |
检查新区块的间隔秒数 |
TELEGRAM_BOT_TOKEN |
是 | - | Telegram Bot Token |
TELEGRAM_CHAT_ID |
是 | - | Telegram 聊天 ID |
START_BLOCK |
否 | - | 从指定的历史区块号开始扫描(用于测试) |
EXIT_AFTER_CATCHUP |
否 | false |
如果为 true,扫描到链头后退出 |
LOG_PROGRESS_INTERVAL |
否 | 60 |
扫描时记录进度日志的间隔秒数;设为 0 禁用 |
uv run monitor.py脚本从当前最新区块开始,读取规则文件作为监控条件,在匹配时发送 Telegram 消息。
规则文件结构示例:
{
"to_rules": [
{"to": "0x56a3bf66db83e59d13dfed48205bb84c33b08d1b", "method_id": "0xfd5c9779"}
],
"from_rules": [
{"from": "0xee7b429ea01f76102f053213463d4e95d5d24ae8", "method_id": "0x40c10f19", "label": "mint"}
]
}注意:BSC 使用 PoA 共识机制,脚本已注入
geth_poa_middleware以确保区块解析正常。
管理 Bot 用于通过 Telegram 指令维护规则文件:
uv run admin_bot.py常用指令:
/add_to <to_address> <method_id> [label]/add_from <from_address> <method_id> [label]/list/remove <to|from> <index>/help
管理权限默认仅允许 TELEGRAM_CHAT_ID 对应的聊天。
同时后台启动监控与管理 Bot:
bash scripts/run_all.sh停止后台进程:
bash scripts/stop_all.sh为了让脚本在 VPS 上长期运行(即使断开 SSH),推荐使用 Systemd,或者使用 Screen/Tmux。
Systemd 可以让脚本作为系统服务运行,支持开机自启和崩溃自动重启。
-
修改
binance-monitor.service文件中的路径和用户:[Service] User=root WorkingDirectory=/path/to/your/BinanceIDO ExecStart=/root/.cargo/bin/uv run monitor.py
注意:请使用
which uv查找uv的绝对路径。 -
复制服务文件到系统目录:
sudo cp binance-monitor.service /etc/systemd/system/
-
启动服务并设置开机自启:
sudo systemctl daemon-reload sudo systemctl enable binance-monitor sudo systemctl start binance-monitor -
查看日志:
sudo journalctl -u binance-monitor -f
适合临时调试或不熟悉 Systemd 的用户。
# 安装 screen (Ubuntu/Debian)
sudo apt install screen
# 创建一个新会话
screen -S binance
# 在新窗口中运行脚本
uv run monitor.py
# 按 Ctrl+A 然后按 D 键,将窗口挂起(后台运行)
# 此时可以安全断开 SSH 连接恢复窗口:
screen -r binance最简单的后台运行方式。
nohup uv run monitor.py > monitor.log 2>&1 &查看日志:
tail -f monitor.log本项目采用 MIT License 开源协议。