Shreder Docs
Benchmarking

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 productGeyserBench kindExample URL
Decoded Shreds (ShredStream)shrederhttp://fra1.shreder.xyz:9991
Binary / Preconfsshrederbinaryhttp://fra.binary.shreder.xyz:9991
Geyser gRPC / Fastlaneyellowstonehttp://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
  1. Edit config.toml with accounts, endpoints, and tokens.
  2. Use --private to keep results local:
./target/release/geyserbench --private
# or
./target/release/geyserbench --config ./config.toml --private

Configuration

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

FieldDescription
config.transactionsHow many signatures to evaluate
config.accountPubkey monitored for transactions
config.commitmentprocessed | confirmed | finalized
[[endpoint]].nameLabel in the results table
[[endpoint]].urlEndpoint URL
[[endpoint]].kindSee mapping above
x_tokenOptional auth token per endpoint

CLI options

FlagDescription
--config <PATH>Config file (default config.toml)
--privateKeep results local; skip streaming backend
-h, --helpUsage

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

Repo: github.com/shrederxyz/geyserbench

On this page