solana snapshot finder and downloader
cargo b -rbasic usage (downloads to current directory):
./target/release/snapshotxspecify download location:
./target/release/snapshotx --snapshot_path /path/to/ledger# use custom rpc endpoint
./target/release/snapshotx -r https://api.mainnet-beta.solana.com
# set max snapshot age (in slots)
./target/release/snapshotx --max_snapshot_age 2000
# set minimum download speed (MB/s)
./target/release/snapshotx --min_download_speed 100
# limit max download speed (MB/s)
./target/release/snapshotx --max_download_speed 200
# set max latency (milliseconds)
./target/release/snapshotx --max_latency 150
# include private rpc nodes (slower but more options)
./target/release/snapshotx --with_private_rpc
# filter by specific version
./target/release/snapshotx --version 2.3.8
# filter by major/minor version
./target/release/snapshotx --wildcard_version 2.0
# adjust concurrent threads
./target/release/snapshotx -t 500
# enable verbose logging
./target/release/snapshotx -vexclude specific ips:
./target/release/snapshotx -i 1.2.3.4:8899,5.6.7.8:8899exclude specific snapshots by slot or hash:
./target/release/snapshotx -b 295588515,somehash123# search for specific slot
./target/release/snapshotx --slot 295588515
# adjust retry settings
./target/release/snapshotx --num_of_retries 10 --sleep 10
# sort by slots_diff instead of latency
./target/release/snapshotx --sort_order slots_diff
# adjust speed measurement time
./target/release/snapshotx --measurement_time 5- parallel snapshot discovery across 1000+ rpc nodes
- two-phase speed testing
- automatic retry with fallback to private rpc
- support for both full and incremental snapshots
- progress bars for all operations
- json metadata output
- handles both redirect (3xx) and direct serve (200) responses
snapshots are downloaded to the specified path with metadata saved to snapshot.json
thanks to snapshot finder written in python