This is a testnet release.
https://github.com/anza-xyz/agave/blob/v4.4/CHANGELOG.md
What's Changed
- refactor(cli): use versioned messages and transactions throughout by @apfitzge in #15524
- SIMD504: Shred wire format upstream by @alexpyattaev in #15522
- keygen, cli: generate mnemonic entropy without bip39's rand feature by @kskalski in #16240
- cost-model: decode system instructions with wincode by @kskalski in #16329
- SIMD-565: Add secp256r1 syscalls by @samkim-crypto in #13918
- chore(deps): bump arc-swap from 1.9.2 to 1.9.3 by @dependabot[bot] in #16383
- chore: Clarify comment in multinode-demo script by @steviez in #16002
- [solana-syscalls] clean up
abort_on_invalid_curve(SIMD-0137) by @samkim-crypto in #16420 - runtime: do not inherit rent epoch by @2501babe in #16387
- bpf_loader: encode / decode instructions with wincode by @kskalski in #16415
- ChannelSend/ChannelTryRecv traits implementations for wake-channel by @KirillLykov in #16426
- SIMD504: discard shreds with invalid LAST_SHRED_IN_SLOT flags early by @alexpyattaev in #16414
- chore(deps): bump ur-registry from 1.0.8 to 1.0.9 by @yihau in #16344
- clippy: fix needless_borrows_for_generic_args and unnecessary_as_slice by @kskalski in #16273
- Enable wincode in place of bincode on sdk interface crates by @kskalski in #16427
- [solana-syscalls] Finalize compute unit costs for sol_big_mod_exp by @samkim-crypto in #16231
- SIMD-0688: Single Program Runtime Environment by @buffalojoec in #15280
- chore(deps): bump octocrab from 0.54.4 to 0.54.5 in /ci/xtask by @dependabot[bot] in #16392
- ci: make workspace dev-deps path-only and enforce it by @mircea-c in #16408
- feat(rpc): expose direct account reads on minimal validator RPC by @apfitzge in #15955
- Purge cache by bank id by @roryharr in #16360
- TPU: block vote ingest by @alexpyattaev in #16315
- accounts-db: Adds control flow to scan_accounts() callback by @brooksprumo in #16412
- Remove shrink's write cache check by @roryharr in #16455
- Remove banking trace by @kskalski in #16430
- assign arenas to banking workers, rename --experimental-replay-arenas to --experimental-execution-arenas by @alessandrod in #16374
- chore: enable vendored for rusb by @yihau in #16243
- sbf: enable wincode in place of bincode on solana-system-interface by @kskalski in #16468
- programs/sbf: scope solana-only program dependencies to the solana target by @kskalski in #16470
- chore(deps): bump signal-hook from 0.4.4 to 0.4.5 by @yihau in #16093
- deps: bump pulldown-cmark to 0.13.5 (RUSTSEC-2026-0414) by @stablebits in #16481
- SIMD504: ledger: detect duplicate shreds at insert time by @alexpyattaev in #16388
- chore(deps): bump agave-transaction-view to 10.0.0 by @kostekIV in #16462
- Bump solana-bls-signatures to 4.0.2 by @samkim-crypto in #16466
- chore(deps): bump rust-lang/crates-io-auth-action from 1.0.5 to 1.0.6 by @dependabot[bot] in #16475
- tests: programs/sbf: use default rent by @buffalojoec in #16473
- banks-client: remove the TCP client by @kskalski in #16467
- chore(genesis): Use AccountSharedData::new_with_data() for accounts with data by @vadorovsky in #16486
- chore(ledger): Use AccountSharedData::new_with_data() for accounts with data by @vadorovsky in #16487
- chore(core): Use AccountSharedData::new_with_data() for accounts with data by @vadorovsky in #16485
- deps(perf, rpc): drop unused dependencies flagged by cargo 1.100 by @kskalski in #16471
- validator: Deprecate --require-tower argument by @steviez in #16452
- worker-pool: add a shared wake-channel worker pool crate by @kskalski in #16235
- core: drop the TPU vote input from the sigverify pool by @stablebits in #16429
- chore(ci): bump anza-xtask to 0.2.6 by @mircea-c in #16450
- Bump spl-token-2022-interface to 4.0.0 by @samkim-crypto in #16488
- SIMD-0684: Loader V3 Allow Prefunded ProgramData by @buffalojoec in #16431
- local-cluster: stake all nodes at genesis in test_spend_and_verify_all_nodes by @stablebits in #16495
- Mark frozen by bank_id by @roryharr in #16459
- Flush cache by bank_id by @roryharr in #16447
- runtime-transaction: validate TransactionConfigView directly by @kostekIV in #16492
- Show running validator commit
monitorcmd by @esemeniuc in #15176 - chore(feature-set): rekey feature for SIMD-550 by @apfitzge in #16499
- Store large flushed accounts in the read cache by @roryharr in #16463
- Remove the write cache's slot to bank map by @roryharr in #16497
- accounts-db: Buffers SplitFile account writes by @brooksprumo in #16464
- chore: Remove outdated tonic RUSTSEC ignore by @steviez in #16505
- accounts-lt-hash: dedup queued updates per bank by @kskalski in #16012
- feature-set: fix feature gate name for SIMD-0191 by @jstarry in #16483
- storage: remove doc comments in generated protos by @yihau in #16494
- blockstore: Use wincode::deserialize_exact for columns::Index by @deepak-pandey2005 in #16511
- ledger: use the shared worker pool crate by @kskalski in #16416
- SIMD504 prep: blockstore: remove pre-1.18.12 erasure-conflict fallback scan by @alexpyattaev in #16379
- SIMD504: window_service: move merkle root compute to the thread pool by @alexpyattaev in #16435
- blockstore: report coding/data shred metrics by @KirillLykov in #16446
- gossip: tighten ReceivedCacheEntry capacity post AG launch by @efagerho in #16512
- core: stop ingesting gossip votes into sigverify by @stablebits in #16460
- SIMD-0690: Hash validation in Core BPF migrations, upgrades by @buffalojoec in #16077
- chore: remove unused proptest dep from solana-entry by @yihau in #16182
- transaction-context: dont clone payload for account shrinkage by @buffalojoec in #16283
- snapshot: remove dependency on manifest vote_accounts and stake_history fields by @mjain-jump in #15834
- ledger: take default thread counts from available_parallelism by @kskalski in #16515
- chore(deps): update scheduler bindings and handshake by @apfitzge in #16507
- chore(deps): bump shuttle from 0.9.7 to 0.9.8 by @yihau in #16517
- chore(deps): bump shaq from 5.0.0 to 5.1.0 by @yihau in #16516
- ci(xtask): port limit-threads.sh to cargo xtask jobs by @mircea-c in #16496
- runtime-transaction: build transaction configuration from message view by @kostekIV in #16491
- SIMD504: prepare to enforce position == index - fec_set_index for code shreds by @alexpyattaev in #16521
- build(deps): bump libz-sys to 1.1.31 (RUSTSEC-2026-0418) by @DSharifi in #16538
- turbine: use the shared worker pool crate in retransmit by @kskalski in #16417
- global program cache: remove fork tracking from extract by @buffalojoec in #14839
- feat!: don't validate blockhash or nonce in
get_fee_for_messageby @DSharifi in #16519 - gossip: push own contact info to entrypoints not yet known by @Rqnsom in #15817
- runtime: add Bank::get_fee_for_message_view by @kostekIV in #16523
- feat(cli): build V1 transactions through MessageBuilder by @apfitzge in #16448
- Removes accounts-cluster-bench by @mircea-c in #16526
- gossip: fully stop propagating tower gossip messages by @gregcusack in #16453
- SIMD504: wire in "always recover" into blockstore. by @alexpyattaev in #16194
- Use agave-wake-channel for sigverify workers by @stablebits in #15571
- bpf_loader: upgrade: faster elf copy by @buffalojoec in #16280
- chore(deps): bump shaq from 5.1.0 to 5.1.1 by @dependabot[bot] in #16554
- chore(deps): bump solana-system-transaction from 6.0.0 to 6.0.1 by @dependabot[bot] in #16553
- runtime / rpc: Report and serve block rewards separately by @joncinque in #16130
- ci: don't use sccache in docker run by @yihau in #16493
- turbine: get rid of evictingsender for sigverify/retransmit by @KirillLykov in #16543
- worker-pool: add try_send by @KirillLykov in #16568
- runtime-transaction: hash unique account keys with a presized ahash set by @kskalski in #16559
- chore: Add BLS sigverifer start/stop logs by @steviez in #16556
- chore(deps): bump solana-account-view from 2.1.0 to 3.0.0 by @yihau in #16518
- turbine: Remove useless return type from BroadcastStage threads by @steviez in #16558
- ci: remove sccache by @yihau in #16563
- accounts-db: preserve dirty SplitFile state on rejected flush by @satyam455 in #16569
- worker-pool: add try_send by @kskalski in #16564
- chore: Adjust SIMD text from 582 to 0582 by @steviez in #16575
- SIMD-0685: Loader V3 Remove ExtendProgram by @buffalojoec in #15775
- chore(deps): bump memmap2 from 0.9.11 to 0.9.12 by @dependabot[bot] in #16514
- Skip prune message generation in gossip when there is nothing to prune by @FarinM in #16547
- Speeds up test_snapshots_with_background_services by @brooksprumo in #16581
- Keep scans aborted once their bank is removed by @Maxitosh in #16544
- gossip: set a minimum rayon task size for packet sigverify by @efagerho in #16574
- chore(deps): bump agave-transaction-view to 10.1.0 by @kostekIV in #16586
- feat(inflation): calculate epoch rewards with deterministic integer math by @apfitzge in #16355
- rpc: use views instead of sdk types in rpc by @kostekIV in #16546
- SIMD504: feature gate and enforcement tests. by @alexpyattaev in #16378
- chore(vote): Use AccountSharedData::new_with_data() for accounts with data by @kskalski in #16566
- Purge the write cache when a removed bank drops by @roryharr in #16508
- Shred insert: fix regression during restart by @alexpyattaev in #16520
- core: Add ReplayStage start/stop logs by @steviez in #16551
- snapshot: discard unused manifest stakes on read by @kskalski in #16565
- memory: add agave-memory with a page allocator and aligned buffers by @kskalski in #16474
- Speed up ShredId::seed by @esemeniuc in #16596
- rekey simd-0529 by @zz-sol in #16585
- Removes
const_formatdependency by @brooksprumo in #16604 - chore: Remove unused memoffset dependency from crates by @steviez in #16605
- Removes
symlinkdependency by @brooksprumo in #16603 - memory: fix unused test import on macOS by @kskalski in #16599
- use agave-wake-channel in solScHandle threads by @cpubot in #16472
- validator: release the admin RPC post-init state on exit by @Rqnsom in #16542
- SIMD-0567: replace ATA program with p-ATA by @febo in #16524
- Removes
hxdmpdependency by @brooksprumo in #16608 - core: encode test transactions and loader state with wincode by @kskalski in #16509
- validator: move shred version fetch before xdp init to fix startup crash by @jjsloboda in #16220
- votor-transport: fix flaky tests by @alexpyattaev in #16588
- chore(svm): Use AccountSharedData::new_with_data() for accounts with data by @kskalski in #16612
- Removes
derive-wheredependency by @brooksprumo in #16601 - perf: share transaction view signature verification with bank and rpc by @kostekIV in #16593
- ci(bump-version): verify version bump PRs with a public status check by @mircea-c in #16498
- chore(xtask): bump reqwest to 0.13 by @mircea-c in #16590
- Remove gen-syscall-list by @LucasSte in #16580
- unified-scheduler: evict unused queues to avoid overgrowth by @alessandrod in #16621
- Removes unused store_stake_accounts_us metric from bank-new_from_parent-new_epoch_timings by @brooksprumo in #16632
- gossip: start signing prune messages with prefix by @gregcusack in #16108
- Stop building and publishing MacOS x86-64 binaries by @levsha in #16589
- SIMD-596: Increase TxV1 Account Lock Limit to 96 by @apfitzge in #16545
- gossip: shrink prune-signing and gossip-loop thread pools by @efagerho in #16572
- Removes
pemdependency by @brooksprumo in #16607 - validator: Allow main process thread to exit by @steviez in #16610
- perf(transaction-context): move owned payloads during deconstruction by @esemeniuc in #16634
- blockstore: do not rebuild missing shreds unnecessarily by @alexpyattaev in #16639
- blockstore: always retransmit recovered code shreds by @alexpyattaev in #16622
- streamer: rm dead code by @alexpyattaev in #16643
- Remove purge pubkey deferall as it is always handled in the background by @roryharr in #16597
- perf(gossip): Project gossip contact fields for RPC, traces, and Geyser by @efagerho in #15989
- accounts-db: back index bin tables with transparent huge pages by @kskalski in #16598
- accounts-lt-hash: dispatch updates to the hasher pool in chunks by @kskalski in #16522
- test(unified-scheduler): order task receipt before handler panic by @kskalski in #16619
- watchtower: add --minimum-vote-account-balance by @bartenbach in #16373
- rpc: rename getRankMap and simplify its client API by @sam0x17 in #16019
- chore: Update ff string to include leading 0 in SIMD number by @steviez in #16646
- chore(deps): bump solana-secp256k1-program from 3.1.0 to 3.1.1 by @dependabot[bot] in #16423
- chore(deps): bump lru from 0.18.5 to 0.19.0 by @dependabot[bot] in #16382
- chore: Use AccountSharedData::new_with_data() in rpc, cli, ledger-tool and program-test by @kskalski in #16618
- chore(runtime): Use AccountSharedData::new_with_data() for accounts with data by @kskalski in #16609
- chore(deps): bump hashbrown from 0.17.0 to 0.17.1 by @dependabot[bot] in #16650
- chore: remove assert_matches crate from svm related crates by @kostekIV in #16641
- SIMD-0670: ABIv1 invoke signed v2 syscall by @febo in #15979
- chore(deps): bump smallvec from 1.16.3 to 1.16.4 by @dependabot[bot] in #16627
- accounts-lt-hash: size the hasher pool by the cores by @kskalski in #16660
- ci: refine pipeline trigger condition by @yihau in #16674
- account-decoder: stop prefixing immutable program data with the old authority by @Iamsohungrynow in #16107
- votor-transport: allow for longer bursts above allowed rate limits for peers during replay by @alexpyattaev in #16656
- ci: remove unused datadog code path by @yihau in #16676
- ci: pin cargo-installed tools to exact versions by @yihau in #16671
- chore: remove assert_matches crate from network/consensus related crates by @kostekIV in #16662
- unified-scheduler: hold pool cleaner before it counts trashed schedulers by @kostekIV in #16679
- chore: remove assert_matches crate from accountsdb related crates by @kostekIV in #16680
- programs: Fix typo in invoke_signed_v2 test by @febo in #16682
- SBPF v0.27.0 by @Lichtso in #16658
- accounts-db: Fix load/shrink race test to exercise stale storage retries by @two-heart in #16157
- bpf_loader: move explicit checks earlier by @buffalojoec in #16613
- ci: update mergify config by @yihau in #16687
- TSS: drain TSS on graceful shutdown by @alex-lind1 in #16227
- cli-output: Don't truncate any strings by @joncinque in #16504
- chore: add SIMD-0596 prefix to txv1 lock feature by @apfitzge in #16690
- accounts-db: hash multi-chunk account inputs contiguously by @kskalski in #16567
- [ed25519] deprecate dalek by @zz-sol in #16465
- Removes repr(C) from UnusedRentCollector by @brooksprumo in #16673
- fix(conformance): bump test-vectors and update alpenglow migration by @buffalojoec in #16698
- retransmit: get rid of intermediate channel by @KirillLykov in #15816
- chore: remove assert_matches crate from core, poh, entry, perf and unified-scheduler-* by @kostekIV in #16688
- votor: clean up comments by @KirillLykov in #16686
- turbine: use the shared worker pool crate in shred sigverify by @kskalski in #16418
- chore(accounts-db): Use
AccountSharedData::new_with_data()for accounts with data by @vadorovsky in #16484 - ci: adjust step timeouts based on recent build times by @yihau in #16697
- ci: add regenerate-test-vectors script by @buffalojoec in #16675
- runtime-transaction: speed up the unique account keys check by @kskalski in #16707
- chore: remove assert_matches crate from ledger by @kostekIV in #16708
- ci: pin rustfilt install in test-stable.sh by @yihau in #16714
- chore(sbf): remove criterion and the unused bench_alu program by @yihau in #16709
- repair: invalidate peer cache after identity change by @satyam455 in #16600
- chore: Add missing SIMD number to ff string by @steviez in #16648
- blockstore: Rename insert_cow_shreds() by @steviez in #16699
- ci: bump cargo-build-sbf to 4.5.0 and pin the sbf scripts by @yihau in #16715
- ci: don't write the app token to git config by @yihau in #16711
- chore(deps): bump octocrab from 0.54.5 to 0.54.6 in /ci/xtask by @dependabot[bot] in #16717
- chore: Cleanup RewardCertsService function by @steviez in #16696
- faster transaction dispatch by @alessandrod in #16700
- Removes the missing-storage case from LoadedAccountAccessor by @roryharr in #16691
- cleanup feature commission_rate_in_basis_points by @buffalojoec in #16725
- Refactor - Plumbing
invoke_contexttomap_with_access_violation_handler()by @buffalojoec in #16726 - Split the excluded-key index scan out of other test by @roryharr in #16694
- accounts-db: Uses vector read for SplitFile read_data_entry() by @brooksprumo in #16723
- Geyser: include bank ID in Dead notifications by @sam0x17 in #16156
- quinn: use vendored 0.11.x anza-quinn crates by @gregcusack in #16730
- chore: remove assert_matches crate from runtime by @kostekIV in #16724
- cli: withdraw-from-vote-account leaves VAT unless --allow-vat-withdrawal by @AshwinSekar in #16005
- lattice-hash: buffer the prefix of the batch accumulator's large messages by @kskalski in #16649
- chore(deps): bump solana-secp256k1-recover from 3.3.0 to 3.3.1 by @dependabot[bot] in #16651
- ci: verify platform-tools sha256 in install.sh by @yihau in #16710
- ledger-tool: Fix
program runfailing on missing accounts-db args by @vignesh-chaturvedi in #16695 - runtime: ebpp relatch from root by @buffalojoec in #15845
- runtime/vote: Remove SIMD-0249 feature, delay commission updates by @joncinque in #16729
- Gate RPC from serving pre-UpdateParent transaction history by @alex-lind1 in #15418
- feat(cli): add explicit --generate-ephemeral-program-id flag to
solana program deployby @datasalaryman in #16034 - accounts-db: Reduces number of reads required with LoadedAccountAccessor::get_account_shared_data_if() by @brooksprumo in #16733
- v4.5: Update CHANGELOG by @levsha in #16746
- v4.5: update CODEOWNERS by @levsha in #16745
- v4.5: fix(svm): apply ProgramData size floor during account loading (backport of #16769) by @mergify[bot] in #16776
- Bump version to 4.5.0-beta.0 by @agave-version-bumper[bot] in #16790
New Contributors
- @deepak-pandey2005 made their first contribution in #16511
- @Maxitosh made their first contribution in #16544
- @jjsloboda made their first contribution in #16220
- @Iamsohungrynow made their first contribution in #16107
- @vignesh-chaturvedi made their first contribution in #16695
Full Changelog: v4.5.0-alpha.4...v4.5.0-beta.0