隆重推出 RabbitStream:使用 Shyft gRPC 检测未经确认(预处理)的 Solana 交易

  • Shyft_to
  • 发布于 2025-11-26 19:14
  • 阅读 9

RabbitStream 是一个可以从 Solana shreds 中直接读取交易数据的服务,它使用 Yellowstone gRPC 过滤提供实时 Solana 交易数据,速度比 Yellowstone gRPC 快 30-100ms,主要用于 token sniping, MEV 检测,以及 Solana 上的高频交易。

介绍 RabbitStream:使用 Shyft gRPC 检测未确认(预处理)的 Solana 交易

通过 gRPC 过滤器,直接从 Shreds 流式传输预处理过的 Solana 交易。

Rabbitstream 标题封面

“速度在 Solana 上至关重要。”⚡

无论你是构建狙击机器人、MEV 搜索器还是高频交易系统,你都已经知道最快的数据来自 shreds。

这些原始 shreds 由验证器广播,甚至在执行发生之前 —— 让你可以无过滤地访问网络上的每笔交易。

🤯 但问题是:原始 Shreds 简直是一场噩梦。

你可以获得网络上的每笔交易。未经过滤。二进制编码。缺少执行元数据。而且你需要自定义解码逻辑才能理解这一切

🐰 RabbitStream 解决了这个问题!

RabbitStream 以 shred 速度提供实时的 Solana 交易数据,并具有 Yellowstone gRPC 过滤功能。非常适合在 Solana 上进行 token 狙击、MEV 检测和高频交易。

什么是 RabbitStream?

RabbitStream = Shreds 的卓越速度 + gRPC 的易用性

RabbitStream 直接从 Solana shreds 流式传输交易,但以相同的结构化格式交付它们,例如 Yellowstone gRPC。

相同的过滤器。相同的订阅格式。仅快 30–100 毫秒⚡

RabbitStream Diagram

通过 gRPC 过滤获得 shred 速度的数据。无需原始 shred 解析。

为什么我们构建它?

Solana 分阶段处理交易:

  1. Shredding —— 验证器接收交易并广播 shreds
  2. 执行 —— 交易运行,生成日志和元数据
  3. Geyser —— 标准 gRPC 提取完全处理的数据
  • 标准 gRPC 在 Geyser 阶段(最后一个)提取信息。你会获得完整的数据,但需要等待更长的时间。
  • 但是 RabbitStream 在 Shredding 阶段本身提取信息。你可以更快地获得数据,但没有执行日志和内部指令。

它有什么不同

  • 使用你现有的代码 与 Yellowstone gRPC 相同的 SubscribeRequest 格式。按帐户、程序或交易类型进行过滤。切换端点并保留你的代码。
  • 结构化交易 无需二进制解码。你会获得熟悉格式的签名、帐户密钥、指令和基本元数据。
  • 快 30–100 毫秒 我们使用 Pump.fun token 检测器对 RabbitStream 与标准 Yellowstone gRPC 进行了基准测试。在所有测试中都具有一致的速度优势。查看基准代码 →
  • 直接来自 Leaders Shreds 直接来自多个区域的 Solana 验证器。没有中继延迟。

何时使用 RabbitStream?

在以下情况下使用 RabbitStream:

  • 你正在狙击 token 上市(Pump.fun、Raydium、Orca)
  • 你正在检测 MEV 或套利机会
  • 你需要最快的交易警报

在以下情况下使用 gRPC:

  • 你需要交易日志和内部指令
  • 你需要执行结果和错误详细信息
  • 数据完整性比速度更重要

快速开始

这是一个基本的 Pump.fun 代码:

import "dotenv/config";

import Client, {
  CommitmentLevel,
  SubscribeRequest,
  SubscribeRequestAccountsDataSlice,
} from "@triton-one/yellowstone-grpc";

const client = new Client(
  "https://rabbitstream.ams.shyft.to/",
  process.env.X_TOKEN,
  undefined
);

const req: SubscribeRequest = {
  accounts: {},
  slots: {},
  transactions: {
    pumpFun: {
      vote: false,
      failed: false,
      signature: undefined,
      accountInclude: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"],
      accountExclude: [],
      accountRequired: [],
    },
  },
  transactionsStatus: {},
  entry: {},
  blocks: {},
  blocksMeta: {},
  accountsDataSlice: [] as SubscribeRequestAccountsDataSlice[],
  ping: undefined,
  commitment: CommitmentLevel.PROCESSED,
};

async function handleStream(client: Client, args: SubscribeRequest) {
  // Subscribe for events
  console.log(`Subscribing and starting stream...`);
  const stream = await client.subscribe();

  // Create `error` / `end` handler
  const streamClosed = new Promise<void>((resolve, reject) => {
    stream.on("error", (error) => {
      console.log("ERROR", error);
      reject(error);
      stream.end();
    });
    stream.on("end", () => {
      resolve();
    });
    stream.on("close", () => {
      resolve();
    });
  });

  // Handle updates
  stream.on("data", (data) => {
    console.log("Received data....");
    console.dir(data, { depth: null });
  });

  // Send subscribe request
  await new Promise<void>((resolve, reject) => {
    stream.write(args, (err: any) => {
      if (err === null || err === undefined) {
        resolve();
      } else {
        reject(err);
      }
    });
  }).catch((reason) => {
    console.error(reason);
    throw reason;
  });

  await streamClosed;
}

async function subscribeCommand(client: Client, args: SubscribeRequest) {
  while (true) {
    try {
      await handleStream(client, args);
    } catch (error) {
      console.error("Stream error, restarting in 1 second...", error);
      await new Promise((resolve) => setTimeout(resolve, 1000));
    }
  }
}

subscribeCommand(client, req);

就是这样。与 Yellowstone 相同的过滤,只是更快!

🛠️正在寻找更多技术细节?

了解速度差异、响应结构或查看更多示例?

👉立即试用 RabbitStream

(附注 — RabbitStream 已对所有 Shyft 用户🔴上线)

阅读文档 →

在 Rabbitstream 上了解更多 →

  • 原文链接: blogs.shyft.to/introduci...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Shyft_to
Shyft_to
在 Solana上更快更智能地构建,使用Shyft的SuperIndexer、gRPC、RPC、API和SDK