Skip to content
survivorff's blog
Go back

做一个 Telegram 交易 Bot 到底有多难

8 min read

一个看起来简单的东西

Telegram 交易 Bot 长这样:

用户 → /buy abc123 1
  Bot → 买入成功,成交价 0.0012,持仓 833.33

就这么几行对话,背后是什么?

很多新手看到这个会觉得:这不就是写个 Telegram Bot + 连接 Solana RPC + 调个 Swap 吗?几百行代码就能搞定。

然后真正做一个能跑起来的 Bot,他们会在无数细节上卡死 —— 托管钱包安全、交易失败处理、速度优化、并发管理、用户状态同步……

这篇文章把这些坑拉一遍,帮你理解做一个”生产级” Telegram 交易 Bot 到底需要什么。


表面架构

最基础的 MVP 架构:

Telegram 服务器
  │ (webhook 或 polling)

Bot 后端(Node.js / Rust / Go)
  ├─ 命令解析
  ├─ 用户钱包管理
  ├─ Solana RPC 调用
  └─ 数据库(用户、持仓、历史)


Solana 网络

写一个 Demo 级别的大概 500-1000 行代码就能搞定。但这种 Demo 没法接真实用户。


真实架构的 10 个”坑”

坑 1:钱包安全

Bot 的第一个问题:用户的私钥放哪里?

90%+ 的 Telegram Bot 选了方案 A。这意味着你必须:

一次安全事故 = 整个 Bot 死亡 + 可能的法律问题。历史上已经有多个 TG Bot 因为安全事故倒闭。

坑 2:Telegram API 的限制

Telegram 的 Bot API 有严格的速率限制:

这意味着:

坑 3:用户状态管理

Telegram Bot 是无状态的。用户发 /buy abc123 1,Bot 要判断:

所有这些状态要维护。典型的做法:

Redis(快速状态):当前会话状态、命令上下文
PostgreSQL(持久状态):用户设置、持仓、历史

坑 4:交易失败的用户体验

Solana 交易会失败,这是常态。但用户看到”交易失败”就会来找你:

你需要:

坑 5:并发交易的原子性

一个用户的多笔交易要处理好顺序和隔离:

用户发送 /buy abc 0.1
用户立即又发 /sell abc all

这两笔交易不能并发执行,否则会乱。需要用户级别的锁:

const userLock = await acquireLock(`user:${userId}`);
try {
  // 执行交易
} finally {
  userLock.release();
}

还要考虑:

坑 6:跟单的实时性和扩展性

假设你支持”跟单”功能,用户 A 跟单 5 个钱包。你需要:

如果平台有 1 万个用户,每人跟 5 个钱包,平均每个钱包有 1000 个跟单者(热门钱包)…

这是一个发布-订阅扇出问题:一个钱包的动作,要触发成百上千个跟单交易。需要:

坑 7:RPC 成本爆炸

Bot 需要大量的链上查询:

用商业 RPC(Helius、Triton)的话,一个中等规模的 Bot 月 RPC 费用可能 $5000-$50000。

优化策略:

坑 8:Jito Tip 的动态定价

所有交易要通过 Jito 提交以保证成功率和防夹。但 Tip 多少合适?

需要动态计算:

async function getOptimalTip() {
  // 查询最近 20 个区块的 Tip 分布
  const recentTips = await fetchRecentJitoTips();
  // 根据网络拥堵程度选择百分位
  const congestion = getCongestionLevel();
  if (congestion === "high") return percentile(recentTips, 75);
  if (congestion === "normal") return percentile(recentTips, 50);
  return percentile(recentTips, 25);
}

这个算法本身就是一个小系统,要实时跑。

坑 9:止盈止损的可靠性

用户设置”涨到 2x 自动卖出”。你需要:

这里最大的陷阱:如果服务器宕机,止盈止损就不触发。用户会亏损,甚至告你。

你需要:

坑 10:反滥用和风控

Telegram 是一个公共平台,会有:

需要:


一个真实的架构

实际线上跑的 TG Bot 架构大概长这样:

graph TD
    TG[Telegram 服务器]
    WH[Webhook 接收层]
    Q[消息队列 Redis Streams]
    W[命令处理 Workers]
    TE[交易引擎]
    WM[钱包管理服务]
    KMS[KMS 密钥服务]
    MD[行情数据]
    PS[价格监控 对止盈止损]
    RPC[RPC 集群]
    DB[(PostgreSQL)]
    CA[(Redis)]

    TG --> WH
    WH --> Q
    Q --> W
    W --> TE
    W --> DB
    W --> CA
    TE --> WM
    WM --> KMS
    TE --> RPC
    MD --> CA
    PS --> MD
    PS --> TE

组件多少:


成本结构(估算)

一个月活 1 万、日交易量 $500 万的 TG Bot 大概的成本:

项目月成本
RPC 服务$5K-$15K
服务器(云)$3K-$8K
Jito Tip 垫付(部分场景)$2K-$10K
监控告警服务$500-$2K
KMS / HSM$500-$2K
团队(核心 3 人)$30K-$60K
总计$40K-$100K/月

收入端:以 1% 手续费计算,日交易量 $500 万 = 手续费 $1500/日 = 月 $45K。

这就是为什么早期很多 TG Bot 活不下来 —— 收入勉强覆盖成本,没利润。

真正赚钱的都是达到规模效应的头部(BONKbot、Trojan、Maestro),日交易量上千万美元级别,才有稳定的利润。


给新手的建议

如果你考虑做一个 Telegram 交易 Bot:

  1. 先想清楚商业模式,不是”技术能做”就”应该做”
  2. 安全放第一位,一次事故毁所有
  3. 做好失败场景,交易失败处理比成功路径重要
  4. RPC 成本会吃掉你,从第一天就要优化
  5. 考虑合规风险,各地监管态度在变

另一个思路:不做整个 Bot,做里面的某个组件。比如:

在已经饱和的赛道直接竞争,不如做水电煤。


系列文章

《Meme 交易平台深挖》系列(共 6 篇):

系列完结。下一个系列可能是《从 Web2 转 Web3 的工程师生存指南》,或者《交易所基建深挖》。

订阅 RSS 或关注 @FrankFu2262 不错过更新。


Share this post on:

Previous Post
从 Web2 转 Web3 后端:一个工程师的生存笔记
Next Post
Jito 到底是什么,为什么每个 Solana 交易平台都离不开它

继续阅读

如果觉得有用

订阅更新,每次发新文章第一时间收到。不发广告、不搞推销。