Solana Shreds 的传输路径解析:UDP 直发与 gRPC 订阅如何取舍
2026/8/23 21:50:17 网站建设 项目流程

在 Solana 的实时处理中,决定数据到达时间的往往不是单台服务器的规格,而是从数据产生到抵达应用程序为止的整条传输路径。本文从传输路径的角度,梳理 Shreds 的两种获取方式(UDP 直发与 gRPC 订阅)各自适合的场景,以及把"传输本身"作为服务单位所带来的结构差异。

Shreds 与传输路径

Shreds 是 Solana 在区块最终形成之前,于网络中传播的分片数据。对于需要尽可能早获取链上状态的应用而言,Shreds 是比区块更早的一层数据源。

正因为它的价值在于"早",所以传输路径上的每一层处理都会直接抵消这份优势。网络距离、跳数、转发处理、抖动,以及传输途中存在的任何处理层,都会体现在实际的到达时间上。

换句话说,Shreds 的工程问题不是"如何更快地计算",而是"如何更短地传输"。

UDP 直发与 gRPC 订阅的取舍

获取 Shreds 主要有两条路径。

gRPC 订阅:基于 HTTP/2 与 TCP。具备连接管理、重传与顺序保证,稳定性高,接入方式也符合大多数服务端框架的既有习惯。代价是连接建立与错误处理带来的额外开销。

UDP 直发:无连接。数据从传输端直接发往接收端指定的 IP:port,不做重传与顺序保证。丢包由应用层自行处理,换来的是更短的处理链路与更低的抖动。

两者并非替代关系,而是取舍关系:

  • 以最低延迟为最优先的场景 → UDP
  • 以现有 gRPC 接口进行流订阅、看重稳定性的场景 → Shredstream gRPC

ERPC 在这两条路径上都会持续提供服务。此次产品线调整中终止的是专用型 Shredstream 产品(以及 Stream Bundle),2026 年 9 月 5 日之后不再提供;而通过 gRPC 接收 Shreds 的既有产品不受影响。

端到端路径:延迟由哪些部分构成

把 Solana 网络到应用程序之间视为一个整体系统时,影响到达时间的要素大致可以拆成以下几层:

  • 邻近性:与 Solana 网络的物理与网络距离
  • 数据中心与网络路径:跳数、对等互联质量、拥塞状况
  • 服务器硬件与 NIC:中断处理、队列、卸载能力
  • OS 与内核:网络栈配置、调度、缓冲区
  • 最终传输方式:数据以何种协议、经过多少中间层交付给用户

只优化其中一层,收益通常会被其他层吃掉。高速 CPU 与 NIC 无法弥补物理距离带来的传输时间;同样,路径再短,若最终交付环节多了一层代理或转换,抖动也会随之增加。

Shredstream gRPC 与 Geyser gRPC 的分工

两者都使用 gRPC,但传输的数据与用途不同,实践中经常被混为一谈。

Shredstream:面向 Shreds 的数据源,目的是在尽可能早的阶段获取分片数据。适合对"时间点"敏感的应用。

Yellowstone Geyser gRPC:以实时流的形式订阅 validator 已处理完成的交易、账户、区块等数据。数据结构完整、语义明确,适合需要可直接消费的结构化数据的场景。

选型时的判断标准并不是"哪个更快",而是"需要的是更早的原始数据,还是已处理完成的结构化数据"。

把"传输本身"作为服务单位

传统做法是把专用服务器或专用端点作为产品单位:用户购买的是一套环境,传输是这套环境附带的能力。

这种结构在工程上有一个副作用——优化的对象变成了"环境",而用户真正需要的是"数据更快到达"。两者并不总是一致。

因此新的做法是把传输路径本身作为服务单位:由传输端直接把 Shreds 通过 UDP 发往用户指定的 IP:port,中间不再保留以"环境"为单位的抽象层。路径变短,可控的变量也随之减少。

ERPC 计划于 2026 年 9 月提供的 UDP Shreds Forwarding 采用的正是这一结构。

小结

  • Shreds 的价值在于"早",因此传输路径上的每一层处理都值得单独评估
  • UDP 与 gRPC 是取舍关系:前者压缩延迟与抖动,后者提供稳定性与既有接口兼容
  • Shredstream 与 Geyser gRPC 的区别在于数据阶段(原始分片 vs 已处理结构化数据),而非速度
  • 端到端延迟由邻近性、网络路径、硬件、内核与最终交付方式共同决定,单点优化收益有限
  • 把传输本身作为服务单位,可以减少路径上的抽象层,使延迟更可控

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询