# 致勝關鍵: 低延遲Shred

> 本文以Sniper Bot為例，介紹通過低延遲Shred提升業務表現的最佳實踐。

Source: https://blockrazor.io/zh/blog/20250815shred/  
Updated: 2025-08-15  
Author: BlockRazor  
Language: zh-Hant

---

![低延遲 Solana Shred Stream 架構與應用場景](/blogs/images/20250815shredcover.png)

## Shred是什麼

Shred 是 Solana 分割、傳輸和處理區塊數據的基本單位。Solana 通過將區塊數據分片為Shred並結合Turbine廣播，使數據傳輸效率得以顯著提高。Shred的整體數據結構如下圖所示

![Solana Shred 中 Payload 與 Header 的結構](/blogs/images/20250815shred.png)

可以看到，Shred主要分為Payload和Header和兩部分。

Payload承擔數據存儲的作用，分為data shred和code shred。

- data shred: 包含區塊的實際賬本條目（entries），每個條目包含一組交易。
- code shred: 包含基於Reed-Solomon糾刪碼生成的冗餘數據，用於恢復丟失的數據分片，以應對網絡丟包或惡意行為。

Header包含shred的基本標識和驗證信息。其中slot和index用於共同標識shred在所屬slot中的位置序號，fec_set_index用於標識shred屬於哪個糾刪碼集合，以便Solana將屬於同一個糾刪碼集合的data shred和code shred組織在一起，用於數據恢復。

## Shred有什麼用

**區塊重組**：Validator節點、RPC節點和普通的Solana節點，都需要接收Shred用於重組區塊、更新節點狀態。對於Validator而言，低延遲接收Shred傳輸意味著投票交易可以被及時發出，從而提高投票積分獲得高比例的質押獎勵；對於RPC 節點而言，低延遲接收Shred可以在第一時間重組區塊，幫助dApp在第一時間查詢到最新的鏈上數據。

**信號捕捉**：Sniping Bot和Copy Trading Bot可利用Shred捕捉交易信號，低延遲Shred可以幫助Bot相比競爭對手更早地捕捉到交易信號，通過贏得先發優勢提升勝率。

**交易分析**：對於DEX項目方而言，Shred可以幫助項目方判斷交易上鏈結果，繪製幣對的價格K線等。低延遲接收shred意味著上述操作可以低延遲完成，從而為用戶打造極致的交易體驗。

根據上述分析，雖然不同用戶使用Shred的場景存在差異，但低延遲在所有應用場景中都是剛性需求。

## 如何讓低延遲Shred成為致勝關鍵

本文以Sniper Bot為例，介紹通過低延遲Shred提升業務表現的最佳實踐。

Sniper Bot 是一種快速"狙擊"新上市代幣（通常是 meme 幣）的自動化交易程序。它們通過監控去中心化交易所（如 Raydium 或 Pump.fun）的新流動性池，在代幣價格上漲前搶先買入，追求高頻交易利潤。

通常監控新流動性池的激活交易是基於WebSocket訂閱Solana RPC節點的JSON-RPC方法，但其缺點是只能訂閱到區塊重組後的數據，延遲較高。而採用實時訂閱Validator在區塊重組過程中拋出的Shred再將其解析為業務所需數據的方案，則可以顯著降低延遲。

### **步驟1：確定低延遲Shred源**

**Validator節點**: 高質押的Validator節點可以在Turbine上層以低跳數轉發Shred

**Jito Block Engine**: 可轉發Jito Validator節點客戶端(Jito-Solana)拋出的Shred

**Shred服務**: 目前市場上有多家提供Shred服務的供應商，我們即將公開shred測評方法與結論供參考

### **步驟2：低延遲接收Shred**

建議部署shredstream-proxy低延遲接收Shred。shredstream-proxy是Jito Labs 提供的Shred訂閱代理服務，可接收基於UDP協議的原生Shred流。shredstream-proxy分為兩種模式：

