Validators DAO 发布 Solana Stream SDK v1.1.1 UDP Shreds Rust 客户端
Validators DAO 发布 Solana Stream SDK v1.1.1 UDP Shreds Rust 客户端

由 ELSOUL LABO B.V.(总部:荷兰阿姆斯特丹,CEO:Fumitake Kawasaki)与 Validators DAO 开发和运营的开源 Solana 流客户端 Solana Stream SDK 发布了最新版本 v1.1.1。伴随此次发布,一个直接处理 UDP Shreds——Solana 网络中最快层——的 Rust 入门客户端已全新开源。
本次发布提供了一个具体的实现示例,直接通过 UDP 接收验证者之间交换的 Shreds,无需经过 RPC、WebSocket 或 gRPC 等更高级别的 API 层,并通过最短可能的路径进行重建和检测处理。对于延迟直接转化为价值的用例,这提供了在实际环境中操作最快层的实用起点。
前提:检测时序的差异
在 Solana 上,即使对于相同的链上事件,其可检测的时序也因观察位置的不同而显著不同——无论是从 Shreds、Geyser gRPC 还是 RPC / WebSocket 观察。从检测时序的角度来看,Shreds 最先被观察到,其次是 Geyser gRPC,然后是 RPC / WebSocket。
Shreds 代表组成区块的片段在验证者之间直接交换阶段的数据。Geyser gRPC 在 Shreds 被节点内部接收和整理后,交付区块、日志和账户更新等事件。RPC / WebSocket 处于最高层,通过查询和订阅提供对已存储和整理数据的访问。
为什么 UDP Shreds 构成最快层
Shreds 通过 UDP 传递。UDP 不涉及连接建立、重传控制或排序保证,将协议开销保持在最低限度。因此,在相同条件下,数据到达速度比基于 TCP 的 gRPC 或 WebSocket 更快。
当目标是在 Solana 上实现尽可能快的检测时,UDP Shreds 因这些通信特性和网络设计而必然成为首选。
为什么以 pump.fun 作为示例
Validators DAO 收到了大量关于使用 UDP Shreds 实现最快检测的咨询。其中,最常见的需求是尽快检测 pump.fun 上的代币铸造和早期交易。
对于代币铸造和初始交易,数十毫秒的差异可能实质性地影响结果。因此,pump.fun 是最快层的特性和价值最清楚体现、需求最集中的具体示例。在此次发布中,入门代码包含基于 pump.fun 的检测逻辑作为默认配置,反映了这一实际需求。这并不将用途限制在 pump.fun,而是作为真实重现最快层检测的实用示例。
对有意义的事件做出反应,而非一切
处理 UDP Shreds 时,系统中会流过极大量的交易,其中许多对策略或用户体验决策来说太小而无关紧要。
入门代码采用了允许设置价值阈值的设计,仅对超过该阈值的交易进行检测。此过滤不是通过事后 RPC 检查实施的,而是直接在 Shreds 重建后的评估阶段应用的。阈值是可选的:将其设为 0 可以检测所有交易。用户可以根据特定用例定义要响应多少数据。

上述示例显示了仅检测 pump.fun 相关的代币铸造和金额达到 1 SOL 或以上的交易的日志,展示了在最快层上以高密度仅捕获相关信息的状态。
速度的代价:未确认信息
UDP Shreds 包含区块完全确认之前的信息。因此,可能出现失败的交易,数据可能缺失或乱序到达。这不是缺陷,而是最快层本身的固有属性。
通过在不等待确认或规范化的情况下处理流动的数据,可以比任何其他层更早地检测到变化。此入门代码明确承认这一前提,并展示了一种仅使用 Shreds 而不依赖 RPC 实现检测的实现方式。
为清晰而设计的结构
内部处理组织为清晰的序列:接收 → 缓冲 → 重建 → 评估 → 输出。UDP 接收、FEC 缓冲、反碎片化、监控逻辑和输出等职责被分离并作为独立元素处理。这种设计允许用户最初按原样运行代码,然后逐步修改其用例所需的部分。
资源
GitHub (Solana Stream SDK): https://github.com/ValidatorsDAO/solana-stream
Rust Crate: https://crates.io/crates/solana-stream-sdk
ERPC Website: https://erpc.global/
Validators DAO 官方 Discord: https://discord.gg/C7ZQSrCkYR
关于 Solana Stream SDK v1.1.1 和 UDP Shreds 客户端的问题和反馈欢迎在 Validators DAO 官方 Discord 上交流。


