Skip to main content
交易监控让您能够实时跟踪Solana上的交易执行、成功/失败状态、程序交互和代币余额变化。本指南涵盖过滤策略和使用helius-laserstream SDK的实际实现。
**先决条件:**本指南假定您已完成LaserStream gRPC 快速入门并拥有API密钥。

交易过滤选项

LaserStream 使用与 Yellowstone gRPC 相同的过滤器形状,包括 tokenAccounts (ATA 扩展) 过滤器。您将在 transactions.<label> 内设置的字段:
  • accountInclude — 当这些账户中的任意一个出现时匹配(逻辑 OR)
  • accountRequired — 仅当所有这些账户都出现时匹配(逻辑 AND)
  • accountExclude — 当这些账户中的任意一个出现时丢弃
  • vote / failed — 分别用于投票交易和失败交易的布尔标志
  • tokenAccounts — 选择启用关联代币账户 (ATA) 扩展("balanceChanged"、"all" 或 "none"),使 accountInclude 中的钱包也能匹配该钱包拥有 SPL 代币余额的交易。请参阅代币账户 (ATA) 过滤以及下方的 Watching a Wallet 选项卡。
  • matchMints — 选择启用的标志,还会将账户列表与交易前后代币余额中的铸币地址进行匹配。因此,accountInclude 中的铸币地址可以捕获该代币的每笔转账、兑换、铸造和销毁交易。请参阅代币铸币地址过滤以及下方的 Watching a Token 选项卡。
监控涉及特定程序的交易跟踪所有接触您关心的程序的交易:
最佳用于: 程序特定监控、DeFi 协议跟踪、智能合约交互。

实用示例

示例 1:监控 DEX 交易

跟踪涉及热门 DEX 程序的交易:

示例 2:监控失败交易

跟踪失败交易以发现应用程序问题:

示例 3:监控高价值交易

跟踪包含大额 SOL 转账的交易:

示例 4:监控钱包(包括代币转账)

通过向普通的 accountInclude 过滤器添加 tokenAccounts,监控某个钱包涉及资金变动的所有交易,包括涉及其 ATA 的传入 SPL 代币转账:

交易数据结构


过滤逻辑参考

Include Logic (OR)

accountInclude: 交易必须涉及这些账户中的任意一个。["A", "B"] 匹配涉及账户 A 或账户 B 的交易。

Required Logic (AND)

accountRequired: 交易必须涉及所有这些账户。["A", "B"] 匹配同时涉及账户 A 和账户 B 的交易。

Exclude Logic (NOT)

accountExclude: 交易不得涉及这些账户中的任何一个。

Combined Logic

最终过滤器:(accountInclude OR empty) AND (accountRequired AND all) AND NOT (accountExclude OR any)。

性能注意事项

交易流的数据量可能很大。要跟上处理速度:
  • 从特定的程序过滤器开始(不要订阅“所有交易”)
  • 如果可以接受约 1.5 秒的额外延迟,请使用 confirmed 而不是 processed
  • 使用计数器监控处理能力
  • 考虑在队列后运行并行消费者

错误处理

症状: 交易量过大。解决方案: 添加更严格的过滤器(accountRequired、accountExclude);使用更高的确认级别;实现采样或速率限制;进行异步处理。
症状: 预期的交易未出现。解决方案: 验证程序地址是否正确;检查交易是否确实存在;尝试使用 processed 以更快获取更新;放宽限制严格的 accountRequired/accountExclude 过滤器。
症状: 无法解析交易数据。解决方案: 妥善处理缺失字段;处理前验证结构;使用 try/catch 封装解析逻辑;请参阅解码交易数据。

后续步骤

Slot & Block Monitoring

跟踪网络共识和区块生成。

Stream Pump AMM Data

实际示例:监控 Pump.fun AMM 交易。

Decoding Transaction Data

将二进制交易有效载荷解析为可读的 Solana 交易。

Yellowstone protocol reference

针对原始 Yellowstone gRPC 协议执行相同的工作流。