# Forwarder Rule Stability — 链上监控作为"不稳定源" (2026-08-06 决策) ## 背景 2026-08-06 用户决策:**删除 forwarder rule 2(链上监控 | 魏神 麻吉 内幕哥)**。 原因: **"链上监控的规则先删了,是不稳定的"**。 ## 为什么链上监控不稳定 链上监控 = 多个 trader 的混合信号源(麻吉大哥 / 魏神 / 狙击手 5912 等),特点: - **trader 名混乱** — 不同 trader 用相似名(brackets/emoji 后缀) - **格式不一致** — 麻吉用"📈",魏神用"📉 注意",不同信号格式 - **trader 切换快** — 同一个 trader 可能不同时间在多个频道 - **来源不能追溯** — 链上监控聚合多源,跟单不明确谁 ## 风险 1. **同时多条同名 trader** — 锁混乱(同一币种多 trader 抢) 2. **格式变化** — parse_signal 失败 → 信号漏跑 3. **trader 字段为空** — 锁到期/失败 4. **来源混乱** — 真要查"我是跟谁的" → 找不回来 ## 决策 (2026-08-06) **策略**: 只保留 **"实盘监控"** 单一源 (chat 1),删: - forwarder rule 2 (chat 4 链上监控) - chats 表里 chat 4 (链上监控) - rule 2 关联的 keywords - rule 2 关联的 replace_rules ## 操作步骤(可在其他 forwarder 复用) ```bash # 1. 删除 rule 2 (db 直接改) docker exec telegram-forwarder python3 -c " import sqlite3 conn = sqlite3.connect('/app/db/forward.db') # 先删关联 keywords conn.execute('DELETE FROM keywords WHERE rule_id=2') # 删 replace_rules conn.execute('DELETE FROM replace_rules WHERE rule_id=2') # 删 rule conn.execute('DELETE FROM forward_rules WHERE id=2') conn.commit() print(f'removed rule 2 with related') # 验证 for r in conn.execute('SELECT id, source_chat_id, enable_rule FROM forward_rules').fetchall(): print(r) " # 2. 删除 chat 4 (防止继续监听) docker exec telegram-forwarder python3 -c " import sqlite3 conn = sqlite3.connect('/app/db/forward.db') conn.execute('DELETE FROM chats WHERE id=4') conn.commit() print(f'removed chat 4') " # 3. 重启 forwarder docker restart telegram-forwarder # 4. 验证 forwarder 重启成功 + 没有 chat 4 docker logs --tail 20 telegram-forwarder | grep -i "启动\|chain\|链上" ``` ## 验证 - ✅ rule 1(实盘监控 → 交易信号群) 启用 - ✅ chat 4 不在 chats 表 - ✅ forwarder log 显示"找到 0 个启用了总结功能的规则" - ✅ 监听源只剩"实盘监控"单一源 ## 经验教训 1. **多源聚合 = 不稳定** — 单一源比多源稳定(单一源失效可控) 2. **链上监控虽信号多**,但聚合 mutiple trader → 锁混乱 3. **要"宁缺毋滥"** — 一个清晰稳定的源 > 多个混乱的源 4. **可重启性** — 单源 forwarder 重启更可控,多源需要等待所有源 ## 关联 - `forwarder-rule-enable-killer.md` — rule 禁用 silent killer - `signal-source-drift-2026-07-15.md` — 信号源变化追踪 - `tg-forwarder-ops.md` — forwarder 基础运维