Streaming products
Benchmark Geyser gRPC / Fastlane, Decoded Shreds, Binary, and related feeds with GeyserBench
Use GeyserBench to benchmark Solana gRPC-compatible feeds from your own environment — including Shreder Geyser gRPC / Fastlane, Decoded Shreds, Binary, and Preconfs.
It compares multiple endpoints side by side: first-detection share, latency percentiles (P50/P95/P99), valid transaction counts, and backfill events.
For Raw Shreds (UDP packets), use solana-shred-perf instead.
Product → kind mapping
| Shreder product | GeyserBench kind | Example URL |
|---|---|---|
| Decoded Shreds (ShredStream) | shreder | http://fra1.shreder.xyz:9991 |
| Binary / Preconfs | shrederbinary | http://fra.binary.shreder.xyz:9991 |
| Geyser gRPC / Fastlane | yellowstone | http://fra.fastlane.shreder.xyz:10000 |
Other supported kind values in GeyserBench: yellowstone, arpc, thor, shredstream, shrederbinary, shreder, jetstream. x_token is optional.
Quick start
git clone https://github.com/shrederxyz/geyserbench.git
cd geyserbench
cargo build --release
# First run scaffolds config.toml in the current directory
./target/release/geyserbench- Edit
config.tomlwith accounts, endpoints, and tokens. - Use
--privateto keep results local:
./target/release/geyserbench --private
# or
./target/release/geyserbench --config ./config.toml --privateConfiguration
geyserbench reads a TOML file:
[config]
transactions = 10000
account = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"
commitment = "processed" # processed | confirmed | finalized
[[endpoint]]
name = "Jito Shredstream"
url = "http://localhost:10000"
kind = "shredstream"
[[endpoint]]
name = "Shreder FRA"
url = "http://fra1.shreder.xyz:9991"
kind = "shreder"
[[endpoint]]
name = "Shreder Binary FRA"
url = "http://fra.binary.shreder.xyz:9991"
kind = "shrederbinary"
[[endpoint]]
name = "Shreder Fastlane FRA"
url = "http://fra.fastlane.shreder.xyz:10000"
kind = "yellowstone"Fields
| Field | Description |
|---|---|
config.transactions | How many signatures to evaluate |
config.account | Pubkey monitored for transactions |
config.commitment | processed | confirmed | finalized |
[[endpoint]].name | Label in the results table |
[[endpoint]].url | Endpoint URL |
[[endpoint]].kind | See mapping above |
x_token | Optional auth token per endpoint |
CLI options
| Flag | Description |
|---|---|
--config <PATH> | Config file (default config.toml) |
--private | Keep results local; skip streaming backend |
-h, --help | Usage |
Streaming to https://runs.solstack.app is enabled by default for standard-sized runs. Opt out with --private.
Fair comparison tips
Align region, commitment, monitored account/filters, and client hardware. Misaligned setups usually explain more variance than the transport itself.
Public Shreder comparisons: shreder.xyz/benchmarks