常见问题 - Direct Shreds

问:我的 Shreds / getBlock 输出突然乱了,或者返回 -32015,发生了什么变化?

Solana Transaction v1(SIMD-0385)已于 2026 年 9 月 15 日在 Solana 主网上线,对应 epoch 1035。v1 交易的 wire 布局以版本前缀字节 0x81 开头,签名位于消息之后,并且不再有 legacy 的长度前缀。
如果你自行解码 ShredStream、Direct Shreds 或 UDP Forwarding 的 entry,低于 4.2 版本的 bincode 或 solana-entry 解码器会把这个 0x81 字节误读为签名数量,表现为 EOF 错误、compact-length 溢出,或 "invalid message version" 错误。使用 4.2 之前的 crate 反序列化原始交易的 Geyser gRPC 用户也会遇到同样的问题。以 maxSupportedTransactionVersion: 0 调用 getBlock 和 getTransaction 时,RPC 会返回 -32015 Transaction version (1) is not supported by the requesting client;getTransactionsForAddress 在 full 模式下会对每一条受影响的记录报告同样的错误。如果你已经在读取 ERPC 解析后的 JSON 响应并设置了 version 1,则不受影响。
在 options 对象中把 maxSupportedTransactionVersion 设为 1,也就是 getBlock 和 getTransaction 的第二个参数,以及 getTransactionsForAddress 的 options:
json
{
  "maxSupportedTransactionVersion": 1
}
将 Solana Stream SDK 升级到 2.0.0:crates.io 上的 Rust solana-stream-sdk,或 npm 上的 @validators-dao/solana-stream-sdk 和 @validators-dao/solana-shreds-client。@validators-dao/solana-entry-decoder 需单独升级到 2.5.0。1.4.0 和 entry-decoder 2.4.0 不支持 v1。自行编写的 Rust 解码器应迁移到 solana-entry 4.2.x。

问:你们的节点位于哪些区域?

我们目前在以下区域运营节点:
  • 法兰克福(FRA)
  • 阿姆斯特丹(AMS)
  • 伦敦(LON)
  • 都柏林(DUB)
  • 纽约(NY)
  • 芝加哥(CHI)
  • 盐湖城(SLC)
  • 东京(TY)
  • 新加坡(SGP)
  • 悉尼(SYD)
ERPC 基于实际路由路径测量网络延迟,自动选择延迟最低的区域,而不是依赖直线距离。
如果您的环境未能自动选择最优区域,请在 ERPC Web 仪表盘中联系我们。

问:延迟显示 9999ms 且选择了非最优区域。该怎么办?

在选择 Shreds 区域时,ERPC 会从下列代理主机向您已注册的 IP 发送 ICMP 延迟探测。请允许来自所有列出的源 IP 的入站 ICMP 回显请求。如果这些请求被防火墙(ufw、云防火墙、安全组等)阻止,测量结果可能变为 9999ms,并可能选择非最优区域。同一区域中的多个 IP 分别属于不同的探测主机,必须全部允许。
区域ICMP 源 IP
🇳🇱 Amsterdam64.130.43.108, 82.21.43.35
🇺🇸 New York151.243.244.162
🇩🇪 Frankfurt64.130.41.236, 151.241.178.73
🇯🇵 Tokyo143.20.238.88
🇸🇬 Singapore67.209.55.19, 151.245.186.3
🇬🇧 London64.130.63.211, 151.241.65.10

已选择 Far Point

Shared Shreds 的 Far Point 是容量有限的回退选项。每个端点为所有客户提供的并发代理流总数最多为 32 条,而不是每位客户各有 32 个名额。订阅端运行在所选 Shreds 端点附近时,流式传输效果最佳;长距离流会更长时间占用共享连接、流量控制窗口和出口容量。为帮助保持共享环境的响应能力,请允许所有列出的区域 ICMP 探测源 IP 地址,并重新运行区域选择。如需持续使用,请考虑在所选端点附近使用 ERPC VPS。如果需要其他地理位置,请在初始配置期间选择一个可用区域,并将有效且非空的公共 IPv4 地址和端口配置为目标。配置完成后,所选区域保持固定,目标稍后可以更新。

问:我已经将 IP 加入白名单,但仍然无法连接。应该检查什么?

ERPC gRPC 和 Shreds 端点使用受 IP 白名单保护的普通 HTTP 80 端口,不使用 443 端口的 HTTPS/TLS。
如果您复制其他服务商的客户端示例,它可能默认使用 :443 或 HTTPS。只替换域名时,端口和 TLS 设置可能仍然保留,从而导致连接失败。
以下端点仅为示例。请替换为 dashboard 中显示的您自己的端点。请使用 HTTP 形式;如果客户端要求填写 host 和 port,请明确使用 80 端口:
  • 不可用:shreds-fra6-1.erpc.global:443
  • 可用:shreds-fra6-1.erpc.global:80
  • 可用 URL 形式:http://shreds-fra6-1.erpc.global
认证基于您已注册的 IP 地址。除非特定产品页面明确要求,否则 ERPC gRPC 或 Shreds 端点不需要添加 x-token、token 或 Authorization header。

问:我以前只用过 WebSocket 或 Geyser gRPC(YellowStone)。你们有示例吗?

有。您可以使用 SLV 快速开始测试 Shreds 连接和应用程序开发。
请参阅以下指南了解详情:

问:我可以注册两个 IP 地址吗?

每个订阅可以使用一个端点。如果您希望使用两个 IP 地址,必须订阅两个独立的订阅。

问:推荐哪个区域?

