
Back to Blog

Agave 2.3 Patch Notes: What's Coming
Written By
Brian Wong - DevRel, Anza
June 19, 2025
Agave 2.3 delivers a range of improvements across validator performance, developer tooling, and quality of life. This release features updates to snapshot handling, enhancements to the SBPF toolchain, and a revamped TPU client.
Notable Agave 2.3 Updates
Feature | Summary |
Greedy Scheduler Default |
|
Snapshot Changes | New |
TimedTracedEvent ABI | ABI has been updated; validators must update external tools relying on tracing logs. |
SBPF Toolchain | Developers can now explicitly target SBPF versions (v0-v3); SBPFv3 programs exclusively use Rust; added |
CLI Improvements | Simplified stake withdrawals with |
New TPU Client | tpu-client-next is the new implementation of the TPU forwarder client, focusing on increased throughput and reduced latency. |
Gossip Shred Version | Ensures correct |
RPC Updates | simulateTransaction now includes loadedAccountsDataSize, which reports the total bytes of account data loaded during simulation. |
Performance Improvements
We added multiple optimizations in Agave 2.3 to improve epoch transitions and reduce I/O overhead.
Faster epoch transitions: Epoch reward calculation at each epoch boundary now completes in ~500ms. This reduces the length of any empty slot gap when an epoch ends, improving transaction landing and validator rewards.

AccountsDB optimizations: Storage overhead has been dramatically reduced – disk I/O is down by ~75%, and repair request volume is reduced by ~85%. These improvements contribute to more consistent performance under heavy network traffic.

Snapshots
We’re making some quality of life changes to snapshots in this release to improve clarity.
Added
--no-snapshots
which disables snapshot generation, old --snapshot-interval-slots 0 method is deprecated.Default full snapshot interval: 25,000 -> 50,000 slots.
Geyser plugin account notifications are no longer deduplicated when restoring from a snapshot.
Wen-Restart
This is a feature that we hopefully never need to use. It automates cluster restart when the chain crashes. Better safe than sorry.
Added
wen-restart
cluster recovery feature.
TimedTracedEvent ABI
We’ve updated the event tracing interface to include some new diagnostics, which requires corresponding updates in external tools.
TimedTracedEvent ABI format changed for bank tracing logs. Validators should clear any old tracing data after upgrading and update external analytics tools to match the new format. (#5646)
Greedy Scheduler Default
The greedy scheduler has been performing well in testing and it reduces overhead by avoiding the full dependency graph used in the old central scheduler so we are turning it on by default.
central-scheduler-greedy
is now activated by default.
SBPF Toolchain
We are making some quality of life changes for developers on the SBPF toolchain and deprecating the rarely used C-based toolchain with SBPFv3.
Developers can now target specific BPF VM versions (v0-v3) when building programs.
SBPFv3 programs are now Rust-only. The C-based toolchain is no longer supported for SBPFv3.
Added a new build flag
--optimize-size
to produce smaller program binaries for deployment. This optimization may incur a slight increase in CU usage.
CLI Improvements
Quality-of-life enhancements in command-line tools streamline common workflows and improve default security for local testing.
Added
withdraw-stake AVAILABLE
command to withdraw all available unstaked lamports. (#4483)Changed the
solana-test-validator
to bind RPC services to localhost by default.
New TPU Client
We revamped our TPU networking bottlenecks, focusing on increased throughput and reduced latency in transaction processing.
Replaced the long-standing ConnectionCache with
tpu-client-next
as the new default TPU forwarder. This new client dramatically increases packet throughput and reduces latency and jitter in transactions sent to the cluster leader. It also lowers CPU and memory usage on validators under load.The new TPU client is fully backward-compatible. No special action is required to use it, but if any issues arise operators can revert to the old behavior by launching with the
--use-connection-cache flag
, restoring the 2.2 implementation.
Number of transactions successfully submitted to the leader under synthetic load.

ConnectionCache is on the left, tpu-client-next
on the right.
Gossip Shred Version Enforcement
Our network gossip protocols are improved to ensure only correctly configured nodes join the cluster, preventing accidental misconfiguration.
Gossip now enforces the correct
shred_version
when nodes attempt to join the network via gossip. Inbound gossip connections are accepted only if the node’s shred version matches the cluster’s, rejecting mismatched nodes early.The prior exception that allowed “gossip spy” nodes with no shred match to connect has been removed. Operators running spy or observer nodes must now obtain the proper shred version from a cluster entrypoint or explicitly set it via command-line to join successfully.
RPC Updates
We added a new Solana RPC API to improve transparency into simulating resource usage for developers.
The
simulateTransaction RPC
method now returns a new field:loadedAccountsDataSize
, which reports the total bytes of account data that were loaded during the transaction simulation.
Important Breaking Changes
Using
--snapshot-interval-slots
0 to disable snapshots is now deprecated; use--no-snapshots
flag.The TimedTracedEvent logging ABI was updated; any external tracing tools that consume these logs will require updates and old trace data should be cleared.
SBPFv3 now exclusively supports the Rust toolchain. The C toolchain is no longer supported for SBPFv3 programs.
Agave 2.3 enhances validator performance and usability significantly. Validators and developers are encouraged to upgrade. Stay tuned for future updates as Agave continues to unlock more block capacity, improve hardware efficiency, and help Solana remain competitive at scale.