ShredStream
ShredStream provides the lowest latency to shreds from leaders on Solana.
What Is ShredStream?
Shredstream provides the lowest latency shreds to any RPC or validator on the network. This service can save hundreds of milliseconds when trading on Solana and provides a redundant shred path for servers in remote locations.
Who Is ShredStream For?
Traders
Validators
RPC servers and validators with no/low stake
Node operators in areas where internet connectivity to the rest of the cluster is sub-optimal
What are Shreds?
Shreds are fractions of blocks that are made by a block producer on Solana. One can compare shreds to the individual picture frames in a video stream; shreds are constantly being emitted as a validator produces a block to create a block stream. Other nodes on the network receive these shreds and replay them on-the-fly, meaning state is always changing on Solana vs. Ethereum where state is paused intra-slot.
Shreds are distributed to the network in a tree-like manner. This number of hops a shred takes to reach a server is related to a stake-weighted shuffle; servers with high stake are likely to be 0 or 1 hops away while RPC servers are likely to be 1 or 2 hops.
Running a low staked RPC server means shreds sometimes taking multiple hops to reach your server. This results in a higher latency to receive shreds, higher latency to replay, and high latency notifications from Geyser and websockets. Having access to the newest state can result in significant advantages when high frequency trading.
Results
Speedup for Slot Completion (Avg)
Amsterdam: 46ms
Frankfurt: 45ms
NY: 28ms
Tokyo: 25ms
Bandwidth
Shredstream requires 4MiB/s or 32Mbit/s per stream. Streaming from multiple regions is supported.
How Does It Work?
Jito runs multiple Block Engines around the world that receive shreds directly from leaders running Jito-Solana. It also receives retransmitted shreds from these leaders.
The block engines verify these shreds before distributing them to hundreds of servers around the world. Expect the highest quality, lowest latency shreds from validators on Solana.
How Do I Sign Up?
Access to ShredStream is free for a limited time while in alpha testing. Complete this form and we should have you setup within 48 hours. You will get an email once setup is complete. The form enables you to opt in for ShredStream, RPC services and bundle submission whitelisting.
Sign-up form: link
Can ask in our Discord if any questions.
Running ShredStream
Overview
The proxy client will connect to Jito Block Engine and authenticate using the provided keypair. Occasionally it will send a heartbeat to keep shreds flowing. Once a shred is received, it will be distributed to all DEST_IP_PORTS
. We recommend running a proxy instance for each region you have validators/RPCs in.
Preparation
Get your Solana pubic key approved
Ensure your firewall is open.
Default port for incoming shreds is
20000/udp
.NAT connections currently not supported.
If you use a firewall, see the firewall configuration section
Find your TVU port
Run
get_tvu_port.sh
to find your portExample on machine with solana validator:
export LEDGER_DIR=MY_LEDGER_DIR; bash -c "$(curl -fsSL https://raw.githubusercontent.com/jito-labs/shredstream-proxy/master/scripts/get_tvu_port.sh)"
Example on remote machine (port may differ):
export HOST=http://1.2.3.4:8899; bash -c "$(curl -fsSL https://raw.githubusercontent.com/jito-labs/shredstream-proxy/master/scripts/get_tvu_port.sh)"
Run via docker or natively and set the following parameters
BLOCK_ENGINE_URL
: set to the closest region to your validator/RPC nodeDESIRED_REGIONS
: set to regions you want to receive shreds from. Same regions as for Block EngineDEST_IP_PORTS
:IP:Port
combinations to receive shreds onNote: these examples will receive shreds from
amsterdam
andny
, and directly connect tony
region
Running via Docker
View logs with docker logs -f jito-shredstream-proxy
Host Networking
This exposes all ports, bypassing Docker NAT. Recommended setup.
Bridge Networking
For use in places where Docker host
networking is not available. Requires manually exposing each destination. Use docker's bridge IP (172.17.0.1
) for any shred listeners running locally on the docker host. Use regular IP for all other non-local endpoints. Docker's bridge IP may differ for your system, confirm with ip -brief address show dev docker0
.
Running Natively
Firewall Configuration
If you use a firewall, allow access to the following IPs:
Amsterdam
74.118.140.240
202.8.8.174
Frankfurt
145.40.93.84
145.40.93.41
NY
141.98.216.96
64.130.48.56
Tokyo
202.8.9.160
202.8.9.19
Last updated