- Shredstream模式：主動連接模式，代理會主動連接到Jito Block Engine來獲取Shred，但需要認證密鑰對來與Jito服務通信同時通過心跳機制維護與Block Engine的連接。
- ForwardOnly模式：被動監聽模式，代理只是簡單地轉發接收到的任何數據包，不需要與Jito服務交互，可以監聽指定的低延遲Shred源。

shredstream-proxy支持接收多渠道的原生Shred，在ForwardOnly模式下，shredstream-proxy通過多個UDP socket實現多源數據接收（每個UDP socket獨立接收數據包），同時支持按源IP地址跟蹤數據包統計。圖示如下：

![通過 shredstream-proxy 接收原始 Solana Shred 的流程](/blogs/images/20250815shred1.png)

需要注意，為降低shredstream-proxy和Shred源間的傳輸延遲，請盡量將shredstream-proxy部署於靠近Shred源的地理位置。目前法蘭克福、阿姆斯特丹、東京和紐約是Shred源相對集中的地區。

### **步驟3：快速解析Shred**

在低延遲接收Shred後，需將Shred快速解析為契合業務場景需求的數據。Sniper Bot的目標是獲取新流動性池的激活交易，因此只需將Shred解析為交易即可，目前有兩種方式：

**shredstream-proxy**

shredstream-proxy提供可選的gRPC重構服務，支持將原生Shred重構為entry。Sniper Bot將entry反序列化為交易後即可捕捉新流動性池激活交易，圖示如下：

![通過 gRPC 服務重組 Solana Shred 的流程](/blogs/images/20250815shred2.png)

**三方開源工具**

Sniper Bot在業務工程中集成三方開源工具，比如☞ *[https://github.com/BlockRazorinc/shreds-subscribe.git](https://github.com/BlockRazorinc/shreds-subscribe.git)* 和 ☞ *[https://github.com/dyodx/unshred](https://github.com/dyodx/unshred)*，更為輕量地將接收到的Shred解析為交易，圖示如下：

![Sniper Bot 集成開源 Shred 解析工具的方式](/blogs/images/20250815shred3.png)

上述兩種方式可以基本滿足Sniper Bot的業務訴求，而對於完整區塊數據有訴求的業務場景，需要在本地服務器部署Solana節點，同時集成Yellowstone插件。

Yellowstone 是 Solana 生態系統中一個開源的 gRPC 協議，基於Solana節點Geyser插件封裝，提供標準化的Solana區塊數據流式訪問。Yellowstone推出的數據包含account、transaction、slot、block metadata和entry等，相比直接解析原生Shred得到的數據更為完整。

作為開源項目，Sniper Bot可直接選擇訂閱市場上公開的Yellowstone gRPC服務，如需本地部署則方案圖示如下：

![Sniper Bot 使用 Solana 節點與 Yellowstone gRPC 的數據流](/blogs/images/20250815shred4.png)

如上圖，Sniper Bot可在本地部署集成Yellowstone插件的Solana節點，開放TVU端口低延遲接收Shred並重組區塊。Yellowstone接收節點在重組區塊過程中拋出的數據，將數據經gRPC服務處理後以gRPC Stream的形式實時推送給客戶端。

Yellowstone提供多語言的客戶端庫來簡化對接過程，包括Rust、Node.js和TypeScript等，Sniper Bot將客戶端庫導入業務的工程代碼中，在創建客戶端實例並連接到gRPC服務器後即可接收到gRPC流。

## 總結

低延遲Shred是區塊重組、交易信號捕捉和交易分析等應用場景中的剛性需求，充分利用低延Shred可以提升業務表現，在競爭中贏得先機，成為致勝關鍵。

相比傳統的Websocket訂閱，本文以Sniper Bot為例，介紹通過低延遲Shred提升業務表現的最佳實踐，用戶可綜合根據業務場景、數據需求和集成便利性等對最佳實踐進行自由裁剪和組合，形成最適合自己的方案。