This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host.
https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel
What's Changed
- chore(consensus_pool): remove
DebugIgnoreinParentReadyTrackerby @plafer in #15369 - core,perf: retire the tower and banking-trace api_digests by @kskalski in #15324
- Fully comply with SIMD 317 by @alexpyattaev in #15170
- local-cluster: ignore test_duplicate_shreds_broadcast_leader by @AshwinSekar in #15370
- Fix clean_accounts_older_than_root parallelism by @roryharr in #15355
- flh: unkey feature flag by @AshwinSekar in #15390
- geyser: use external plugin interface crate by @sam0x17 in #15388
- conformance: hash large effects fields by @mjain-jump in #15038
- nit: change some BTreeMaps to HashMaps by @akhi3030 in #15380
- SlotStakeCounters: replace BTreeMap with HashMap by @akhi3030 in #15381
- chore: Remove dead turbine experiment ff by @steviez in #15394
- validator: require --enable-rpc-transaction-history for --enable-bigtable-ledger-upload by @samuelvanderwaal in #15307
- ConsensusMetrics: improves naming and handling of some metrics by @akhi3030 in #15298
- purge_special_columns_exact recovers all valid components by @alex-lind1 in #15386
- test-validator: fix block subscription flag panic by @0xzrf in #13322
- runtime: narrow check_and_store() to AccountSharedData by @2501babe in #15398
- chore(deps): bump serde_with from 3.22.0 to 3.23.0 by @dependabot[bot] in #15336
- chore(deps): bump bitflags from 2.13.1 to 2.13.2 by @dependabot[bot] in #15374
- chore(deps): bump smallvec from 1.16.0 to 1.16.1 in /dev-bins by @dependabot[bot] in #15371
- refactor: encode config accounts and test sysvars with wincode by @kskalski in #15365
- svm: check if nonce account is writable by @2501babe in #15400
- refactor: drop the bincode feature from solana-account by @kskalski in #14636
- chore(deps): bump bytemuck_derive from 1.12.0 to 1.12.1 by @dependabot[bot] in #15405
- runtime: tests: core bpf environments by @buffalojoec in #15393
- votor: use af_xdp for both client and server egress traffic by @KirillLykov in #15347
- Preparation - Block production TX dropping in program runtime by @Lichtso in #13860
- chore(dep): bump quinn to 0.11.12 and quinn-proto to 0.11.18 by @yihau in #15269
- bls-sigverify: eliminate allocations for sending metrics by @akhi3030 in #15235
- repair: use BytesPacket by @alexpyattaev in #15352
- shredder: comply with SIMD504 by @alexpyattaev in #14941
- SIMD-0599: Remove inactive stakes from stake delegations by @2501babe in #15078
- Remove shrink_all_slots by @roryharr in #15391
- Remove entries from read_cache when flushed by @roryharr in #15392
- bls-sigverify: introduces
UnverifiedBatchandVerifiedBatchby @akhi3030 in #15332 - SIMD-0433: Loader V3 Set Program Data to ELF Length by @buffalojoec in #15402
- chore(keygen): correct subcommand name casing by @t-nelson in #13354
- streamer: track unstaked stream load in a separate EMA by @stablebits in #15086
- runtime: Add multi-block end-to-end test for SIMD-0123 edge cases by @joncinque in #15278
- runtime: ebpp deployment env guard by @buffalojoec in #15323
- fix(rpc): return error when leader schedule not found for validator by @0xzrf in #12197
- Retire skip_shrink as true by @roryharr in #15417
- chore(deps): bump solana-zk-sdk from 8.0.0 to 8.0.1 by @dependabot[bot] in #15403
- runtime: ebpp relatch by @buffalojoec in #15284
- changelog: Add RPC change for
getLeaderScheduleby @joncinque in #15422 - refactor: drop bincode from the runtime crate by @kskalski in #15406
- runtime: Make deactivating stake actually deactivating by @joncinque in #15430
- Bump version to 4.5.0-alpha.0 by @github-actions[bot] in #15427
- Update CHANGELOG to reflect master update to v4.5 by @levsha in #15429
- chore(deps): bump octocrab from 0.54.1 to 0.54.2 in /ci/xtask by @dependabot[bot] in #15408
- bls-sigverify: removes HashMap when sending repair msgs by @akhi3030 in #15258
- perf: Make use of wincode and
BytesPacketinto_packet_batchesby @vadorovsky in #15425 - vote: retire the VoteTransaction api_digest by @kskalski in #15383
- replay: use dedicated jemalloc arenas by @alessandrod in #15423
- Update mergify to support v4.4 by @levsha in #15434
- wake-channel: extract the ledger futex channel wrapper by @stablebits in #15359
- mergify: Remove feature gate backport rules by @steviez in #15451
- chore(streamer): Fix build on windows-2025 by @vadorovsky in #15447
- perf(gossip): use fairer parking_lot RwLock by @efagerho in #15456
- test(turbine): Replace
RecycledPacketBatchwithBytesPacketBatchby @vadorovsky in #15462 - chore(dep): bump solana-sbpf from 0.24.0 to 0.25.0 by @yihau in #15460
- chore(deps): bump clap from 4.6.6 to 4.6.7 in /ci/xtask by @dependabot[bot] in #15435
- refactor(core): simplify external check workers and decouple requested checks by @apfitzge in #15353
- chore(deps): bump derive-where from 1.6.1 to 1.7.0 by @dependabot[bot] in #15457
- Always remove accounts on squash, and change ordering by @roryharr in #15419
- Removes fastboot v2 support by @brooksprumo in #15478
- deps: move the sdk crates onto their latest majors by @kskalski in #15463
- Remove unused highest slot stored by @roryharr in #15482
- conformance: support for fuzzing V1 transactions by @topointon-jump in #15479
- gossip: use cloned contact-info version in trace output by @efagerho in #15493
- chore(deps): bump solana-nonce from 3.3.0 to 3.4.0 by @dependabot[bot] in #15499
- gossip: read failed_inserts size outside the crds lock by @efagerho in #15492
- gossip: replace RecycledPacketBatch with BytesPacketBatch by @alexpyattaev in #15455
- chore(deps): bump solana-program from 5.0.0 to 5.1.0 by @dependabot[bot] in #15497
- repair: reduce bufferbloat by @alexpyattaev in #15495
ConsensusPoolcleanup and docs by @plafer in #15453- Don't compile malicious repair handler in production builds by @plafer in #15480
- Implements VotePools to avoid reallocations by @akhi3030 in #15254
- refactor(rpc-client): migrate fee queries to VersionedMessage by @apfitzge in #15310
- gossip: build pull-request bloom filters outside the crds lock by @efagerho in #15503
- Move mergify steps up in the list by @levsha in #15445
- chore(deps): bump solana-stake-interface from 5.0.0 to 5.1.0 by @dependabot[bot] in #15514
- Cleaning up votor-messages crate by @akhi3030 in #15414
- Moves sig-verified-messages out of votor-messages crate by @akhi3030 in #15461
- fix(remote-wallet): accept a longer Ledger app-configuration vector by @ledgicr in #15100
- gossip: use stack scratch for build_crds_filters chunks by @efagerho in #15518
- chore(deps): bump cfg-if from 1.0.4 to 1.0.5 by @dependabot[bot] in #15496
- chore(deps): align programs/sbf deps with root workspace by @yihau in #15536
- chore(deps): bump solana-account-view from 2.0.0 to 2.1.0 by @yihau in #15464
- tpu-client-next: retry leader fetch within the current epoch by @Rqnsom in #14923
- Replace deprecated cfg-if with cfg_select! by @kskalski in #15540
- Revert "fix(remote-wallet): accept a longer Ledger app-configuration … by @joncinque in #15530
- test(ledger): Use
BytesPacketBatchin shred verification tests by @vadorovsky in #15519 - Refactor CPI code to write instructions directly to trace by @LucasSte in #15354
- chore(deps): bump console from 0.16.4 to 0.16.6 by @yihau in #15538
- retransmit: remove address cache by @KirillLykov in #15465
- deps: build frozen-abi on the stable-abi half of solana-frozen-abi by @kskalski in #15520
- conformance: add stake_delegations to block effects by @mjain-jump in #15528
- Read cache before index by @roryharr in #15489
- feat(cost-model): add aggregate cost tracking methods by @apfitzge in #15548
- cli: add --key-by-vote-account to leader-schedule by @GeunhwaJeong in #15246
- chore(deps): bump digest from 0.11.2 to 0.11.3 by @yihau in #15537
- ci: stop shipping windows prebuilt by @yihau in #15471
- loaderv3: avoid double-copying write buffer by @2501babe in #15500
- ci: run the abi, clippy and feature jobs on stable by @kskalski in #15553
- introduces
BlockIdgently by @akhi3030 in #15150 - chore(deps): bump spl-token-2022-interface from 3.1.1 to 3.1.2 by @dependabot[bot] in #15498
- svm: decode sysvars and loader states with wincode by @kskalski in #15568
- accounts-db: drop bincode from tests and benches by @kskalski in #15569
- feat(cost-model): add cost tracker reset and capacity shrinking by @apfitzge in #15549
- fix(ledger-tool): handle malformed transactions in nonvote-slot checks by @DSharifi in #14638
- Update CHANGELOG links to reflect v4.3 promotion by @levsha in #15583
- Build compute-budget test instructions from raw bytes by @kskalski in #15577
- ci: add llvm-tools to the image's stable toolchain by @kskalski in #15573
- Serializes obsolete accounts with u32 logical offsets by @brooksprumo in #15389
- Add timing to store stats by @roryharr in #15556
- accounts-db: Parameterizes account storage reader tests based on accounts file provider by @brooksprumo in #15590
- Use pubkey::default instead of AccountSharedData::default().owner() by @roryharr in #15588
- rpc: release snapshot files when download deadlines expire by @sam0x17 in #15308
- accounts-db: Updates ancient append vec tests by @brooksprumo in #15592
- accounts-db: Moves test fn append_single_account_with_default_hash() by @brooksprumo in #15596
- accounts-db: Calculates stored size in tests based on underlying AccountsFile by @brooksprumo in #15595
- repair slot-cache hoist by @cpubot in #14761
- cli-output: removes some unnecessary allocations by @akhi3030 in #15570
- SIMD-0123: Gate
clone_and_filter_for_vaton feature by @joncinque in #15529 - chore(deps): bump wincode from 0.6.1 to 0.6.2 by @dependabot[bot] in #15603
- program-test: encode sysvars with wincode by @kskalski in #15574
- tokens: show a signed balance difference instead of wrapping to a garbage amount by @latent-9 in #15545
- ci: run coverage on stable by @kskalski in #15605
- ci: extend github actions buildkite trigger to version branches by @yihau in #15614
- net-utils: freeze ABI digests of the ip-echo messages by @kskalski in #15601
- bls-sigverify: introduces
RankMapCacheto modularize the code by @akhi3030 in #15604 - Recycles the BitVec in the AggregateAccumulator to reduce memory churn by @akhi3030 in #15521
- Changes
ShredRepairType::ShredForBlockId::block_idtoBlockIdby @akhi3030 in #15586 Bankstores block_id asBlockIdby @akhi3030 in #15578- rpc: use cloned contact-info version in getClusterNodes by @efagerho in #15609
- chore: Organize RELEASE.md sections a bit by @steviez in #15616
- Import frozen-abi macros where they are used by @kskalski in #15600
- bls-sigverify: reuses
UnverifiedBatchmemory forVerifiedBatchto reduce memory churn by @akhi3030 in #15420 - refactor(scheduler): classify account locks with one iterator by @namtran1812 in #15397
- Parameterizes snapshot tests with accounts file provider by @brooksprumo in #15597
- accounts-db: Returns a result from AccountsFile new_writable() by @brooksprumo in #15613
- validator: Swallow identity not found error during wait by @joncinque in #15617
- Removes clean_accounts() inside verify_snapshot_bank() by @brooksprumo in #15619
- Removes unused is_startup param on clean_accounts() by @brooksprumo in #15621
- accounts-db: Returns result from AccountsFile::write_accounts() by @brooksprumo in #15624
- gossip: don't copy payloads when sending over XDP by @efagerho in #15633
- gossip: filter gossip nodes outside the crds lock by @efagerho in #15504
- ci: bump anza-xtask to 0.2.5 by @yihau in #15629
- ci: remove automerge setup from mergify by @yihau in #15631
- repair: drop late replies to already answered block id repair requests by @latent-9 in #15483
- chore: unused dep serde_with by @alexpyattaev in #15641
- Add metric to TransactionStatusService by @steviez in #15598
- fix: use Alpenglow slot timing for transaction buffering by @apfitzge in #15589
- chore: Remove v4.2 backport label from mergify by @steviez in #15655
- Revert "ci: extend github actions buildkite trigger to version branches (#15614)" by @levsha in #15662
- accounts-db: Updates AccountStorageEntry inside generate_index_for_slot() by @brooksprumo in #15659
- Fix set-identity race in block creation loop by @esemeniuc in #15582
- rpc: don't sort the full mint account set in getTokenLargestAccounts by @sam0x17 in #15649
- accounts-db: Adds AccountStorageEntry::write_accounts() by @brooksprumo in #15663
- Extend Clean Interval by @roryharr in #15627
- chore: fix do_test_shuttle_concurrent_inserts format by @yihau in #15652
- fix: enable solana-program-runtime/dcou for solana-compute-budget/dcou by @yihau in #15653
- Use wincode for loader headers and transactions in tools and clients by @kskalski in #15635
- chore(deps): bump test-case from 3.3.1 to 3.4.0 in /dev-bins by @dependabot[bot] in #15643
- chore(deps): bump solana-loader-v2-interface from 3.0.0 to 3.1.0 by @dependabot[bot] in #15674
- ci: add bypass user list to the buildkite triggering pipeline by @yihau in #15682
- Reapply "ci: extend github actions buildkite trigger to version branches (#15614)" (#15662) by @yihau in #15670
- chore(deps): bump toml from 1.0.7+spec-1.1.0 to 1.1.6+spec-1.1.0 in /ci/xtask by @dependabot[bot] in #15642
- ci: extend feature checks to clippy by @yihau in #14045
- perf: remove PacketBatch::Pinned by @efagerho in #15639
- ci: url encode username in bulidkite triggering piepline by @yihau in #15684
- Votor: prune pending blocks when skipping a slot by @plafer in #15523
- chore(net-utils): collapse the shuttle-test cfg_select arm by @kskalski in #15686
- chore(deps): bump thiserror from 2.0.20 to 2.0.21 by @dependabot[bot] in #15675
- ci: add label to concurrency group in triggering pipeline by @yihau in #15683
- Update SECURITY.md with note for inline PoC by @steviez in #15660
- CODEOWNERS: add streamer & tpu-client-next to networking by @alexpyattaev in #15697
- cli: decode loader and config accounts with wincode by @kskalski in #15678
- accounts-db: Moves test helper fns by @brooksprumo in #15690
- accounts-db: Updates remaining tests to use AccountStorageEntry::write_accounts() by @brooksprumo in #15691
- accounts-db: Parameterizes test_scan_accounts_excludes_obsolete_and_tombstones() on accounts file provider by @brooksprumo in #15692
- svm: make CommittedTransaction feepayer balance optional by @2501babe in #15685
- refactor(cost-model): pass tracked cost to the cost tracker as one value by @kskalski in #15677
- accounts-db: Returns a result from AccountsFile fns that load an account by @brooksprumo in #15703
- Combines the two serde snapshot tests files by @brooksprumo in #15700
- Change BankId into a newtype by @roryharr in #15620
- deps: bump solana-stake-interface to 5.1.1 by @mjain-jump in #15713
- chore(deps): bump smallvec from 1.16.1 to 1.16.2 by @dependabot[bot] in #15719
- fix: enable solana-pubkey/std for solana-sbf-rust-sysvar by @yihau in #15716
- fix: add proper feature gate for solana-sbf-programs tests by @yihau in #15717
- repair: prioritize shred ingest by @alexpyattaev in #15638
- net-utils: encode ip-echo messages with wincode by @kskalski in #15722
- ci: add version bump to bypass list by @yihau in #15714
- gossip: harden test helper by @alexpyattaev in #15698
- Revert "ci: add version bump to bypass list (#15714)" by @levsha in #15729
- gossip: bound crds lock holds in filter_pull_responses by @efagerho in #15507
- ci: use github app token to create version bump PRs by @yihau in #15733
- ci: add agave-version-bumper bot to trusted ci list by @yihau in #15715
- ci: exclude version bump bot PRs from community labels and review requests by @yihau in #15732
- perf: drop bincode and the solana-packet bincode feature by @kskalski in #15721
- svm-conformance: honor fixture sbpf_version in syscall harness by @mjain-jump in #15708
- refactor(ci): move agave build lists into Cargo workspace metadata by @mircea-c in #15699
- ci: add sbf and xtask to feature checks by @yihau in #15689
- accounts-db: Tracks stored size of accounts inside AccountStorageEntry by @brooksprumo in #15694
- refactor(runtime): compute replay transaction costs without Option and tweak check_block_cost_limits API by @kskalski in #15725
- accounts-db: Renames accesors in AccountStorageEntry by @brooksprumo in #15741
- synchronize BCL bank creation and cleanup by @bw-solana in #15712
- gossip: reduce bufferbloat by @alexpyattaev in #15636
- Perf - Checks the ELF header of loader-v1/v2 programs earlier by @Lichtso in #15544
- rpc: enforce minContextSlot on getBlocksWithLimit before the bigtable path by @latent-9 in #15562
- Drop unused bincode deps from poh, snapshots, tx-status-client-types by @kskalski in #15750
- cli: Fix program list data length by @rachit77 in #15667
- tokens: Harden tests by waiting for BPF program deploys at genesis by @latent-9 in #15581
- cli-output: stop truncating rewards balances to 9 characters by @latent-9 in #15484
- perf(unified-scheduler): check replay block limits on the scheduler thread by @kskalski in #15640
- cli: link to web faucet when airdrop fails on devnet/testnet by @amilz in #15532
- quinn_proto: bump to 0.11.18 by @alexpyattaev in #15650
- Disables remove-on-drop before flush of storages during teardown by @brooksprumo in #15753
- accounts-db: Adds SplitFile support by @brooksprumo in #15744
- Route vulnerability reports through bounty.anza.xyz by @nbelenkov in #15757
- Bump version to 4.5.0-alpha.1 by @agave-version-bumper[bot] in #15756
New Contributors
- @samuelvanderwaal made their first contribution in #15307
- @ledgicr made their first contribution in #15100
- @namtran1812 made their first contribution in #15397
- @rachit77 made their first contribution in #15667
- @agave-version-bumper[bot] made their first contribution in #15756
Full Changelog: v4.4.0-alpha.5...v4.5.0-alpha.1