🛠️ 构建接收端

Raw Shred Stream 通过 UDP 把原始 (raw) Solana shreds 直接交付到您的服务器,进入您自己的接收器。这正是产品的定位:您尽可能贴近线路,并完全掌控数据如何接收、重组和解码。只有一条规则:去分片器/解码器必须经过优化,否则延迟优势会在您这一侧丢失。本页说明您的接收器需要完成什么,以及何时 Decoded Shred Stream 是更合适的选择。

一句话总结 — 原始 shreds 需要一个快速、经过优化的去分片器/解码器来保住延迟优势。如果您完全不想运行解码器,Decoded Shred Stream 交付的交易已完成重组。 需要一个今天就能运行的方案?旧版客户端 shredstream 会替您在客户端完成去分片,但在延迟方面已不再是推荐方案——参见原始 shreds 快速入门


🧩 您需要自己构建的部分

使用原始 shreds,从线路到可用数据的整条管线由您构建 —— 要把 UDP 数据包变成可用的交易,您的接收器需要实现以下每一层:

您需要构建的内容
UDP 套接字 + OS 缓冲区打开、绑定套接字,调优 rmem_max/maxsockbuf,监控丢包
去分片解析 Solana shred 二进制格式(数据 shred 与编码 shred)
去分片 / 重组按索引重排每个 slot 的 shreds,通过 FEC/Merkle 恢复丢失的分片
交易解码从重组后的 payload 解码 Solana 交易
优雅关闭排空套接字、刷新缓冲区、管理接收循环生命周期

这是一项重量级的工程 —— Solana 的 shred 格式、纠删码 (FEC) 和 Merkle 校验都需要您自己实现和维护。


⚡ 彻底跳过解码器:Decoded Shred Stream

如果您不想自己运行这条管线,ShredStream.com 的另一款产品 Decoded Shred Stream 在我们的节点侧完成去分片与交易重组,以 Solana 标准线格式交付完全重建的交易 —— 通过 UDP 或 gRPC,使用 decoded-shredstream 客户端(JavaScript / TypeScript、Python、Rust 和 Go)接收:安装 decoded-shredstream(npm install decoded-shredstream / pip install decoded-shredstream / cargo add decoded-shredstream),或 Go 模块 go get github.com/shredstream/decoded-shredstream-go

Decoded Shred Stream 以亚毫秒级延迟交付,与原始 shred 流几乎一致 —— 您省去的是去分片与解码基础设施,而不是延迟优势。


🎯 如何选择

选择 Raw Shred Stream,如果您:

  • 需要在尽可能贴近线路的层面工作,并愿意自建接收器。
  • 已经维护着一套 Solana shred 接收与解码管线。

改用 Decoded Shred Stream,如果您:

  • 完全不想运行或维护去分片器/解码器。
  • 希望交易到达时已按标准线格式完成重组,直接进入您现有的解析器。

无论哪种情况,底层交付都建立在同一条低延迟 shred 管线之上 —— 选择适合您的层级即可。


➡️ 下一步

构建接收端 — Docs | ShredStream.com