没有一个永远最好的区域。Solana 是全球网络,leader 角色随着 slot 的推进在 validator 之间轮换。验证者数量和质押量较多的区域中,leader slots 出现的频率更高,交易落地更具优势。但相应地,竞争流量也会同步集中,因此根据您的策略,竞争相对较少的区域有时反而能取得更好的效果。
基本原则是:以稳定的 leader slots 供给为优先时,选择验证者集中的区域,例如法兰克福或美国东海岸;以面向特定 target validator 的最短路径执行为优先时,选择目标附近的区域。请使用 Validators Solutions 了解 Solana 网络的公开分布,然后结合 ERPC Leader Slot API 和实际测量判断单区域、双区域或全球部署是否合适。
Solana Mainnet Distribution Report

问:我需要至少约 400ms 或更好的延迟。

要实现约 400ms 以内的延迟,请考虑以下要点:
  • 对 Ping 值的现实理解:Ping 值不反映流通信中的实际延迟。必须在同一区域内建立基础设施。
    • 典型 Ping 值参考:同一网络 ~0.1ms、同一数据中心 ~0.3ms、同一城市 ~1ms、邻国 ~5-10ms、跨洲 ~100-300ms
  • 避免平均延迟的陷阱:精确跟踪特定区域的验证者调度。
  • 跟踪 Leader 调度:使用 ERPC Leader Slot API(getLeaderSlots)。
Validators Solutions - Solana 网络数据
Solana 网络数据:Validators Solutions

问:如何实现零区块(零 slot)交易?

  • 识别机会区域:监控 Leader 调度。使用 ERPC Leader Slot API(getLeaderSlots)。
  • 部署专用节点:共享节点由于其他用户的流量会产生延迟。

问:我可以使用特定端点吗?

为了维护低延迟环境,我们的系统会自动选择最近的可用节点。如果您希望使用特定端点,我们建议租用距离该端点最近的服务器。

问:为什么专用端点更快?

共享端点由多个客户共同使用相同的资源。使用专用端点时您是资源的唯一用户。此外,专用端点提供无 TLS 的通信选项。

问:签约后促销价会被上调吗?

在订阅有效期内,您签约时锁定的促销价将保持不变。能够承担 Solana 实时工作负载的运行环境在全球范围内都很稀缺,我们计划随着硬件和网络需求的持续增长,分阶段上调标准价格。高规格配置和需求集中的区域库存会更快售罄,因此以当前促销价锁定订阅是长期控制成本最有利的选择。

问:我想用加密货币支付

当注册账单地址的国家/地区属于 欧盟成员国时,即可在 ERPC Web Dashboard 中使用加密货币支付。您可以使用 SOL、USDC 或 EURC 购买 ERPC Credits。
这些 ERPC Credits 可用于启用或续用 ERPC 计划。打开 dashboard,选择 crypto payment,从您的 wallet 发送转账,dashboard 会验证交易并将 credits 添加到您的 account。
支持国家/地区:爱尔兰、爱沙尼亚、奥地利、保加利亚、比利时、波兰、丹麦、德国、法国、芬兰、荷兰、捷克、克罗地亚、拉脱维亚、立陶宛、卢森堡、罗马尼亚、马耳他、葡萄牙、瑞典、塞浦路斯、斯洛伐克、斯洛文尼亚、西班牙、希腊、匈牙利、意大利。
如果您的国家/地区不在列表中,请使用信用卡付款。

问:为什么 ShredStream 不包含所有交易?

按设计,Shreds 不包含 Solana 区块链上的每一笔交易。监控所有交易需要在全球部署大量代理并从每个验证者接收 Shreds,这在实践中不可行。
通常,用户使用可用数据的子集进行操作,因为这种方法对于大多数实际应用已经足够。如果您的使用场景需要完整的数据覆盖而不能有任何遗漏,Shreds 可能不适合。
对于需要更全面监控的场景,Geyser gRPC 提供比 Shreds 更高的可靠性。Geyser gRPC 提供超过 99% 的可靠性,而 Shreds 通常提供超过 90% 的可靠性。
虽然它们不能捕获每一笔交易,但其关键优势在于能够比 Geyser gRPC 更快地检索大多数交易。
如需更深入了解,我们推荐探索 Solana 的 Turbine 和 Gulf Stream 协议:

问:我想要最好的环境。

对于 UDP Forwarding Standard,请在初始配置时选择一个可用区域,并将有效且非空的公共 IPv4 地址和端口配置为目标。设置完成后,所选区域保持固定,但目标之后可以更新。
请在 ERPC Web 仪表盘中联系我们。

问:延迟是怎样的?

延迟因测量方法和使用环境而异。
我们提供易于使用的 TypeScript 和 Rust 延迟测量工具。

问:这个 RPC(gRPC、Shreds)比其他的快吗?

我们在每个价格档位都以速度为设计目标,欢迎您把我们与任何其他供应商放在同等条件下比较。结果会随区域、使用共享端点或专用端点、所用协议(WebSocket、gRPC 或 Shreds)以及客户端的编程语言而变化。
如果您发现我们的服务更慢,请通过 ERPC Web 仪表盘 告诉我们。

问:哪个计划提供最快的性能?

通常,我们最高级别的计划提供最快的性能。

问:我遇到了高延迟。为什么?

延迟随着与端点距离的增加而显著增加。最快的环境可通过我们的裸金属服务器和 VPS 服务获得。

问:WebSocket、gRPC 和 Shreds 哪个最快?

根据客户反馈:
Shreds > gRPC > WebSocket

问:延迟不如预期。

性能因编程语言而异:
Rust > Go > TypeScript (JavaScript) > Python
我们强烈推荐使用 Rust。