From 5b2c9f2db4abb678cc93b28d3ddf5a7b4a429e15 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 11:14:20 +0200 Subject: [PATCH 01/17] v4.4: validator: Swallow identity not found error during wait (backport of #15617) (#15622) validator: Swallow identity not found error during wait (#15617) #### Problem The RPC leader schedule endpoint now returns an error if an identity is provided, but the identity doesn't exist in the leader schedule. The validator `wait-for-restart-window` command uses this to figure out if it's a good time to restart, but all validators use it, including non-voting validators, which causes them to fail exiting. #### Summary of changes Swallow the new error type. (cherry picked from commit c1f052196582dea8c89afa2df64025d68c56f749) Co-authored-by: Jon C --- .../commands/wait_for_restart_window/mod.rs | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/validator/src/commands/wait_for_restart_window/mod.rs b/validator/src/commands/wait_for_restart_window/mod.rs index 3908f60bdff..e2164ed9429 100644 --- a/validator/src/commands/wait_for_restart_window/mod.rs +++ b/validator/src/commands/wait_for_restart_window/mod.rs @@ -16,9 +16,13 @@ use { solana_commitment_config::CommitmentConfig, solana_pubkey::Pubkey, solana_rpc_client::rpc_client::RpcClient, - solana_rpc_client_api::config::RpcLeaderScheduleConfig, + solana_rpc_client_api::{ + client_error::ErrorKind, config::RpcLeaderScheduleConfig, + custom_error::JSON_RPC_SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND, + request::RpcError as RpcClientError, + }, std::{ - collections::VecDeque, + collections::{HashMap, VecDeque}, path::Path, time::{Duration, SystemTime}, }, @@ -235,14 +239,29 @@ pub fn wait_for_restart_window( epoch_info.epoch )); let first_slot_in_epoch = epoch_info.absolute_slot - epoch_info.slot_index; - leader_schedule = rpc_client - .get_leader_schedule_with_config( - Some(first_slot_in_epoch), - RpcLeaderScheduleConfig { - identity: Some(identity.to_string()), - ..RpcLeaderScheduleConfig::default() - }, - )? + let leader_schedule_response = match rpc_client.get_leader_schedule_with_config( + Some(first_slot_in_epoch), + RpcLeaderScheduleConfig { + identity: Some(identity.to_string()), + ..RpcLeaderScheduleConfig::default() + }, + ) { + // Swallow just the specific leader schedule error from RPC + Err(err) + if matches!( + err.kind(), + ErrorKind::RpcError(RpcClientError::RpcResponseError { + code: JSON_RPC_SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND, + .. + }) + ) => + { + Ok(Some(HashMap::new())) + } + response => response, + }?; + + leader_schedule = leader_schedule_response .ok_or_else(|| { format!("Unable to get leader schedule from slot {first_slot_in_epoch}") })? From c1c294b2d9481e977883d45567da955f6d8bd827 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:49:38 +0200 Subject: [PATCH 02/17] v4.4: SIMD-0123: Gate `clone_and_filter_for_vat` on feature (backport of #15529) (#15608) SIMD-0123: Gate `clone_and_filter_for_vat` on feature (#15529) #### Problem The Firedancer fuzzers don't work between v4.3 and v4.4 because v4.4 takes `pending_delegator_rewards` into account when figuring out how many lamports are available for a vote account. #### Summary of changes Gate the lamport check behavior on the feature gate. Since `pending_delegator_rewards` can't be incremented until the feature gate is enabled, the current code is safe. For the same reason, this PR doesn't actually change the behavior under the feature gate. However, the random data generated by the fuzzers creates a divergence in behavior between the two versions. (cherry picked from commit 7b0c0f34d2ebd314e5b4158a803b2df0ea552784) Co-authored-by: Jon C --- feature-set/src/lib.rs | 2 +- runtime/src/bank.rs | 2 ++ runtime/src/bank/tests.rs | 2 +- runtime/src/stakes.rs | 8 +++-- runtime/tests/vote_account.rs | 67 ++++++++++++++++++++++++++--------- vote/src/vote_account.rs | 13 ++++--- 6 files changed, 70 insertions(+), 24 deletions(-) diff --git a/feature-set/src/lib.rs b/feature-set/src/lib.rs index 6160068e701..3375fe7298f 100644 --- a/feature-set/src/lib.rs +++ b/feature-set/src/lib.rs @@ -1442,7 +1442,7 @@ pub mod limit_instruction_accounts { } pub mod block_revenue_sharing { - solana_pubkey::declare_id!("7MYx95UBiJufqnumyN7HfskJ9vKdcGMmhreVguqrE97K"); + solana_pubkey::declare_id!("DSroRTaL5zozFw5yRYpaCTjeND1mSxxsnAeSi5vhELUv"); } pub mod vote_account_initialize_v2 { diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 599b8d88a30..b69abf427e2 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -1885,6 +1885,7 @@ impl Bank { .clone_and_filter_for_vat( MAX_ALPENGLOW_VOTE_ACCOUNTS, self.minimum_vote_account_balance_for_vat(), + self.feature_set.snapshot().block_revenue_sharing, ); if AlpenglowEpochType::is_alpenglow_or_migration_epoch(self, rewarded_epoch) { reward_epoch_delegated_stakes.set(self, &filtered_distribution_vote_accounts); @@ -6878,6 +6879,7 @@ impl Bank { self.stakes_cache.stakes().clone_and_filter_for_vat( MAX_ALPENGLOW_VOTE_ACCOUNTS, self.minimum_vote_account_balance_for_vat(), + self.feature_set.snapshot().block_revenue_sharing, ) } diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index ed8fc245a7e..313a509de2b 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -5826,7 +5826,7 @@ fn test_bank_hash_deterministic_with_stakes_cache() { assert_eq!( bank2.hash().to_string(), - "F1RGWPgPj4ACW2q9FhmN36YGcMZ4ReSBp1kjHGGXwNAP", + "FhK44Rm28aCttSnQr5BpxBaNW526YmFW21wUNBNUNcQm", ); } diff --git a/runtime/src/stakes.rs b/runtime/src/stakes.rs index 2df437b8821..67fff1e3bbb 100644 --- a/runtime/src/stakes.rs +++ b/runtime/src/stakes.rs @@ -261,10 +261,14 @@ impl Stakes { &self, max_vote_accounts: usize, minimum_vote_account_balance: u64, + block_revenue_sharing: bool, ) -> Stakes { Self::new( - self.vote_accounts - .clone_and_filter_for_vat(max_vote_accounts, minimum_vote_account_balance), + self.vote_accounts.clone_and_filter_for_vat( + max_vote_accounts, + minimum_vote_account_balance, + block_revenue_sharing, + ), self.epoch, ) } diff --git a/runtime/tests/vote_account.rs b/runtime/tests/vote_account.rs index c922c968e3b..89efaf6e940 100644 --- a/runtime/tests/vote_account.rs +++ b/runtime/tests/vote_account.rs @@ -327,6 +327,7 @@ fn test_vote_accounts_cow() { fn test_clone_and_filter_for_vat_truncates() { let mut rng = rand::rng(); let current_limit = 3000; + let block_revenue_sharing = true; let vote_accounts = new_staked_vote_accounts( &mut rng, current_limit, @@ -338,14 +339,20 @@ fn test_clone_and_filter_for_vat_truncates() { |_| |_| 0, ); // All vote accounts should be returned if the limit is high enough. - let filtered = - vote_accounts.clone_and_filter_for_vat(current_limit + 500, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + current_limit + 500, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert_eq!(filtered.len(), vote_accounts.len()); // If the limit is smaller than number of accounts, truncate it. let lower_limit = current_limit - 1000; - let filtered = - vote_accounts.clone_and_filter_for_vat(lower_limit, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + lower_limit, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert!(filtered.len() <= lower_limit); // Check that the filtered accounts are the same as the original accounts. for (pubkey, (_, vote_account)) in filtered.as_ref().iter() { @@ -371,6 +378,7 @@ fn test_clone_and_filter_for_vat_filters_non_alpenglow() { // Check that non-alpenglow accounts are kicked out, 2000 accounts with bls pubkey, 1000 // accounts without. let num_nodes = MAX_ALPENGLOW_VOTE_ACCOUNTS + 1000; + let block_revenue_sharing = true; let vote_accounts = new_staked_vote_accounts( &mut rng, num_nodes, @@ -382,7 +390,11 @@ fn test_clone_and_filter_for_vat_filters_non_alpenglow() { |_| |_| 0, ); let new_limit = MAX_ALPENGLOW_VOTE_ACCOUNTS + 500; - let filtered = vote_accounts.clone_and_filter_for_vat(new_limit, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + new_limit, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert_eq!(filtered.len(), MAX_ALPENGLOW_VOTE_ACCOUNTS); // Check that all filtered accounts have bls pubkey. for (_stake, vote_account) in filtered.as_ref().values() { @@ -395,7 +407,11 @@ fn test_clone_and_filter_for_vat_filters_non_alpenglow() { } // Now get only 1500 accounts, even some alpenglow accounts are kicked out. let new_limit = MAX_ALPENGLOW_VOTE_ACCOUNTS - 500; - let filtered = vote_accounts.clone_and_filter_for_vat(new_limit, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + new_limit, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert!(filtered.len() <= new_limit); for (_stake, vote_account) in filtered.as_ref().values() { assert!( @@ -412,6 +428,7 @@ fn test_clone_and_filter_for_vat_same_stake_at_border() { let mut rng = rand::rng(); // Create exactly 2 accounts more than maximum to test border truncation let num_accounts = MAX_ALPENGLOW_VOTE_ACCOUNTS + 2; + let block_revenue_sharing = true; let accounts = (0..num_accounts).map(|index| { let mut account = new_rand_vote_account(rng.random(), None, true, |_| 0); account.set_lamports(10_000_000_000); @@ -427,17 +444,24 @@ fn test_clone_and_filter_for_vat_same_stake_at_border() { for (pubkey, (stake, vote_account)) in accounts { vote_accounts.insert(pubkey, vote_account, || stake); } - let filtered = - vote_accounts.clone_and_filter_for_vat(num_accounts, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + num_accounts, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert_eq!(filtered.len(), num_accounts); - let filtered = vote_accounts - .clone_and_filter_for_vat(MAX_ALPENGLOW_VOTE_ACCOUNTS, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + MAX_ALPENGLOW_VOTE_ACCOUNTS, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert_eq!(filtered.len(), MAX_ALPENGLOW_VOTE_ACCOUNTS - 10); } #[test] fn test_clone_and_filter_for_vat_not_enough_lamports() { let mut rng = rand::rng(); + let block_revenue_sharing = true; // For 10% of vote accounts, set the balance below the minimum. let entries_to_modify = MAX_ALPENGLOW_VOTE_ACCOUNTS / 10; let vote_accounts = new_staked_vote_accounts( @@ -461,14 +485,18 @@ fn test_clone_and_filter_for_vat_not_enough_lamports() { } }, ); - let filtered = vote_accounts - .clone_and_filter_for_vat(MAX_ALPENGLOW_VOTE_ACCOUNTS, DEFAULT_VAT_TO_BURN_PER_EPOCH); + let filtered = vote_accounts.clone_and_filter_for_vat( + MAX_ALPENGLOW_VOTE_ACCOUNTS, + DEFAULT_VAT_TO_BURN_PER_EPOCH, + block_revenue_sharing, + ); assert!(filtered.len() <= MAX_ALPENGLOW_VOTE_ACCOUNTS - entries_to_modify); } #[test] fn test_clone_and_filter_for_vat_not_enough_lamports_with_pending_delegator_rewards() { let mut rng = rand::rng(); + let block_revenue_sharing = true; // For 10% of vote accounts, set the balance below the minimum. let entries_to_modify = MAX_ALPENGLOW_VOTE_ACCOUNTS / 10; let vote_accounts = new_staked_vote_accounts( @@ -495,14 +523,18 @@ fn test_clone_and_filter_for_vat_not_enough_lamports_with_pending_delegator_rewa } }, ); - let filtered = vote_accounts - .clone_and_filter_for_vat(MAX_ALPENGLOW_VOTE_ACCOUNTS, DEFAULT_VAT_TO_BURN_PER_EPOCH); + let filtered = vote_accounts.clone_and_filter_for_vat( + MAX_ALPENGLOW_VOTE_ACCOUNTS, + DEFAULT_VAT_TO_BURN_PER_EPOCH, + block_revenue_sharing, + ); assert!(filtered.len() <= MAX_ALPENGLOW_VOTE_ACCOUNTS - entries_to_modify); } #[test] fn test_clone_and_filter_for_vat_empty_accounts() { let mut rng = rand::rng(); + let block_revenue_sharing = true; let current_limit = 3000; let vote_accounts = new_staked_vote_accounts( &mut rng, @@ -516,8 +548,11 @@ fn test_clone_and_filter_for_vat_empty_accounts() { ); // Since everyone has the same stake and the limit is 500 less than number of accounts, // all border stake peers are removed and we end up with no valid accounts. - let filtered = - vote_accounts.clone_and_filter_for_vat(current_limit - 500, MIN_STAKE_FOR_STAKED_ACCOUNT); + let filtered = vote_accounts.clone_and_filter_for_vat( + current_limit - 500, + MIN_STAKE_FOR_STAKED_ACCOUNT, + block_revenue_sharing, + ); assert_eq!(filtered.len(), 0); } diff --git a/vote/src/vote_account.rs b/vote/src/vote_account.rs index 2adbfd8aed1..43ca0577abd 100644 --- a/vote/src/vote_account.rs +++ b/vote/src/vote_account.rs @@ -213,6 +213,7 @@ impl VoteAccounts { &self, max_vote_accounts: usize, minimum_vote_account_balance: u64, + block_revenue_sharing: bool, ) -> VoteAccounts { assert!(max_vote_accounts > 0, "max_vote_accounts must be > 0"); let capacity = max_vote_accounts.min(self.vote_accounts.len()); @@ -223,10 +224,14 @@ impl VoteAccounts { let has_stake = *stake != 0u64; // Pending delegator rewards are deducted at the start of the epoch, // so this operation reflects the actual expected balance - let has_balance = vote_account - .lamports() - .saturating_sub(vote_state_view.pending_delegator_rewards()) - >= minimum_vote_account_balance; + let available_balance = if block_revenue_sharing { + vote_account + .lamports() + .saturating_sub(vote_state_view.pending_delegator_rewards()) + } else { + vote_account.lamports() + }; + let has_balance = available_balance >= minimum_vote_account_balance; if !has_bls || !has_stake || !has_balance { continue; From 63c88679381bd5ba4371efabec63c394f7d82839 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:17:55 +0800 Subject: [PATCH 03/17] v4.4: ci: use github app token to create version bump PRs (backport of #15733) (#15735) ci: use github app token to create version bump PRs (#15733) (cherry picked from commit 03a9d5a1f132bbd3d1f01d34792ebd599f5ef875) Co-authored-by: Yihau Chen --- .github/workflows/bump-version.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index a81dd8462e5..9d828f9c950 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -19,8 +19,6 @@ jobs: version-bump: if: github.repository_owner == 'anza-xyz' runs-on: ubuntu-24.04 - permissions: - pull-requests: write environment: "Version Bump" steps: - name: Create github app token @@ -78,7 +76,7 @@ jobs: NEW_VERSION: ${{ steps.process.outputs.new_version }} TARGET_BRANCH: ${{ steps.process.outputs.target_branch }} with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ steps.app-token.outputs.token }} script: | const pr = await github.rest.pulls.create({ owner: context.repo.owner, From b45ac63796e3b9cb0c3cb83511848c489fad5df0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 16:50:48 +0200 Subject: [PATCH 04/17] v4.4: ci: add bypass user list to the buildkite triggering pipeline (backport of #15682) (#15792) ci: add bypass user list to the buildkite triggering pipeline (#15682) (cherry picked from commit 2612b5c27830eff21c6661843822f6d5ecd0ec50) Co-authored-by: Yihau Chen --- .github/workflows/trigger-buildkite-pipeline.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/trigger-buildkite-pipeline.yml b/.github/workflows/trigger-buildkite-pipeline.yml index 0b3e2c4c0b7..b794ffcc8c6 100644 --- a/.github/workflows/trigger-buildkite-pipeline.yml +++ b/.github/workflows/trigger-buildkite-pipeline.yml @@ -33,6 +33,16 @@ jobs: REPO: ${{ github.repository }} USERNAME: ${{ github.event.sender.login }} run: | + TRUSTED_CI_USERS=( + "mergify[bot]" + ) + for trusted_ci_user in "${TRUSTED_CI_USERS[@]}"; do + if [[ "$USERNAME" == "$trusted_ci_user" ]]; then + echo "should_trigger=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + done + ROLE_NAME=$(curl -sS -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $GH_TOKEN" \ From 57a359162d8e3a3dc4211a0bf95ea14fd57dbddf Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:15:04 +0200 Subject: [PATCH 05/17] v4.4: ci: url encode username in bulidkite triggering piepline (backport of #15684) (#15790) ci: url encode username in bulidkite triggering piepline (#15684) (cherry picked from commit 8769cd339defdbc224cb3e3623b2ca9fe60e7d6d) Co-authored-by: Yihau Chen --- .github/workflows/trigger-buildkite-pipeline.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/trigger-buildkite-pipeline.yml b/.github/workflows/trigger-buildkite-pipeline.yml index b794ffcc8c6..8c9d6b4a3c8 100644 --- a/.github/workflows/trigger-buildkite-pipeline.yml +++ b/.github/workflows/trigger-buildkite-pipeline.yml @@ -43,11 +43,12 @@ jobs: fi done + ENCODED_USERNAME=$(jq -rn --arg username "$USERNAME" '$username | @uri') ROLE_NAME=$(curl -sS -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $GH_TOKEN" \ -H "X-GitHub-Api-Version: 2026-03-10" \ - https://api.github.com/repos/$REPO/collaborators/$USERNAME/permission | jq -r ".role_name") + "https://api.github.com/repos/$REPO/collaborators/$ENCODED_USERNAME/permission" | jq -r ".role_name") case "$ROLE_NAME" in admin|maintain|write|triage) From 52570c9eb17b789333f903c88c598c44a50d49d9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 18:19:14 +0200 Subject: [PATCH 06/17] v4.4: Perf - Checks the ELF header of loader-v1/v2 programs earlier (backport of #15544) (#15751) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Perf - Checks the ELF header of loader-v1/v2 programs earlier (#15544) * Checks the ELF header of loader-v1/v2 programs earlier in get_program_deployment_slot(). * Review feeback by @buffalojoec * Review feedback by @bw-solana (cherry picked from commit affd9f159ce3d6ec96900d12aca5fa4200876eaa) # Conflicts: # svm/Cargo.toml * Fixes git merge conflicts. --------- Co-authored-by: Alexander Meißner --- dev-bins/Cargo.lock | 1 + programs/sbf/Cargo.lock | 1 + svm/Cargo.toml | 1 + svm/src/program_loader.rs | 30 ++++++++++++++++++++---------- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/dev-bins/Cargo.lock b/dev-bins/Cargo.lock index cc46d819639..669d4bc99c3 100644 --- a/dev-bins/Cargo.lock +++ b/dev-bins/Cargo.lock @@ -8531,6 +8531,7 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 4.3.0", "solana-rent", + "solana-sbpf", "solana-sdk-ids", "solana-signature", "solana-slot-hashes", diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 97979db3449..bfe212f97d6 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -9470,6 +9470,7 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 4.3.0", "solana-rent", + "solana-sbpf", "solana-sdk-ids", "solana-slot-hashes 4.0.0", "solana-svm-callback", diff --git a/svm/Cargo.toml b/svm/Cargo.toml index 7743237b8c7..787c7641b47 100644 --- a/svm/Cargo.toml +++ b/svm/Cargo.toml @@ -99,6 +99,7 @@ solana-program-pack = { workspace = true } solana-program-runtime = { workspace = true } solana-pubkey = { workspace = true } solana-rent = { workspace = true } +solana-sbpf = { workspace = true } solana-sdk-ids = { workspace = true } solana-signature = { workspace = true, optional = true } solana-slot-hashes = { workspace = true, optional = true, features = ["wincode"] } diff --git a/svm/src/program_loader.rs b/svm/src/program_loader.rs index 772be7a21fc..fa81910f6fb 100644 --- a/svm/src/program_loader.rs +++ b/svm/src/program_loader.rs @@ -13,6 +13,7 @@ use { program_cache_entry::{ProgramCacheEntry, ProgramCacheEntryOwner}, }, solana_pubkey::Pubkey, + solana_sbpf::elf_parser::consts::ELFMAG, solana_sdk_ids::{bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable, loader_v4}, solana_svm_callback::TransactionProcessingCallback, solana_svm_timings::ExecuteTimings, @@ -196,10 +197,10 @@ fn get_program_deployment_slot( ProgramCacheEntryOwner::LoaderV1 | ProgramCacheEntryOwner::LoaderV2 => { // V1 & V2 programs are immutable and hold no deployment metadata. // As long as there is *some* kind of ELF present, return slot 0. - if program.data().is_empty() { - Err(TransactionError::ProgramAccountNotFound) - } else { + if program.data().starts_with(&ELFMAG) { Ok(0) + } else { + Err(TransactionError::ProgramAccountNotFound) } } ProgramCacheEntryOwner::LoaderV3 => { @@ -577,7 +578,7 @@ mod tests { // Fail: invalid state let mut program_account = AccountSharedData::default(); program_account.set_owner(loader_v4::id()); - program_account.set_data_from_slice(&[0u8; 4]); + program_account.set_data_from_slice(&[0u8; 4]); // `Uninitialized` mock_bank .account_shared_data .borrow_mut() @@ -1059,7 +1060,7 @@ mod tests { ); // Success - account.set_data_from_slice(&[1u8; 4]); + account.set_data_from_slice(&ELFMAG); assert_eq!( get_program_deployment_slot(&mock_bank, &account, loader).unwrap(), 0 // <-- slot is always zero for both loaders @@ -1155,7 +1156,7 @@ mod tests { // Fail: invalid state let mut program_account = AccountSharedData::default(); program_account.set_owner(loader_v4::id()); - program_account.set_data_from_slice(&[0u8; 4]); + program_account.set_data_from_slice(&[0u8; 4]); // `Uninitialized` assert_eq!( get_program_deployment_slot( &mock_bank, @@ -1250,10 +1251,12 @@ mod tests { .account_shared_data .borrow_mut() .insert(loader_ids[i], AccountSharedData::new(1, 1, &program_ids[3])); + let mut program = AccountSharedData::new(1, 1, &loader_ids[i]); + program.set_data_from_slice(&ELFMAG); mock_bank .account_shared_data .borrow_mut() - .insert(program_ids[i], AccountSharedData::new(1, 1, &loader_ids[i])); + .insert(program_ids[i], program); mock_bank.account_shared_data.borrow_mut().insert( account_ids[i], AccountSharedData::new(1, 1, &program_ids[i]), @@ -1402,15 +1405,22 @@ mod tests { .insert(key, empty); assert!(filter_executable_program_accounts(&mock_bank, &batch, keys.iter()).is_empty()); - // Any non-empty data is considered to *maybe* be a program. + // Same goes for non-empty but zero filled data. let mut account = AccountSharedData::default(); account.set_owner(owner); - account.set_data_from_slice(&[1u8; 4]); + account.set_data_from_slice(&[0u8; 4]); // `Uninitialized` mock_bank .account_shared_data .borrow_mut() - .insert(key, account); + .insert(key, account.clone()); + assert!(filter_executable_program_accounts(&mock_bank, &batch, keys.iter()).is_empty()); + // Account must start with ELFMAG to be considered a program. + account.set_data_from_slice(&ELFMAG); + mock_bank + .account_shared_data + .borrow_mut() + .insert(key, account); let result = filter_executable_program_accounts(&mock_bank, &batch, keys.iter()); assert_eq!(result.len(), 1); let program_to_load = result.first().unwrap(); From ad5909d9af5c863214c15a41fa4dff4c6cd7067e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 18:40:13 +0200 Subject: [PATCH 07/17] v4.4: bigtable: don't upload past the blockstore's max root (backport of #15804) (#15838) bigtable: don't upload past the blockstore's max root (#15804) * bigtable: don't upload past the blockstore's max root Under Alpenglow, votor publishes a new root to the commitment cache (`update_commitment_cache`) a few milliseconds before the bank forks controller writes the root markers with `Blockstore::set_roots`. The upload service took the end of each pass from the commitment cache root. When every slot in a pass's range is still unrooted in the blockstore at that moment, as with the first block after a fully skipped leader window, `upload_confirmed_blocks` finds no rooted slots, logs "Ledger has no slots from A to B" and returns B as done. The service then moves past the block and never uploads it. A single new root doesn't hit this because the service waits until the range spans more than one slot, and by then the marker is written. Cap the end of each pass at `blockstore.max_root()`, which only advances after the root batch is written. Under TowerBFT the blockstore roots are written before the commitment cache root moves, so the cap changes nothing there. The range computation moves into `next_upload_end_slot` so a test can run the service's passes across the race. The test fails without the cap ("slot 156 was skipped"). * bigtable: drop the commitment cache from the upload bound With passes capped at `blockstore.max_root()`, the commitment cache root adds nothing. The cache was only a stand-in for the node's root here (#21401). Under TowerBFT it never leads `blockstore.max_root()`, because replay writes the blockstore roots before it updates the commitment cache. Under Alpenglow it can lead, which is the race fixed in the previous commit. At startup `max_complete_transaction_status_slot` already starts at `blockstore.max_root()`. Bound each pass by `max_complete_transaction_status_slot` and `blockstore.max_root()` only, both of which describe what the blockstore holds. Drop the now-unused `block_commitment_cache` parameter from `BigTableUploadService::new` and `new_with_config`. The test now models the race as transaction statuses complete through the new root while its root marker isn't written yet. * bigtable: test `next_upload_end_slot` directly With the commitment cache gone, the race is fully described by `next_upload_end_slot`, so the test no longer needs to run a pass through `upload_confirmed_blocks` against an unconnected emulator client. Assert on the computed end slot instead, and cover the start-slot boundaries: a pass starting before the highest written root runs up to it, and one starting at that root waits for the next root. Also shorten the `next_upload_end_slot` doc comment. * bigtable: simplify the `next_upload_end_slot` doc comment Describe the bound in terms of the blockstore alone. --------- (cherry picked from commit 641770c9ced722194f0cb8f9e723eaa76559c1a5) Co-authored-by: Justin Starry Co-authored-by: Claude Opus 5.5 --- ledger/src/bigtable_upload_service.rs | 118 +++++++++++++++++++++----- rpc/src/rpc_service.rs | 1 - 2 files changed, 98 insertions(+), 21 deletions(-) diff --git a/ledger/src/bigtable_upload_service.rs b/ledger/src/bigtable_upload_service.rs index 84db803f151..979cbf68b47 100644 --- a/ledger/src/bigtable_upload_service.rs +++ b/ledger/src/bigtable_upload_service.rs @@ -3,11 +3,11 @@ use { bigtable_upload::{self, ConfirmedBlockUploadConfig}, blockstore::Blockstore, }, - solana_runtime::commitment::BlockCommitmentCache, + solana_clock::Slot, std::{ cmp::min, sync::{ - Arc, RwLock, + Arc, atomic::{AtomicBool, AtomicU64, Ordering}, }, thread::{self, Builder, JoinHandle}, @@ -24,7 +24,6 @@ impl BigTableUploadService { runtime: Arc, bigtable_ledger_storage: solana_storage_bigtable::LedgerStorage, blockstore: Arc, - block_commitment_cache: Arc>, max_complete_transaction_status_slot: Arc, exit: Arc, ) -> Self { @@ -32,7 +31,6 @@ impl BigTableUploadService { runtime, bigtable_ledger_storage, blockstore, - block_commitment_cache, max_complete_transaction_status_slot, ConfirmedBlockUploadConfig::default(), exit, @@ -43,7 +41,6 @@ impl BigTableUploadService { runtime: Arc, bigtable_ledger_storage: solana_storage_bigtable::LedgerStorage, blockstore: Arc, - block_commitment_cache: Arc>, max_complete_transaction_status_slot: Arc, config: ConfirmedBlockUploadConfig, exit: Arc, @@ -56,7 +53,6 @@ impl BigTableUploadService { runtime, bigtable_ledger_storage, blockstore, - block_commitment_cache, max_complete_transaction_status_slot, config, exit, @@ -71,7 +67,6 @@ impl BigTableUploadService { runtime: Arc, bigtable_ledger_storage: solana_storage_bigtable::LedgerStorage, blockstore: Arc, - block_commitment_cache: Arc>, max_complete_transaction_status_slot: Arc, config: ConfirmedBlockUploadConfig, exit: Arc, @@ -82,21 +77,15 @@ impl BigTableUploadService { break; } - // The highest slot eligible for upload is the highest root that - // has complete block metadata - let highest_complete_root = std::cmp::min( - max_complete_transaction_status_slot.load(Ordering::SeqCst), - block_commitment_cache.read().unwrap().root(), - ); - let end_slot = min( - highest_complete_root, - start_slot.saturating_add(config.max_num_slots_to_check as u64 * 2), - ); - - if end_slot <= start_slot { + let Some(end_slot) = next_upload_end_slot( + start_slot, + &max_complete_transaction_status_slot, + &blockstore, + &config, + ) else { std::thread::sleep(std::time::Duration::from_secs(1)); continue; - } + }; let result = runtime.block_on(bigtable_upload::upload_confirmed_blocks( blockstore.clone(), @@ -124,3 +113,92 @@ impl BigTableUploadService { self.thread.join() } } + +/// Returns the last slot of the next upload pass starting at `start_slot`, or +/// `None` if there is nothing new to upload yet. +/// +/// The pass never extends past `blockstore.max_root()`, because +/// `upload_confirmed_blocks` treats a range with no rooted slots as done. +fn next_upload_end_slot( + start_slot: Slot, + max_complete_transaction_status_slot: &AtomicU64, + blockstore: &Blockstore, + config: &ConfirmedBlockUploadConfig, +) -> Option { + let highest_complete_root = min( + max_complete_transaction_status_slot.load(Ordering::SeqCst), + blockstore.max_root(), + ); + let end_slot = min( + highest_complete_root, + start_slot.saturating_add(config.max_num_slots_to_check as u64 * 2), + ); + (end_slot > start_slot).then_some(end_slot) +} + +#[cfg(test)] +mod tests { + use {super::*, crate::get_tmp_ledger_path_auto_delete}; + + #[test] + fn test_block_after_skipped_window_waits_for_root_marker() { + let ledger_path = get_tmp_ledger_path_auto_delete!(); + let blockstore = Blockstore::open(ledger_path.path()).unwrap(); + let config = ConfirmedBlockUploadConfig { + max_num_slots_to_check: 16, + ..ConfirmedBlockUploadConfig::default() + }; + + // Everything up to root 150 is uploaded. Slots 151..=155 were skipped, + // and block 156 is the new root. Its transaction statuses are written, + // but its root marker isn't yet. + blockstore.set_roots([0, 150].iter()).unwrap(); + let max_complete_transaction_status_slot = AtomicU64::new(156); + + // The pass must not run past the unwritten root. + let start_slot = 151; + assert_eq!( + next_upload_end_slot( + start_slot, + &max_complete_transaction_status_slot, + &blockstore, + &config, + ), + None, + "pass would skip slot 156", + ); + + // A pass starting before the highest written root runs up to it... + assert_eq!( + next_upload_end_slot( + 149, + &max_complete_transaction_status_slot, + &blockstore, + &config + ), + Some(150), + ); + // ...but not when it starts at the root; that waits for the next root. + assert_eq!( + next_upload_end_slot( + 150, + &max_complete_transaction_status_slot, + &blockstore, + &config + ), + None, + ); + + // Once the marker is written, the pass from 151 includes 156. + blockstore.set_roots([156].iter()).unwrap(); + assert_eq!( + next_upload_end_slot( + start_slot, + &max_complete_transaction_status_slot, + &blockstore, + &config, + ), + Some(156), + ); + } +} diff --git a/rpc/src/rpc_service.rs b/rpc/src/rpc_service.rs index 7a1a1a79e10..7544f777262 100644 --- a/rpc/src/rpc_service.rs +++ b/rpc/src/rpc_service.rs @@ -649,7 +649,6 @@ impl JsonRpcService { runtime.clone(), bigtable_ledger_storage.clone(), blockstore.clone(), - block_commitment_cache.clone(), max_complete_transaction_status_slot.clone(), ConfirmedBlockUploadConfig::default(), exit_bigtable_ledger_upload_service.clone(), From 63e3388653bd353d39a68c3b751058dfe90d7c65 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 19:56:36 +0200 Subject: [PATCH 08/17] v4.4: vote-program: Disable `DepositDelegatorRewards` (backport of #15795) (#15812) * vote-program: Disable `DepositDelegatorRewards` (#15795) #### Problem The `DepositDelegatorRewards` instruction in its current form has issues, as outlined in this [SIMD Discussion](https://github.com/solana-foundation/solana-improvement-documents/discussions/686). #### Summary of changes Return an error from the instruction processor. Also, rekey SIMD-0123, since the behavior under its feature gate is changing. #### Testing New test to make sure error is always returned. (cherry picked from commit 70cbde8f361d4ccab1384e32083177f8b4ff87c7) # Conflicts: # runtime/src/bank/tests.rs * Update test hash --------- Co-authored-by: Jon C --- feature-set/src/lib.rs | 2 +- programs/vote/src/vote_processor.rs | 74 ++++++++++++++++++++++------- runtime/src/bank/tests.rs | 2 +- 3 files changed, 59 insertions(+), 19 deletions(-) diff --git a/feature-set/src/lib.rs b/feature-set/src/lib.rs index 3375fe7298f..055011810aa 100644 --- a/feature-set/src/lib.rs +++ b/feature-set/src/lib.rs @@ -1442,7 +1442,7 @@ pub mod limit_instruction_accounts { } pub mod block_revenue_sharing { - solana_pubkey::declare_id!("DSroRTaL5zozFw5yRYpaCTjeND1mSxxsnAeSi5vhELUv"); + solana_pubkey::declare_id!("Crbnc267wkJvFhYakqwWWX57sx5bkrftJLekzy6yWKLT"); } pub mod vote_account_initialize_v2 { diff --git a/programs/vote/src/vote_processor.rs b/programs/vote/src/vote_processor.rs index cb642f6afa0..b2e180c8ebb 100644 --- a/programs/vote/src/vote_processor.rs +++ b/programs/vote/src/vote_processor.rs @@ -388,23 +388,8 @@ declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context| &rent, ) } - VoteInstruction::DepositDelegatorRewards { deposit } => { - // SIMD-0123: Deposit delegator rewards. - // Requires: - // * SIMD-0185: Vote State V4 - // * SIMD-0291: Commission in Basis Points - // * SIMD-0232: Custom Commission Collector - let feature_set = invoke_context.get_feature_set(); - if !feature_set.commission_rate_in_basis_points - || !feature_set.custom_commission_collector - || !feature_set.block_revenue_sharing - { - return Err(InstructionError::InvalidInstructionData); - } - - instruction_context.check_number_of_instruction_accounts(2)?; - drop(me); - vote_state::deposit_delegator_rewards(invoke_context, 0, 1, deposit, &signers) + VoteInstruction::DepositDelegatorRewards { .. } => { + return Err(InstructionError::InvalidInstructionData); } } }); @@ -4854,7 +4839,62 @@ mod tests { } } + #[test] + fn test_deposit_delegator_rewards_fails() { + let (vote_pubkey, _authorized_voter, _authorized_withdrawer, vote_account_v4) = + create_test_account_with_authorized(); + + // Create source account with enough lamports to transfer. + let source_pubkey = Pubkey::new_unique(); + let source_lamports = 1_000_000; + let source_account = + AccountSharedData::new(source_lamports, 0, &solana_sdk_ids::system_program::id()); + + let deposit_amount = 100_000; + + let instruction_data = serialize(&VoteInstruction::DepositDelegatorRewards { + deposit: deposit_amount, + }) + .unwrap(); + + let instruction_accounts = vec![ + AccountMeta { + pubkey: vote_pubkey, + is_signer: false, + is_writable: true, + }, + AccountMeta { + pubkey: source_pubkey, + is_signer: true, + is_writable: true, + }, + AccountMeta { + pubkey: solana_sdk_ids::system_program::id(), + is_signer: false, + is_writable: false, + }, + ]; + + let transaction_accounts = vec![ + (vote_pubkey, vote_account_v4.clone()), + (source_pubkey, source_account.clone()), + ( + solana_sdk_ids::system_program::id(), + AccountSharedData::new(0, 0, &solana_sdk_ids::native_loader::id()), + ), + ]; + + process_instruction( + VoteProgramFeatures::all_enabled(), + &instruction_data, + transaction_accounts.clone(), + instruction_accounts.clone(), + Err(InstructionError::InvalidInstructionData), + ); + } + // Test DepositDelegatorRewards instruction (SIMD-0123). + #[ignore] #[test] fn test_deposit_delegator_rewards() { const DEPOSIT_DELEGATOR_REWARDS_COMPUTE_UNITS: u64 = diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index 313a509de2b..d7d6fee1f98 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -5826,7 +5826,7 @@ fn test_bank_hash_deterministic_with_stakes_cache() { assert_eq!( bank2.hash().to_string(), - "FhK44Rm28aCttSnQr5BpxBaNW526YmFW21wUNBNUNcQm", + "7a8DqBCzW6im48e6PTUL1qmFh1X3FdNa3eRncz98CqQ8", ); } From 9ef7cde0acd7efa93eac1c408d25d54510279d53 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 23:48:47 +0300 Subject: [PATCH 09/17] v4.4: gossip: reduce bufferbloat (backport of #15636) (#15752) gossip: reduce bufferbloat (#15636) Confine ingress channel to 2 sigverify iterations Reduce sigverify iteration batch to <200ms Reduce post-sigverify consume channel to 4 rounds of sigverify. (cherry picked from commit 476e8d07f205632038da876c6241cc76abd7932a) Co-authored-by: Alex Pyattaev --- gossip/src/cluster_info.rs | 48 +++++++++++++++++++++++------------- gossip/src/gossip_service.rs | 9 ++++--- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/gossip/src/cluster_info.rs b/gossip/src/cluster_info.rs index e20d8ff4b5a..89b84338d75 100644 --- a/gossip/src/cluster_info.rs +++ b/gossip/src/cluster_info.rs @@ -101,24 +101,36 @@ pub const GOSSIP_SLEEP_MILLIS: u64 = 100; /// Interval between pull requests (in gossip rounds) const PULL_REQUEST_PERIOD: usize = 5; -/// Capacity for the [`ClusterInfo::run_socket_consume`] and [`ClusterInfo::run_listen`] -/// intermediate packet batch buffers. +/// Max number of packet batches sigverified in one [`ClusterInfo::run_socket_consume`] iteration. /// -/// To avoid the overhead of dropping large sets of packet batches in each processing loop, -/// we limit the number of packet batches that are pulled from the corresponding channel on each iteration. -/// This ensures that the number of `madvise` system calls is minimized and, as such, that large interruptions -/// to the processing loop are avoided. -const CHANNEL_CONSUME_CAPACITY: usize = 1024; -/// Channel capacity for gossip channels. +/// Bounds sigverify latency per iteration: +/// 64 batches * 64 packets * ~150us per packet / 8 threads = 80ms. +/// Here 150us is rough estimate of time to sigverify 1 Protocol instance. +const SIGVERIFY_BATCH_CAPACITY: usize = 64; + +/// Channel capacity for the gossip sigverify -> listen channel, and max number of +/// sigverified message sets processed per [`ClusterInfo::run_listen`] iteration. +/// +/// Each message set is the output of one [`ClusterInfo::run_socket_consume`] iteration, +/// i.e. up to [`SIGVERIFY_BATCH_CAPACITY`] packet batches. [`ClusterInfo::run_listen`] +/// drains the whole channel in one iteration. /// -/// A hard limit on incoming gossip messages. +/// Value chosen empirically to allow slack to absorb small sets without evicting sigverified +/// packets, while under max load keeping listen queue latency to ~200ms. +pub(crate) const CHANNEL_CONSUME_CAPACITY: usize = 4; + +/// Channel capacity for the gossip socket -> sigverify channel. /// -/// 262,144 packets with saturated packet batches (64 packets). +/// Holds enough packet batches for 2 sigverify iterations, bounding queueing +/// latency ahead of sigverify to ~200ms (2 rounds of 80-100ms). +pub(crate) const GOSSIP_INGRESS_CHANNEL_CAPACITY: usize = 2 * SIGVERIFY_BATCH_CAPACITY; + +/// Channel capacity for the gossip egress channel. /// -/// 114,688 packets with observed average packet batch size (28 packets), -/// putting this within reasonable range of previous hard limit -/// of `MAX_GOSSIP_TRAFFIC` (103,896). -pub(crate) const GOSSIP_CHANNEL_CAPACITY: usize = 4096; // 2^12 +/// Each element is the entire output of one producer iteration, but we do not +/// want to ever drop anything here, so this is deliberately overprovisioned. +pub(crate) const GOSSIP_CHANNEL_CAPACITY: usize = 4096; + const GOSSIP_PING_CACHE_CAPACITY: usize = 126976; pub(crate) const GOSSIP_PING_CACHE_TTL: Duration = Duration::from_secs(1280); /// Per-entry Pong wait timeout is drawn uniformly from this range (in milliseconds). @@ -2169,7 +2181,7 @@ impl ClusterInfo { { num_packets += packet_batch.len(); packet_buf.push(packet_batch); - if packet_buf.len() == CHANNEL_CONSUME_CAPACITY { + if packet_buf.len() == SIGVERIFY_BATCH_CAPACITY { break; } } @@ -2246,7 +2258,9 @@ impl ClusterInfo { } }) }; - if let Err(TrySendError::Full(_)) = sender.try_send(packets_verified) { + if !packets_verified.is_empty() + && let Err(TrySendError::Full(_)) = sender.try_send(packets_verified) + { self.stats.gossip_packets_dropped_count.add_relaxed( packet_buf .iter() @@ -2310,7 +2324,7 @@ impl ClusterInfo { .thread_name(|i| format!("solGossipCons{i:02}")) .build() .unwrap(); - let mut packet_buf = Vec::with_capacity(CHANNEL_CONSUME_CAPACITY); + let mut packet_buf = Vec::with_capacity(SIGVERIFY_BATCH_CAPACITY); let run_consume = move || { while !exit.load(Ordering::Relaxed) { let result = self.run_socket_consume( diff --git a/gossip/src/gossip_service.rs b/gossip/src/gossip_service.rs index 6bbc6a1d2fa..6dc8276914c 100644 --- a/gossip/src/gossip_service.rs +++ b/gossip/src/gossip_service.rs @@ -2,7 +2,10 @@ use { crate::{ - cluster_info::{ClusterInfo, GOSSIP_CHANNEL_CAPACITY}, + cluster_info::{ + CHANNEL_CONSUME_CAPACITY, ClusterInfo, GOSSIP_CHANNEL_CAPACITY, + GOSSIP_INGRESS_CHANNEL_CAPACITY, + }, cluster_info_metrics::submit_gossip_stats, contact_info::ContactInfo, epoch_specs::EpochSpecs, @@ -56,7 +59,7 @@ impl GossipService { exit: Arc, ) -> Self { let (request_sender, request_receiver) = - EvictingSender::new_bounded(GOSSIP_CHANNEL_CAPACITY); + EvictingSender::new_bounded(GOSSIP_INGRESS_CHANNEL_CAPACITY); trace!( "GossipService: id: {}, listening on primary interface: {:?}, all available \ interfaces: {:?}", @@ -77,7 +80,7 @@ impl GossipService { false, ); let (consume_sender, listen_receiver) = - EvictingSender::new_bounded(GOSSIP_CHANNEL_CAPACITY); + EvictingSender::new_bounded(CHANNEL_CONSUME_CAPACITY); let t_socket_consume = cluster_info.clone().start_socket_consume_thread( epoch_specs.as_ref().map(|es| es.clone_box()), request_receiver, From 8039fb4b79dc3adb9253b3beac67df46cce9135a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:37:38 +0900 Subject: [PATCH 10/17] v4.4: runtime: ebpp relax relatch (backport of #15766) (#15810) runtime: ebpp relax relatch (#15766) (cherry picked from commit 619625ea509dc414d9b21a026b74ba319fd11391) Co-authored-by: Joe Caulfield --- runtime/src/bank.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index b69abf427e2..7c186a8fc93 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -1713,12 +1713,7 @@ impl Bank { .write() .unwrap(); - if *current_env != *upcoming_env - && ebpp - .upcoming_environment - .as_ref() - .is_none_or(|e| **e != *upcoming_env) - { + if *current_env != *upcoming_env && ebpp.upcoming_environment.as_ref().is_none() { // A different environment is upcoming and we are not preparing for // it yet. Initiate or restart EBPP. let pc = self From 565cb110f340eee77fdb9d34b89435ef7be86a72 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:38:32 +0900 Subject: [PATCH 11/17] v4.4: program-runtime: extract: use rooted access slot (backport of #15811) (#15833) program-runtime: extract: use rooted access slot (#15811) (cherry picked from commit 3453d0f1398a569bead54aaed324d1c5f0ae6e3c) Co-authored-by: Joe Caulfield --- program-runtime/src/loaded_programs.rs | 36 +++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/program-runtime/src/loaded_programs.rs b/program-runtime/src/loaded_programs.rs index 0e09873463d..bce3df759a4 100644 --- a/program-runtime/src/loaded_programs.rs +++ b/program-runtime/src/loaded_programs.rs @@ -692,7 +692,9 @@ impl ProgramCache { } else { continue; }; - entry.update_access_slot(loaded_programs_for_tx_batch.slot); + entry.update_access_slot( + loaded_programs_for_tx_batch.slot.min(self.latest_root_slot), + ); if increment_usage_counter { entry_to_return.stats.uses.fetch_add(1, Ordering::Relaxed); } @@ -3423,6 +3425,7 @@ pub(crate) mod tests { new_program(env.clone()), ); cache.assign_program(&env, program_id, 100, Arc::clone(&entry)); + cache.latest_root_slot = batch_slot; let slot_versions = cache.get_slot_versions_for_tests(&program_id); assert_eq!(slot_versions.len(), 1); @@ -3702,6 +3705,7 @@ pub(crate) mod tests { new_loaded_entry(env.clone()), ); cache.assign_program(&env, program_id, 100, Arc::clone(&entry)); + cache.latest_root_slot = 200; let mut search_for = vec![ProgramToLoad { program_id: &program_id, @@ -3736,6 +3740,7 @@ pub(crate) mod tests { new_loaded_entry(env.clone()), ); cache.assign_program(&env, program_id, 100, Arc::clone(&entry)); + cache.latest_root_slot = 100; // Extract at the deployment slot itself, which is inside the delay // visibility window, so a `DelayVisibility` tombstone stands in for @@ -4284,6 +4289,35 @@ pub(crate) mod tests { )); } + #[test] + fn test_extract_access_slot_clamped_to_root() { + let (mut cache, _fork_graph) = new_test_cache_with_fork_graph(BlockRelation::Ancestor); + let env = get_mock_program_runtime_environment(); + let program_id = Pubkey::new_unique(); + let entry = new_test_entry_with_owner( + 100, + ProgramCacheEntryOwner::LoaderV3, + new_loaded_entry(env.clone()), + ); + cache.assign_program(&env, program_id, 100, Arc::clone(&entry)); + + let batch_slot = 200; + for root_slot in [0, 150, batch_slot] { + cache.latest_root_slot = root_slot; + + let mut search_for = vec![ProgramToLoad { + program_id: &program_id, + loader: ProgramCacheEntryOwner::LoaderV3, + deployment_slot: 100, + }]; + let mut extracted = ProgramCacheForTxBatch::new(batch_slot); + cache.extract(&mut search_for, &mut extracted, &env, true, true); + + assert!(search_for.is_empty()); + assert_eq!(entry.latest_access_slot.load(Ordering::Relaxed), root_slot); + } + } + #[test] fn test_unloaded() { let mut cache = ProgramCache::::new(0); From bfd97eede5a9fda27b2c4793c0d89c854d9d048a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 09:37:33 -0500 Subject: [PATCH 12/17] v4.4: fix: use Alpenglow slot timing for transaction buffering (backport of #15589) (#15658) --- core/src/banking_stage.rs | 14 +- core/src/banking_stage/decision_maker.rs | 166 ++++++++++++++++-- core/src/banking_stage/progress_tracker.rs | 2 +- .../scheduler_controller.rs | 7 +- 4 files changed, 172 insertions(+), 17 deletions(-) diff --git a/core/src/banking_stage.rs b/core/src/banking_stage.rs index d32da7589ef..0eccb1f463e 100644 --- a/core/src/banking_stage.rs +++ b/core/src/banking_stage.rs @@ -549,7 +549,12 @@ impl BankingStage { bounded(num_workers.saturating_mul(CHANNEL_CAPACITY)); // Spawn the worker threads - let decision_maker = DecisionMaker::from(self.poh_recorder.read().unwrap().deref()); + let migration_status = self.bank_forks.read().unwrap().migration_status(); + let decision_maker = DecisionMaker::new( + self.poh_recorder.read().unwrap().shared_leader_state(), + migration_status, + self.alpenglow_slot_clock.clone(), + ); let mut worker_metrics = Vec::with_capacity(num_workers); for (index, work_receiver) in work_receivers.into_iter().enumerate() { let id = index as u32; @@ -636,7 +641,12 @@ impl BankingStage { self.transaction_recorder.clone(), self.log_messages_bytes_limit, ); - let decision_maker = DecisionMaker::from(self.poh_recorder.read().unwrap().deref()); + let migration_status = self.bank_forks.read().unwrap().migration_status(); + let decision_maker = DecisionMaker::new( + self.poh_recorder.read().unwrap().shared_leader_state(), + migration_status, + self.alpenglow_slot_clock.clone(), + ); let worker_exit_signal = self.worker_exit_signal.clone(); let shutdown_signal = self.banking_shutdown_signal.clone(); diff --git a/core/src/banking_stage/decision_maker.rs b/core/src/banking_stage/decision_maker.rs index e6fd79fd45e..a0e7e0abc73 100644 --- a/core/src/banking_stage/decision_maker.rs +++ b/core/src/banking_stage/decision_maker.rs @@ -1,11 +1,14 @@ use { + super::progress_tracker::alpenglow_slot_progress, + agave_votor::slot_clock::SharedAlpenglowSlotClock, + agave_votor_messages::migration::MigrationStatus, solana_clock::{ DEFAULT_TICKS_PER_SLOT, FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET, HOLD_TRANSACTIONS_SLOT_OFFSET, }, - solana_poh::poh_recorder::{PohRecorder, SharedLeaderState}, + solana_poh::poh_recorder::{LeaderState, SharedLeaderState}, solana_runtime::bank::Bank, - std::sync::Arc, + std::{sync::Arc, time::Instant}, }; #[derive(Debug, Clone)] @@ -29,6 +32,8 @@ impl BufferedPacketsDecision { #[derive(Clone)] pub struct DecisionMaker { shared_leader_state: SharedLeaderState, + migration_status: Arc, + alpenglow_slot_clock: SharedAlpenglowSlotClock, } impl std::fmt::Debug for DecisionMaker { @@ -38,18 +43,66 @@ impl std::fmt::Debug for DecisionMaker { } impl DecisionMaker { - pub fn new(shared_leader_state: SharedLeaderState) -> Self { + pub fn new( + shared_leader_state: SharedLeaderState, + migration_status: Arc, + alpenglow_slot_clock: SharedAlpenglowSlotClock, + ) -> Self { Self { shared_leader_state, + migration_status, + alpenglow_slot_clock, } } pub(crate) fn make_consume_or_forward_decision(&self) -> BufferedPacketsDecision { + self.make_consume_or_forward_decision_at(Instant::now()) + } + + fn make_consume_or_forward_decision_at(&self, now: Instant) -> BufferedPacketsDecision { let state = self.shared_leader_state.load(); if let Some(working_bank) = state.working_bank() { BufferedPacketsDecision::Consume(working_bank.clone()) - } else if let Some(leader_first_tick_height) = state.leader_first_tick_height() { + } else if self.migration_status.is_alpenglow_enabled() { + self.make_decision_alpenglow(&state, now) + } else { + Self::make_decision_poh(&state) + } + } + + fn make_decision_alpenglow( + &self, + state: &LeaderState, + now: Instant, + ) -> BufferedPacketsDecision { + let Some((leader_slot, last_leader_slot)) = state.next_leader_slot_range() else { + return BufferedPacketsDecision::Forward; + }; + let Some(slot_info) = self.alpenglow_slot_clock.load() else { + return BufferedPacketsDecision::Forward; + }; + // PoH tick height no longer advances after Alpenglow activation. + let (current_slot, _) = alpenglow_slot_progress( + slot_info.slot, + now.saturating_duration_since(slot_info.started_at), + slot_info.slot_duration, + ); + if current_slot > last_leader_slot { + return BufferedPacketsDecision::Forward; + } + let slots_until_leader = leader_slot.saturating_sub(current_slot); + if slots_until_leader < FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET { + BufferedPacketsDecision::Hold + } else if slots_until_leader < HOLD_TRANSACTIONS_SLOT_OFFSET { + BufferedPacketsDecision::ForwardAndHold + } else { + BufferedPacketsDecision::Forward + } + } + + fn make_decision_poh(state: &LeaderState) -> BufferedPacketsDecision { + if let Some(leader_first_tick_height) = state.leader_first_tick_height() { let current_tick_height = state.tick_height(); let ticks_until_leader = leader_first_tick_height.saturating_sub(current_tick_height); if ticks_until_leader @@ -67,17 +120,10 @@ impl DecisionMaker { } } -impl From<&PohRecorder> for DecisionMaker { - fn from(poh_recorder: &PohRecorder) -> Self { - Self::new(poh_recorder.shared_leader_state()) - } -} - #[cfg(test)] mod tests { use { - super::*, solana_ledger::genesis_utils::create_genesis_config, - solana_poh::poh_recorder::LeaderState, solana_runtime::bank::Bank, + super::*, solana_ledger::genesis_utils::create_genesis_config, solana_runtime::bank::Bank, }; #[test] @@ -89,6 +135,97 @@ mod tests { assert!(BufferedPacketsDecision::Hold.bank().is_none()); } + #[test] + fn test_alpenglow_decision_with_stopped_ticks() { + use std::time::Duration; + + let mut shared_leader_state = SharedLeaderState::new(0, None, Some((24, 27))); + let clock = SharedAlpenglowSlotClock::default(); + let decision_maker = DecisionMaker::new( + shared_leader_state.clone(), + Arc::new(MigrationStatus::post_migration_status()), + clock.clone(), + ); + let started_at = Instant::now(); + let slot_duration = Duration::from_millis(200); + + // No clock observation yet. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Forward + ); + + clock.update(4, started_at, slot_duration); + // Exactly twenty slots away: do not buffer yet. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Forward + ); + // Progress within the slot does not change the buffering decision. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at + slot_duration / 2), + BufferedPacketsDecision::Forward + ); + // Time advances while tick height stays at zero. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at + slot_duration), + BufferedPacketsDecision::ForwardAndHold + ); + // A stale observation cannot advance past its leader window. + assert_matches!( + decision_maker + .make_consume_or_forward_decision_at(started_at + Duration::from_secs(60)), + BufferedPacketsDecision::ForwardAndHold + ); + + clock.update(20, started_at, slot_duration); + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at + slot_duration * 2), + BufferedPacketsDecision::ForwardAndHold + ); + // Exactly one slot away. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at + slot_duration * 3), + BufferedPacketsDecision::Hold + ); + // The leader window has begun but no working bank is available. + clock.update(24, started_at, slot_duration); + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Hold + ); + + // Keep buffering through the final slot of our leader window. + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at + slot_duration * 3), + BufferedPacketsDecision::Hold + ); + // A newer observation beyond our window must stop buffering. + clock.update(28, started_at, slot_duration); + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Forward + ); + + shared_leader_state.store(Arc::new(LeaderState::new(None, 0, None, None))); + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Forward + ); + + // A working bank takes precedence over timing and schedule information. + shared_leader_state.store(Arc::new(LeaderState::new( + Some(Arc::new(Bank::default_for_tests())), + 0, + None, + None, + ))); + assert_matches!( + decision_maker.make_consume_or_forward_decision_at(started_at), + BufferedPacketsDecision::Consume(_) + ); + } + #[test] fn test_make_consume_or_forward_decision() { let genesis_config = create_genesis_config(2).genesis_config; @@ -96,7 +233,10 @@ mod tests { let mut shared_leader_state = SharedLeaderState::new(0, None, None); - let decision_maker = DecisionMaker::new(shared_leader_state.clone()); + // Before migration, decisions must use ticks even if a clock is populated. + let clock = SharedAlpenglowSlotClock::default(); + clock.update(100, Instant::now(), std::time::Duration::from_millis(200)); + let decision_maker = DecisionMaker::new(shared_leader_state.clone(), Arc::default(), clock); // No active bank, no leader first tick height. assert_matches!( diff --git a/core/src/banking_stage/progress_tracker.rs b/core/src/banking_stage/progress_tracker.rs index 92e8ff3a3cc..bc465feee78 100644 --- a/core/src/banking_stage/progress_tracker.rs +++ b/core/src/banking_stage/progress_tracker.rs @@ -304,7 +304,7 @@ fn next_alpenglow_progress_deadline( started_at.checked_add(Duration::from_nanos_u128(next_boundary_nanos)) } -fn alpenglow_slot_progress( +pub(super) fn alpenglow_slot_progress( window_start_slot: Slot, elapsed: Duration, slot_duration: Duration, diff --git a/core/src/banking_stage/transaction_scheduler/scheduler_controller.rs b/core/src/banking_stage/transaction_scheduler/scheduler_controller.rs index 08efc0bab0d..1ad223dd929 100644 --- a/core/src/banking_stage/transaction_scheduler/scheduler_controller.rs +++ b/core/src/banking_stage/transaction_scheduler/scheduler_controller.rs @@ -617,6 +617,7 @@ mod tests { agave_banking_stage_ingress_types::{ BankingPacketBatch, BankingPacketReceiver, to_banking_packet_batch, }, + agave_votor::slot_clock::SharedAlpenglowSlotClock, crossbeam_channel::{Receiver, Sender, bounded}, itertools::Itertools, solana_account::{AccountSharedData, state_traits::StateMutWincode as _}, @@ -723,7 +724,11 @@ mod tests { let shared_leader_state = SharedLeaderState::new(0, None, None); - let decision_maker = DecisionMaker::new(shared_leader_state.clone()); + let decision_maker = DecisionMaker::new( + shared_leader_state.clone(), + bank_forks.read().unwrap().migration_status(), + SharedAlpenglowSlotClock::default(), + ); let (banking_packet_sender, banking_packet_receiver) = bounded(1024); let receive_and_buffer = From 968b24ce78d4c4c516d7376f6d200ba4da650e1a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 23:51:15 +0200 Subject: [PATCH 13/17] v4.4: fix: make Alpenglow slot timing available on Windows (backport of #15886) (#15891) * fix: make Alpenglow slot timing available on Windows (#15886) (cherry picked from commit 53b462b6d6197d400eee09a3a25a320c773132a3) # Conflicts: # core/src/banking_stage/progress_tracker.rs * resolve conflicts --------- Co-authored-by: Andrew Fitzgerald --- core/src/banking_stage.rs | 1 + core/src/banking_stage/alpenglow_timing.rs | 113 +++++++++++++++++++++ core/src/banking_stage/decision_maker.rs | 2 +- core/src/banking_stage/progress_tracker.rs | 103 +------------------ 4 files changed, 116 insertions(+), 103 deletions(-) create mode 100644 core/src/banking_stage/alpenglow_timing.rs diff --git a/core/src/banking_stage.rs b/core/src/banking_stage.rs index 0eccb1f463e..6a49cd2d141 100644 --- a/core/src/banking_stage.rs +++ b/core/src/banking_stage.rs @@ -59,6 +59,7 @@ use { pub mod transaction_scheduler; +mod alpenglow_timing; mod committer; mod consume_worker; mod consumer; diff --git a/core/src/banking_stage/alpenglow_timing.rs b/core/src/banking_stage/alpenglow_timing.rs new file mode 100644 index 00000000000..5d1d315c957 --- /dev/null +++ b/core/src/banking_stage/alpenglow_timing.rs @@ -0,0 +1,113 @@ +//! Shared slot timing calculations for Alpenglow. + +use { + solana_clock::Slot, solana_runtime::leader_schedule_utils::last_of_consecutive_leader_slots, + std::time::Duration, +}; + +pub(super) const ALPENGLOW_PROGRESS_STEP: u8 = 5; + +fn alpenglow_progress(elapsed: Duration, slot_duration: Duration) -> u8 { + if slot_duration.is_zero() { + return 100; + } + + let percentage = elapsed + .as_nanos() + .saturating_mul(100) + .saturating_div(slot_duration.as_nanos()) + .min(100) as u8; + (percentage / ALPENGLOW_PROGRESS_STEP) * ALPENGLOW_PROGRESS_STEP +} + +pub(super) fn alpenglow_slot_progress( + window_start_slot: Slot, + elapsed: Duration, + slot_duration: Duration, +) -> (Slot, u8) { + let window_end_slot = last_of_consecutive_leader_slots(window_start_slot); + if slot_duration.is_zero() { + return (window_end_slot, 100); + } + + let elapsed_nanos = elapsed.as_nanos(); + let slot_duration_nanos = slot_duration.as_nanos(); + let elapsed_slots = elapsed_nanos / slot_duration_nanos; + let window_slot_offset = u128::from(window_end_slot - window_start_slot); + if elapsed_slots > window_slot_offset { + return (window_end_slot, 100); + } + + let current_slot = window_start_slot + elapsed_slots as Slot; + let elapsed_in_slot = Duration::from_nanos_u128(elapsed_nanos % slot_duration_nanos); + ( + current_slot, + alpenglow_progress(elapsed_in_slot, slot_duration), + ) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_alpenglow_progress() { + let slot_duration = Duration::from_millis(400); + assert_eq!(alpenglow_progress(Duration::ZERO, slot_duration), 0); + assert_eq!( + alpenglow_progress(Duration::from_millis(19), slot_duration), + 0 + ); + assert_eq!( + alpenglow_progress(Duration::from_millis(20), slot_duration), + 5 + ); + assert_eq!( + alpenglow_progress(Duration::from_millis(399), slot_duration), + 95 + ); + assert_eq!(alpenglow_progress(slot_duration, slot_duration), 100); + assert_eq!( + alpenglow_progress(Duration::from_millis(800), slot_duration), + 100 + ); + assert_eq!(alpenglow_progress(Duration::ZERO, Duration::ZERO), 100); + } + + #[test] + fn test_alpenglow_slot_progress() { + let slot_duration = Duration::from_millis(400); + assert_eq!( + alpenglow_slot_progress(4, Duration::ZERO, slot_duration), + (4, 0) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::from_millis(399), slot_duration), + (4, 95) + ); + assert_eq!( + alpenglow_slot_progress(4, slot_duration, slot_duration), + (5, 0) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::from_millis(800), slot_duration), + (6, 0) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::from_millis(1_599), slot_duration), + (7, 95) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::from_millis(1_600), slot_duration), + (7, 100) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::from_millis(200), Duration::from_millis(200)), + (5, 0) + ); + assert_eq!( + alpenglow_slot_progress(4, Duration::ZERO, Duration::ZERO), + (7, 100) + ); + } +} diff --git a/core/src/banking_stage/decision_maker.rs b/core/src/banking_stage/decision_maker.rs index a0e7e0abc73..e9400f89112 100644 --- a/core/src/banking_stage/decision_maker.rs +++ b/core/src/banking_stage/decision_maker.rs @@ -1,5 +1,5 @@ use { - super::progress_tracker::alpenglow_slot_progress, + super::alpenglow_timing::alpenglow_slot_progress, agave_votor::slot_clock::SharedAlpenglowSlotClock, agave_votor_messages::migration::MigrationStatus, solana_clock::{ diff --git a/core/src/banking_stage/progress_tracker.rs b/core/src/banking_stage/progress_tracker.rs index bc465feee78..712916c6236 100644 --- a/core/src/banking_stage/progress_tracker.rs +++ b/core/src/banking_stage/progress_tracker.rs @@ -2,6 +2,7 @@ //! use { + super::alpenglow_timing::{ALPENGLOW_PROGRESS_STEP, alpenglow_slot_progress}, crate::banking_stage::consume_worker::ConsumeWorkerMetrics, agave_scheduler_bindings::ProgressMessage, agave_votor::slot_clock::SharedAlpenglowSlotClock, @@ -9,7 +10,6 @@ use { solana_clock::{BankId, Slot}, solana_cost_model::cost_tracker::{SharedAllocatedAccountsDataSize, SharedBlockCost}, solana_poh::poh_recorder::SharedLeaderState, - solana_runtime::leader_schedule_utils::last_of_consecutive_leader_slots, std::{ sync::{ Arc, @@ -20,7 +20,6 @@ use { }, }; -const ALPENGLOW_PROGRESS_STEP: u8 = 5; const ALPENGLOW_PROGRESS_SPIN_DURATION: Duration = Duration::from_millis(1); /// Spawns a thread to track and send progress updates. @@ -271,19 +270,6 @@ fn target_bank_time_ms(ns_per_slot: u128) -> u16 { u16::try_from(milliseconds).unwrap_or(u16::MAX) } -fn alpenglow_progress(elapsed: Duration, slot_duration: Duration) -> u8 { - if slot_duration.is_zero() { - return 100; - } - - let percentage = elapsed - .as_nanos() - .saturating_mul(100) - .saturating_div(slot_duration.as_nanos()) - .min(100) as u8; - (percentage / ALPENGLOW_PROGRESS_STEP) * ALPENGLOW_PROGRESS_STEP -} - fn next_alpenglow_progress_deadline( started_at: Instant, slot_duration: Duration, @@ -304,32 +290,6 @@ fn next_alpenglow_progress_deadline( started_at.checked_add(Duration::from_nanos_u128(next_boundary_nanos)) } -pub(super) fn alpenglow_slot_progress( - window_start_slot: Slot, - elapsed: Duration, - slot_duration: Duration, -) -> (Slot, u8) { - let window_end_slot = last_of_consecutive_leader_slots(window_start_slot); - if slot_duration.is_zero() { - return (window_end_slot, 100); - } - - let elapsed_nanos = elapsed.as_nanos(); - let slot_duration_nanos = slot_duration.as_nanos(); - let elapsed_slots = elapsed_nanos / slot_duration_nanos; - let window_slot_offset = u128::from(window_end_slot - window_start_slot); - if elapsed_slots > window_slot_offset { - return (window_end_slot, 100); - } - - let current_slot = window_start_slot + elapsed_slots as Slot; - let elapsed_in_slot = Duration::from_nanos_u128(elapsed_nanos % slot_duration_nanos); - ( - current_slot, - alpenglow_progress(elapsed_in_slot, slot_duration), - ) -} - fn alpenglow_bank_progress( bank_slot: Slot, window_start_slot: Slot, @@ -554,30 +514,6 @@ mod tests { ); } - #[test] - fn test_alpenglow_progress() { - let slot_duration = Duration::from_millis(400); - assert_eq!(alpenglow_progress(Duration::ZERO, slot_duration), 0); - assert_eq!( - alpenglow_progress(Duration::from_millis(19), slot_duration), - 0 - ); - assert_eq!( - alpenglow_progress(Duration::from_millis(20), slot_duration), - 5 - ); - assert_eq!( - alpenglow_progress(Duration::from_millis(399), slot_duration), - 95 - ); - assert_eq!(alpenglow_progress(slot_duration, slot_duration), 100); - assert_eq!( - alpenglow_progress(Duration::from_millis(800), slot_duration), - 100 - ); - assert_eq!(alpenglow_progress(Duration::ZERO, Duration::ZERO), 100); - } - #[test] fn test_next_alpenglow_progress_deadline() { let started_at = Instant::now(); @@ -616,43 +552,6 @@ mod tests { ); } - #[test] - fn test_alpenglow_slot_progress() { - let slot_duration = Duration::from_millis(400); - assert_eq!( - alpenglow_slot_progress(4, Duration::ZERO, slot_duration), - (4, 0) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::from_millis(399), slot_duration), - (4, 95) - ); - assert_eq!( - alpenglow_slot_progress(4, slot_duration, slot_duration), - (5, 0) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::from_millis(800), slot_duration), - (6, 0) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::from_millis(1_599), slot_duration), - (7, 95) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::from_millis(1_600), slot_duration), - (7, 100) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::from_millis(200), Duration::from_millis(200)), - (5, 0) - ); - assert_eq!( - alpenglow_slot_progress(4, Duration::ZERO, Duration::ZERO), - (7, 100) - ); - } - #[test] fn test_alpenglow_bank_progress() { let slot_duration = Duration::from_millis(400); From d0cb719c37f548775031b7e0f13207920c9d5bd4 Mon Sep 17 00:00:00 2001 From: Greg Cusack Date: Mon, 12 Oct 2026 13:15:11 -0700 Subject: [PATCH 14/17] v4.4: vendor quinn-proto 0.11.18 and quinn 0.11.12 (#15954) vendor quinn-proto 0.11.18 and quinn 0.11.12 --- Cargo.lock | 60 ++++++++++++++++++++++++++++++++++------- Cargo.toml | 4 +-- dev-bins/Cargo.lock | 58 +++++++++++++++++++++++++++++++++------ programs/sbf/Cargo.lock | 58 +++++++++++++++++++++++++++++++++------ 4 files changed, 153 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c35c567ced..601fbf3a06e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -567,13 +567,13 @@ dependencies = [ name = "agave-votor-transport" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", + "anza-quinn-proto", "arrayvec", "bytes", "crossbeam-channel", "log", "qualifier_attr", - "quinn", - "quinn-proto", "solana-keypair", "solana-metrics", "solana-net-utils", @@ -800,6 +800,50 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[package]] +name = "anza-quinn" +version = "0.11.12-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd524576ab56786d8241905b12498e8ec6b9a09a58bfe8ef9e9dfcf511aeecf4" +dependencies = [ + "anza-quinn-proto", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.6.5", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "anza-quinn-proto" +version = "0.11.18-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfece0ce5ffc483085c0112b8499dabab137e2eb028f1ff3a28d5b24d6d477" +dependencies = [ + "bytes", + "fastbloom", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.2", + "rand_pcg 0.10.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + [[package]] name = "arbitrary" version = "1.4.2" @@ -5617,7 +5661,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc" dependencies = [ "bytes", - "fastbloom", "getrandom 0.4.3", "lru-slab", "rand 0.10.2", @@ -5626,7 +5669,6 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "slab", "thiserror 2.0.20", "tinyvec", @@ -9210,6 +9252,7 @@ dependencies = [ "agave-logger", "agave-xdp", "anyhow", + "anza-quinn", "bincode", "bytes", "cfg-if 1.0.4", @@ -9219,7 +9262,6 @@ dependencies = [ "log", "nix", "pcap-file", - "quinn", "rand 0.9.4", "serde", "shuttle", @@ -9741,12 +9783,12 @@ name = "solana-quic-client" version = "4.4.0-beta.0" dependencies = [ "agave-logger", + "anza-quinn", "async-lock", "async-trait", "crossbeam-channel", "futures 0.3.34", "log", - "quinn", "solana-connection-cache", "solana-keypair", "solana-measure", @@ -10737,6 +10779,7 @@ version = "4.4.0-beta.0" dependencies = [ "agave-logger", "anyhow", + "anza-quinn", "assert_matches", "bytes", "chrono", @@ -10750,7 +10793,6 @@ dependencies = [ "nix", "num_cpus", "pem", - "quinn", "rand 0.9.4", "rustls", "smallvec", @@ -11139,7 +11181,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" name = "solana-tls-utils" version = "4.4.0-beta.0" dependencies = [ - "quinn", + "anza-quinn", "rustls", "rustls-webpki", "solana-keypair", @@ -11230,6 +11272,7 @@ dependencies = [ name = "solana-tpu-client-next" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "async-trait", "bytes", "crossbeam-channel", @@ -11238,7 +11281,6 @@ dependencies = [ "itertools 0.15.0", "log", "lru 0.18.4", - "quinn", "rustls", "serde_json", "solana-clock", diff --git a/Cargo.toml b/Cargo.toml index 6785b0f7c9d..0bc70e428b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -300,8 +300,8 @@ prost-types = "0.14.4" protobuf-src = "1.1.0" protosol = "=15.0.0" qualifier_attr = { version = "0.2.2", default-features = false } -quinn = "0.11.12" -quinn-proto = "0.11.18" +quinn = { package = "anza-quinn", version = "=0.11.12-issue2860.1" } +quinn-proto = { package = "anza-quinn-proto", version = "=0.11.18-issue2860.1" } rand = "0.9.4" rand_chacha = "0.9.0" rayon = "1.12.0" diff --git a/dev-bins/Cargo.lock b/dev-bins/Cargo.lock index 669d4bc99c3..4a5d27f7a6d 100644 --- a/dev-bins/Cargo.lock +++ b/dev-bins/Cargo.lock @@ -539,12 +539,12 @@ dependencies = [ name = "agave-votor-transport" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "arrayvec", "bytes", "crossbeam-channel", "log", "qualifier_attr", - "quinn", "solana-keypair", "solana-metrics", "solana-net-utils", @@ -699,6 +699,50 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[package]] +name = "anza-quinn" +version = "0.11.12-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd524576ab56786d8241905b12498e8ec6b9a09a58bfe8ef9e9dfcf511aeecf4" +dependencies = [ + "anza-quinn-proto", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.10", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "anza-quinn-proto" +version = "0.11.18-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfece0ce5ffc483085c0112b8499dabab137e2eb028f1ff3a28d5b24d6d477" +dependencies = [ + "bytes", + "fastbloom", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.2", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + [[package]] name = "arc-swap" version = "1.9.2" @@ -4661,7 +4705,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc" dependencies = [ "bytes", - "fastbloom", "getrandom 0.4.3", "lru-slab", "rand 0.10.2", @@ -4670,7 +4713,6 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "slab", "thiserror 2.0.20", "tinyvec", @@ -7310,6 +7352,7 @@ name = "solana-net-utils" version = "4.4.0-beta.0" dependencies = [ "agave-xdp", + "anza-quinn", "bincode", "bytes", "cfg-if 1.0.4", @@ -7317,7 +7360,6 @@ dependencies = [ "itertools 0.15.0", "log", "nix", - "quinn", "rand 0.9.4", "serde", "socket2 0.6.5", @@ -7656,11 +7698,11 @@ dependencies = [ name = "solana-quic-client" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "async-lock", "async-trait", "futures 0.3.34", "log", - "quinn", "solana-connection-cache", "solana-keypair", "solana-measure", @@ -8464,6 +8506,7 @@ dependencies = [ name = "solana-streamer" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "bytes", "crossbeam-channel", "futures 0.3.34", @@ -8474,7 +8517,6 @@ dependencies = [ "nix", "num_cpus", "pem", - "quinn", "rand 0.9.4", "rustls", "smallvec", @@ -8787,7 +8829,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" name = "solana-tls-utils" version = "4.4.0-beta.0" dependencies = [ - "quinn", + "anza-quinn", "rustls", "rustls-webpki", "solana-keypair", @@ -8827,6 +8869,7 @@ dependencies = [ name = "solana-tpu-client-next" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "async-trait", "bytes", "futures 0.3.34", @@ -8834,7 +8877,6 @@ dependencies = [ "itertools 0.15.0", "log", "lru 0.18.4", - "quinn", "rustls", "solana-clock 4.0.0", "solana-commitment-config", diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index bfe212f97d6..188f32f4fb9 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -464,12 +464,12 @@ dependencies = [ name = "agave-votor-transport" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "arrayvec", "bytes", "crossbeam-channel", "log", "qualifier_attr", - "quinn", "solana-keypair", "solana-metrics", "solana-net-utils", @@ -633,6 +633,50 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[package]] +name = "anza-quinn" +version = "0.11.12-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd524576ab56786d8241905b12498e8ec6b9a09a58bfe8ef9e9dfcf511aeecf4" +dependencies = [ + "anza-quinn-proto", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.6.5", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "anza-quinn-proto" +version = "0.11.18-issue2860.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfece0ce5ffc483085c0112b8499dabab137e2eb028f1ff3a28d5b24d6d477" +dependencies = [ + "bytes", + "fastbloom", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.2", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + [[package]] name = "arc-swap" version = "1.9.2" @@ -4579,7 +4623,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc" dependencies = [ "bytes", - "fastbloom", "getrandom 0.4.3", "lru-slab", "rand 0.10.2", @@ -4588,7 +4631,6 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-platform-verifier", "slab", "thiserror 2.0.20", "tinyvec", @@ -7383,6 +7425,7 @@ name = "solana-net-utils" version = "4.4.0-beta.0" dependencies = [ "agave-xdp", + "anza-quinn", "bincode", "bytes", "cfg-if 1.0.4", @@ -7390,7 +7433,6 @@ dependencies = [ "itertools 0.15.0", "log", "nix", - "quinn", "rand 0.9.4", "serde", "socket2 0.6.5", @@ -7841,11 +7883,11 @@ dependencies = [ name = "solana-quic-client" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "async-lock", "async-trait", "futures 0.3.34", "log", - "quinn", "solana-connection-cache", "solana-keypair", "solana-measure", @@ -9407,6 +9449,7 @@ dependencies = [ name = "solana-streamer" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "bytes", "crossbeam-channel", "futures 0.3.34", @@ -9417,7 +9460,6 @@ dependencies = [ "nix", "num_cpus", "pem", - "quinn", "rand 0.9.4", "rustls", "smallvec", @@ -9790,7 +9832,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" name = "solana-tls-utils" version = "4.4.0-beta.0" dependencies = [ - "quinn", + "anza-quinn", "rustls", "rustls-webpki", "solana-keypair", @@ -9830,6 +9872,7 @@ dependencies = [ name = "solana-tpu-client-next" version = "4.4.0-beta.0" dependencies = [ + "anza-quinn", "async-trait", "bytes", "futures 0.3.34", @@ -9837,7 +9880,6 @@ dependencies = [ "itertools 0.15.0", "log", "lru 0.18.4", - "quinn", "rustls", "solana-clock 4.0.0", "solana-commitment-config", From 3ad9da2c390eb7ad2630ed15afcd463e72e007a8 Mon Sep 17 00:00:00 2001 From: "agave-version-bumper[bot]" <292809028+agave-version-bumper[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2026 08:33:23 +0200 Subject: [PATCH 15/17] Bump version to 4.4.0-beta.1 (#15983) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Cargo.lock | 248 ++++++------- Cargo.toml | 208 +++++------ dev-bins/Cargo.lock | 196 +++++------ dev-bins/Cargo.toml | 118 +++---- programs/sbf/Cargo.lock | 326 +++++++++--------- programs/sbf/Cargo.toml | 54 +-- .../example-programs/clock-sysvar/Cargo.toml | 2 +- .../complex-transfer/Cargo.toml | 2 +- .../example-programs/hello-solana/Cargo.toml | 2 +- .../simple-transfer/Cargo.toml | 2 +- .../transfer-from-account/Cargo.toml | 2 +- .../write-to-account/Cargo.toml | 2 +- 12 files changed, 581 insertions(+), 581 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 601fbf3a06e..6dbf17df023 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -62,7 +62,7 @@ dependencies = [ [[package]] name = "agave-banking-stage-ingress-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "solana-perf", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "agave-bls-cert-verify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-votor-messages", @@ -89,7 +89,7 @@ dependencies = [ [[package]] name = "agave-bls-sigverify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-bls-sigverify", @@ -132,14 +132,14 @@ dependencies = [ [[package]] name = "agave-cpu-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "libc", ] [[package]] name = "agave-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "solana-epoch-schedule", @@ -152,7 +152,7 @@ dependencies = [ [[package]] name = "agave-fs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-io-uring", "io-uring", @@ -187,7 +187,7 @@ dependencies = [ [[package]] name = "agave-install" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "bzip2", @@ -215,7 +215,7 @@ dependencies = [ [[package]] name = "agave-io-uring" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "io-uring", "libc", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "agave-logger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "env_logger", "libc", @@ -236,7 +236,7 @@ dependencies = [ [[package]] name = "agave-math-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-math-utils", "num-traits", @@ -246,7 +246,7 @@ dependencies = [ [[package]] name = "agave-precompiles" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -272,7 +272,7 @@ dependencies = [ [[package]] name = "agave-random" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "rand 0.9.4", @@ -284,7 +284,7 @@ dependencies = [ [[package]] name = "agave-reserved-account-keys" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-message", @@ -315,7 +315,7 @@ dependencies = [ [[package]] name = "agave-scheduling-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-scheduler-bindings", @@ -333,7 +333,7 @@ dependencies = [ [[package]] name = "agave-snapshots" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "agave-logger", @@ -365,7 +365,7 @@ dependencies = [ [[package]] name = "agave-store-histogram" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "clap 2.33.3", "solana-version", @@ -391,7 +391,7 @@ dependencies = [ [[package]] name = "agave-validator" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-feature-set", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "agave-votor" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-sigverify", "agave-logger", @@ -540,7 +540,7 @@ dependencies = [ [[package]] name = "agave-votor-messages" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bitvec", @@ -565,7 +565,7 @@ dependencies = [ [[package]] name = "agave-votor-transport" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "anza-quinn-proto", @@ -586,7 +586,7 @@ dependencies = [ [[package]] name = "agave-watchtower" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -609,7 +609,7 @@ dependencies = [ [[package]] name = "agave-xdp" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-xdp", @@ -629,7 +629,7 @@ dependencies = [ [[package]] name = "agave-xdp-ebpf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "aya-ebpf", ] @@ -3131,7 +3131,7 @@ dependencies = [ [[package]] name = "gen-syscall-list" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "regex", ] @@ -5544,7 +5544,7 @@ dependencies = [ [[package]] name = "proto" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "protobuf-src", "tonic-prost-build", @@ -5909,7 +5909,7 @@ dependencies = [ [[package]] name = "rbpf-cli" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "redox_syscall" @@ -6887,7 +6887,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "assert_matches", @@ -6933,7 +6933,7 @@ dependencies = [ [[package]] name = "solana-account-decoder-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -6959,7 +6959,7 @@ dependencies = [ [[package]] name = "solana-accounts-cluster-bench" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "clap 2.33.3", @@ -7003,7 +7003,7 @@ dependencies = [ [[package]] name = "solana-accounts-db" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "agave-logger", @@ -7144,7 +7144,7 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "borsh", "futures 0.3.34", @@ -7175,7 +7175,7 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "serde", "solana-account", @@ -7193,7 +7193,7 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "crossbeam-channel", @@ -7249,7 +7249,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bencher", "bv", @@ -7335,7 +7335,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "bincode", @@ -7377,7 +7377,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program-tests" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "assert_matches", @@ -7401,7 +7401,7 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "bv", @@ -7421,7 +7421,7 @@ dependencies = [ [[package]] name = "solana-builtins" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", @@ -7438,7 +7438,7 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -7450,7 +7450,7 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "bip39", @@ -7483,7 +7483,7 @@ dependencies = [ [[package]] name = "solana-clap-v3-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "bip39", @@ -7518,7 +7518,7 @@ dependencies = [ [[package]] name = "solana-cli" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -7610,7 +7610,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "dirs-next", @@ -7622,7 +7622,7 @@ dependencies = [ [[package]] name = "solana-cli-output" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -7671,7 +7671,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "bincode", @@ -7708,7 +7708,7 @@ dependencies = [ [[package]] name = "solana-client-test" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "async-trait", @@ -7802,7 +7802,7 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -7810,7 +7810,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -7848,14 +7848,14 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] [[package]] name = "solana-compute-budget-program-bench" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "criterion", @@ -7885,7 +7885,7 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "async-trait", @@ -7905,7 +7905,7 @@ dependencies = [ [[package]] name = "solana-core" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "agave-bls-cert-verify", @@ -8063,7 +8063,7 @@ dependencies = [ [[package]] name = "solana-cost-model" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -8151,7 +8151,7 @@ dependencies = [ [[package]] name = "solana-download-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -8195,7 +8195,7 @@ dependencies = [ [[package]] name = "solana-ed25519-program-tests" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "rand 0.9.4", @@ -8212,7 +8212,7 @@ dependencies = [ [[package]] name = "solana-entry" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-reserved-account-keys", @@ -8337,7 +8337,7 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "log", @@ -8363,7 +8363,7 @@ dependencies = [ [[package]] name = "solana-faucet-cli" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "clap 2.33.3", @@ -8397,7 +8397,7 @@ dependencies = [ [[package]] name = "solana-fee" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-svm-transaction", @@ -8479,7 +8479,7 @@ dependencies = [ [[package]] name = "solana-genesis" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -8560,7 +8560,7 @@ dependencies = [ [[package]] name = "solana-genesis-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -8584,7 +8584,7 @@ dependencies = [ [[package]] name = "solana-geyser-plugin-manager" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-geyser-plugin-interface", "agave-votor-messages", @@ -8624,7 +8624,7 @@ dependencies = [ [[package]] name = "solana-gossip" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-random", @@ -8694,7 +8694,7 @@ dependencies = [ [[package]] name = "solana-gossip-cli" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "clap 2.33.3", @@ -8855,7 +8855,7 @@ dependencies = [ [[package]] name = "solana-keygen" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "bip39", @@ -8915,7 +8915,7 @@ dependencies = [ [[package]] name = "solana-lattice-hash" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "blake3", @@ -8929,7 +8929,7 @@ dependencies = [ [[package]] name = "solana-leader-schedule" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-random", "itertools 0.15.0", @@ -8944,7 +8944,7 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -9098,7 +9098,7 @@ dependencies = [ [[package]] name = "solana-local-cluster" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -9179,11 +9179,11 @@ dependencies = [ [[package]] name = "solana-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-merkle-tree" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "hex", "solana-hash", @@ -9213,7 +9213,7 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bencher", "crossbeam-channel", @@ -9247,7 +9247,7 @@ checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-xdp", @@ -9309,7 +9309,7 @@ dependencies = [ [[package]] name = "solana-notifier" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", "reqwest 0.12.28", @@ -9363,7 +9363,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-random", @@ -9412,7 +9412,7 @@ dependencies = [ [[package]] name = "solana-poh" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-logger", @@ -9449,7 +9449,7 @@ dependencies = [ [[package]] name = "solana-poh-bench" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "clap 3.2.23", @@ -9550,7 +9550,7 @@ dependencies = [ [[package]] name = "solana-program-binaries" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "solana-account", @@ -9610,7 +9610,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "base64 0.23.1", @@ -9669,7 +9669,7 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -9756,7 +9756,7 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "crossbeam-channel", @@ -9780,7 +9780,7 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "anza-quinn", @@ -9810,7 +9810,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", "num_cpus", @@ -9819,7 +9819,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "console 0.16.4", @@ -9876,7 +9876,7 @@ dependencies = [ [[package]] name = "solana-rpc" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-reserved-account-keys", @@ -9985,7 +9985,7 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "assert_matches", @@ -10036,7 +10036,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "jsonrpc-core", @@ -10055,7 +10055,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "clap 2.33.3", @@ -10085,7 +10085,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -10111,7 +10111,7 @@ dependencies = [ [[package]] name = "solana-rpc-test" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "bincode", @@ -10145,7 +10145,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-feature-set", @@ -10287,7 +10287,7 @@ dependencies = [ [[package]] name = "solana-runtime-transaction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-reserved-account-keys", @@ -10425,7 +10425,7 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "crossbeam-channel", @@ -10631,7 +10631,7 @@ dependencies = [ [[package]] name = "solana-stake-accounts" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "clap 2.33.3", "solana-account", @@ -10704,7 +10704,7 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-reserved-account-keys", "base64 0.23.1", @@ -10748,7 +10748,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bs58", "enum-iterator", @@ -10775,7 +10775,7 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "anyhow", @@ -10816,7 +10816,7 @@ dependencies = [ [[package]] name = "solana-svm" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-precompiles", @@ -10896,7 +10896,7 @@ dependencies = [ [[package]] name = "solana-svm-callback" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account", "solana-clock", @@ -10906,22 +10906,22 @@ dependencies = [ [[package]] name = "solana-svm-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-log-collector" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", ] [[package]] name = "solana-svm-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-timings" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "eager", "enum-iterator", @@ -10944,7 +10944,7 @@ dependencies = [ [[package]] name = "solana-svm-type-overrides" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "futures 0.3.34", "rand 0.9.4", @@ -10953,7 +10953,7 @@ dependencies = [ [[package]] name = "solana-syscalls" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "bincode", @@ -11021,7 +11021,7 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "bincode", @@ -11116,7 +11116,7 @@ dependencies = [ [[package]] name = "solana-test-validator" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-snapshots", @@ -11179,7 +11179,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" [[package]] name = "solana-tls-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "rustls", @@ -11191,7 +11191,7 @@ dependencies = [ [[package]] name = "solana-tokens" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "assert_matches", @@ -11242,7 +11242,7 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "futures-util", "indicatif", @@ -11270,7 +11270,7 @@ dependencies = [ [[package]] name = "solana-tpu-client-next" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "async-trait", @@ -11333,7 +11333,7 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "qualifier_attr", @@ -11372,7 +11372,7 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -11419,7 +11419,7 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bincode", @@ -11443,7 +11443,7 @@ dependencies = [ [[package]] name = "solana-turbine" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -11497,7 +11497,7 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "solana-connection-cache", @@ -11510,7 +11510,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-logic" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-transaction-view", "assert_matches", @@ -11531,7 +11531,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-pool" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "agave-logger", @@ -11570,7 +11570,7 @@ checksum = "c5d2face763df5afeaa9509b9019968860e69cc1531ec8b4a2e6c7b702204d5a" [[package]] name = "solana-version" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -11587,7 +11587,7 @@ dependencies = [ [[package]] name = "solana-vote" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "arbitrary", "bencher", @@ -11655,7 +11655,7 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -11747,7 +11747,7 @@ dependencies = [ [[package]] name = "solana-zk-elgamal-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bytemuck", "criterion", @@ -11762,7 +11762,7 @@ dependencies = [ [[package]] name = "solana-zk-elgamal-proof-program-tests" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bytemuck", "solana-account", @@ -11830,7 +11830,7 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] diff --git a/Cargo.toml b/Cargo.toml index 0bc70e428b2..05b9459c601 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -136,7 +136,7 @@ exclude = [ resolver = "2" [workspace.package] -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" authors = ["Anza Maintainers "] description = "Blockchain, Rebuilt for Scale" repository = "https://github.com/anza-xyz/agave" @@ -167,29 +167,29 @@ new_without_default = "allow" [workspace.dependencies] Inflector = "0.11.4" -agave-banking-stage-ingress-types = { path = "banking-stage-ingress-types", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-bls-cert-verify = { path = "bls-cert-verify", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-bls-sigverify = { path = "bls-sigverify", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-cpu-utils = { path = "cpu-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-feature-set = { path = "feature-set", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-fs = { path = "fs", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-banking-stage-ingress-types = { path = "banking-stage-ingress-types", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-bls-cert-verify = { path = "bls-cert-verify", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-bls-sigverify = { path = "bls-sigverify", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-cpu-utils = { path = "cpu-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-feature-set = { path = "feature-set", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-fs = { path = "fs", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } agave-geyser-plugin-interface = "=5.0.0" -agave-io-uring = { path = "io-uring", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-logger = { path = "logger", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-math-utils = { path = "math-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-precompiles = { path = "precompiles", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-random = { path = "random", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-reserved-account-keys = { path = "reserved-account-keys", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-io-uring = { path = "io-uring", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-logger = { path = "logger", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-math-utils = { path = "math-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-precompiles = { path = "precompiles", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-random = { path = "random", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-reserved-account-keys = { path = "reserved-account-keys", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } agave-scheduler-bindings = "6.0.0" agave-scheduler-handshake = "7.0.0" -agave-scheduling-utils = { path = "scheduling-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-snapshots = { path = "snapshots", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-scheduling-utils = { path = "scheduling-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-snapshots = { path = "snapshots", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } agave-transaction-view = "7.0.0" -agave-votor = { path = "votor", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-votor-messages = { path = "votor-messages", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-votor-transport = { path = "votor-transport", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-xdp = { path = "xdp", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-xdp-ebpf = { path = "xdp-ebpf", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-votor = { path = "votor", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-votor-messages = { path = "votor-messages", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-votor-transport = { path = "votor-transport", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-xdp = { path = "xdp", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-xdp-ebpf = { path = "xdp-ebpf", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } ahash = "0.8.12" anyhow = "1.0.104" arbitrary = "1.4.2" @@ -334,68 +334,68 @@ smpl_jwt = "0.9.0" socket2 = "0.6.5" soketto = "0.8" solana-account = "5.0.0" -solana-account-decoder = { path = "account-decoder", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-account-decoder-client-types = { path = "account-decoder-client-types", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-account-decoder = { path = "account-decoder", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-account-decoder-client-types = { path = "account-decoder-client-types", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-account-info = "3.1.1" -solana-accounts-db = { path = "accounts-db", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-accounts-db = { path = "accounts-db", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-address = "2.7.0" solana-address-lookup-table-interface = "4.0.0" -solana-banks-client = { path = "banks-client", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-banks-interface = { path = "banks-interface", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-banks-server = { path = "banks-server", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-banks-client = { path = "banks-client", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-banks-interface = { path = "banks-interface", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-banks-server = { path = "banks-server", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-big-mod-exp = "4.0.0" solana-bincode = "4.0.0" solana-blake3-hasher = "3.1.0" -solana-bloom = { path = "bloom", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-bloom = { path = "bloom", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-bls-signatures = { version = "4.0.0", features = ["serde"] } solana-bls12-381-syscall = "0.1.1" solana-bn254 = "3.2.1" solana-borsh = "3.0.2" -solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } -solana-bucket-map = { path = "bucket_map", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-builtins = { path = "builtins", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-builtins-default-costs = { path = "builtins-default-costs", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-clap-utils = { path = "clap-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-clap-v3-utils = { path = "clap-v3-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-cli-config = { path = "cli-config", version = "=4.4.0-beta.0" } -solana-cli-output = { path = "cli-output", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-client = { path = "client", version = "=4.4.0-beta.0" } +solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } +solana-bucket-map = { path = "bucket_map", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-builtins = { path = "builtins", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-builtins-default-costs = { path = "builtins-default-costs", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-clap-utils = { path = "clap-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-clap-v3-utils = { path = "clap-v3-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-cli-config = { path = "cli-config", version = "=4.4.0-beta.1" } +solana-cli-output = { path = "cli-output", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-client = { path = "client", version = "=4.4.0-beta.1" } solana-client-traits = "5.0.0" solana-clock = "4.0.0" solana-cluster-type = "3.2.0" solana-commitment-config = "3.1.1" -solana-compute-budget = { path = "compute-budget", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-compute-budget-instruction = { path = "compute-budget-instruction", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-compute-budget = { path = "compute-budget", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-compute-budget-instruction = { path = "compute-budget-instruction", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-compute-budget-interface = "3.1.0" -solana-compute-budget-program = { path = "programs/compute-budget", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-compute-budget-program = { path = "programs/compute-budget", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-config-interface = "2.0.1" -solana-connection-cache = { path = "connection-cache", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } -solana-core = { path = "core", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-cost-model = { path = "cost-model", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-connection-cache = { path = "connection-cache", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } +solana-core = { path = "core", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-cost-model = { path = "cost-model", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-cpi = "3.1.0" solana-curve25519 = "4.0.1" solana-define-syscall = "5.2.0" solana-derivation-path = "3.0.0" -solana-download-utils = { path = "download-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-download-utils = { path = "download-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-ed25519-program = "3.0.0" -solana-entry = { path = "entry", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-entry = { path = "entry", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-epoch-info = "3.1.0" solana-epoch-rewards = "3.2.0" solana-epoch-rewards-hasher = "3.1.0" solana-epoch-schedule = "3.3.0" -solana-faucet = { path = "faucet", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-faucet = { path = "faucet", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-feature-gate-interface = "5.0.0" -solana-fee = { path = "fee", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-fee = { path = "fee", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-fee-calculator = "3.3.0" solana-fee-structure = "4.1.0" solana-file-download = "3.1.4" solana-frozen-abi = "3.8.0" solana-frozen-abi-macro = "3.6.0" -solana-genesis = { path = "genesis", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-genesis = { path = "genesis", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-genesis-config = "5.0.0" -solana-genesis-utils = { path = "genesis-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-gossip = { path = "gossip", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-genesis-utils = { path = "genesis-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-gossip = { path = "gossip", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-hard-forks = "3.2.0" solana-hash = "4.6.0" solana-hash-512 = "1.2.0" @@ -406,54 +406,54 @@ solana-instructions-sysvar = "5.0.0" solana-keccak-hasher = "3.1.0" solana-keypair = "4.0.0" solana-last-restart-slot = "3.2.0" -solana-lattice-hash = { path = "lattice-hash", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-leader-schedule = { path = "leader-schedule", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-ledger = { path = "ledger", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-lattice-hash = { path = "lattice-hash", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-leader-schedule = { path = "leader-schedule", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-ledger = { path = "ledger", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-loader-v2-interface = "3.0.0" solana-loader-v3-interface = "9.0.0" solana-loader-v4-interface = "3.1.0" -solana-local-cluster = { path = "local-cluster", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-measure = { path = "measure", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-merkle-tree = { path = "merkle-tree", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-local-cluster = { path = "local-cluster", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-measure = { path = "measure", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-merkle-tree = { path = "merkle-tree", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-message = "5.0.0" -solana-metrics = { path = "metrics", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-metrics = { path = "metrics", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-msg = "3.1.0" solana-native-token = "3.0.0" -solana-net-utils = { path = "net-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-net-utils = { path = "net-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-nohash-hasher = "0.2.1" solana-nonce = "3.3.0" solana-nonce-account = { version = "5.0.0", default-features = false } -solana-notifier = { path = "notifier", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-notifier = { path = "notifier", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-offchain-message = "4.0.0" solana-packet = "4.3.0" -solana-perf = { path = "perf", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-poh = { path = "poh", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-perf = { path = "perf", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-poh = { path = "poh", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-poh-config = "3.1.0" solana-poseidon = "5.0.0" solana-precompile-error = "3.0.0" solana-presigner = "4.0.0" solana-program = { version = "5.0.0", default-features = false } -solana-program-binaries = { path = "program-binaries", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-program-binaries = { path = "program-binaries", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-program-entrypoint = "3.1.1" solana-program-error = "3.0.1" solana-program-option = "3.1.0" solana-program-pack = "3.1.0" -solana-program-runtime = { path = "program-runtime", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-program-test = { path = "program-test", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-program-runtime = { path = "program-runtime", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-program-test = { path = "program-test", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-pubkey = { version = "4.3.0", default-features = false } -solana-pubsub-client = { path = "pubsub-client", version = "=4.4.0-beta.0" } -solana-quic-client = { path = "quic-client", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-remote-wallet = { path = "remote-wallet", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } +solana-pubsub-client = { path = "pubsub-client", version = "=4.4.0-beta.1" } +solana-quic-client = { path = "quic-client", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-remote-wallet = { path = "remote-wallet", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } solana-rent = "4.4.0" solana-reward-info = "7.0.0" -solana-rpc = { path = "rpc", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-rpc-client = { path = "rpc-client", version = "=4.4.0-beta.0", default-features = false } -solana-rpc-client-api = { path = "rpc-client-api", version = "=4.4.0-beta.0" } -solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=4.4.0-beta.0" } -solana-rpc-client-types = { path = "rpc-client-types", version = "=4.4.0-beta.0" } -solana-runtime = { path = "runtime", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-runtime-transaction = { path = "runtime-transaction", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-rpc = { path = "rpc", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-rpc-client = { path = "rpc-client", version = "=4.4.0-beta.1", default-features = false } +solana-rpc-client-api = { path = "rpc-client-api", version = "=4.4.0-beta.1" } +solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=4.4.0-beta.1" } +solana-rpc-client-types = { path = "rpc-client-types", version = "=4.4.0-beta.1" } +solana-runtime = { path = "runtime", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-runtime-transaction = { path = "runtime-transaction", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-sanitize = "3.0.1" solana-sbpf = { version = "=0.24.0", default-features = false } solana-sdk-ids = "3.1.0" @@ -462,7 +462,7 @@ solana-secp256k1-recover = "3.3.0" solana-secp256r1-program = "3.0.0" solana-seed-derivable = "3.0.0" solana-seed-phrase = "3.0.0" -solana-send-transaction-service = { path = "send-transaction-service", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-send-transaction-service = { path = "send-transaction-service", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-serde = "3.0.0" solana-serde-varint = "3.0.1" solana-serialize-utils = "4.0.0" @@ -478,48 +478,48 @@ solana-slot-history = "3.2.0" solana-stable-layout = "4.0.0" solana-stake-history = "2.0.0" solana-stake-interface = "5.0.0" -solana-storage-bigtable = { path = "storage-bigtable", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-storage-proto = { path = "storage-proto", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-streamer = { path = "streamer", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm = { path = "svm", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-callback = { path = "svm-callback", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-feature-set = { path = "svm-feature-set", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-log-collector = { path = "svm-log-collector", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-measure = { path = "svm-measure", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-timings = { path = "svm-timings", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-storage-bigtable = { path = "storage-bigtable", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-storage-proto = { path = "storage-proto", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-streamer = { path = "streamer", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm = { path = "svm", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-callback = { path = "svm-callback", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-feature-set = { path = "svm-feature-set", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-log-collector = { path = "svm-log-collector", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-measure = { path = "svm-measure", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-timings = { path = "svm-timings", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-svm-transaction = "6.0.0" -solana-svm-type-overrides = { path = "svm-type-overrides", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-syscalls = { path = "syscalls", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } +solana-svm-type-overrides = { path = "svm-type-overrides", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-syscalls = { path = "syscalls", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } solana-system-interface = { version = "3.3.0", features = ["alloc", "bincode", "serde", "wincode"] } -solana-system-program = { path = "programs/system", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-system-program = { path = "programs/system", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-system-transaction = "5.0.0" solana-sysvar = "5.0.0" solana-sysvar-id = "3.1.0" -solana-test-validator = { path = "test-validator", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-test-validator = { path = "test-validator", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-time-utils = "3.0.0" -solana-tls-utils = { path = "tls-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-tpu-client = { path = "tpu-client", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } -solana-tpu-client-next = { path = "tpu-client-next", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-tls-utils = { path = "tls-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-tpu-client = { path = "tpu-client", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } +solana-tpu-client-next = { path = "tpu-client-next", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-transaction = "5.0.0" -solana-transaction-context = { path = "transaction-context", version = "=4.4.0-beta.0", features = ["agave-unstable-api", "bincode"] } +solana-transaction-context = { path = "transaction-context", version = "=4.4.0-beta.1", features = ["agave-unstable-api", "bincode"] } solana-transaction-error = "4.0.0" -solana-transaction-status = { path = "transaction-status", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-turbine = { path = "turbine", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-udp-client = { path = "udp-client", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-transaction-status = { path = "transaction-status", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-turbine = { path = "turbine", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-udp-client = { path = "udp-client", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-validator-exit = "3.0.0" -solana-version = { path = "version", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-vote = { path = "vote", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-version = { path = "version", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-vote = { path = "vote", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-vote-interface = "7.0.0" -solana-vote-program = { path = "programs/vote", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } +solana-vote-program = { path = "programs/vote", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } solana-wincode-varint = "1.1.0" solana-zk-elgamal-proof-interface = "1.0.0" -solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-zk-sdk = "8.0.1" solana-zk-sdk-pod = "0.1.2" -solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } spl-associated-token-account-interface = "2.0.0" spl-generic-token = "2.0.0" spl-memo-interface = "2.1.0" diff --git a/dev-bins/Cargo.lock b/dev-bins/Cargo.lock index 4a5d27f7a6d..01131ff8223 100644 --- a/dev-bins/Cargo.lock +++ b/dev-bins/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "agave-banking-stage-ingress-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "solana-perf", @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "agave-bls-cert-verify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "bitvec", @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "agave-bls-sigverify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-math-utils", @@ -111,7 +111,7 @@ dependencies = [ [[package]] name = "agave-conformance" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-transaction-view", @@ -173,14 +173,14 @@ dependencies = [ [[package]] name = "agave-cpu-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "libc", ] [[package]] name = "agave-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "solana-epoch-schedule", @@ -193,7 +193,7 @@ dependencies = [ [[package]] name = "agave-fs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-io-uring", "io-uring", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "agave-io-uring" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "io-uring", "libc", @@ -237,7 +237,7 @@ dependencies = [ [[package]] name = "agave-ledger-tool" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -321,7 +321,7 @@ dependencies = [ [[package]] name = "agave-logger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "env_logger", "libc", @@ -331,14 +331,14 @@ dependencies = [ [[package]] name = "agave-math-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "num-traits", ] [[package]] name = "agave-precompiles" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -357,14 +357,14 @@ dependencies = [ [[package]] name = "agave-random" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "rand 0.9.4", ] [[package]] name = "agave-reserved-account-keys" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-pubkey 4.3.0", @@ -393,7 +393,7 @@ dependencies = [ [[package]] name = "agave-scheduling-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-scheduler-bindings", @@ -409,7 +409,7 @@ dependencies = [ [[package]] name = "agave-snapshots" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "bincode", @@ -438,7 +438,7 @@ dependencies = [ [[package]] name = "agave-store-tool" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "clap 2.34.0", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "agave-votor" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-sigverify", "agave-logger", @@ -514,7 +514,7 @@ dependencies = [ [[package]] name = "agave-votor-messages" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bitvec", @@ -537,7 +537,7 @@ dependencies = [ [[package]] name = "agave-votor-transport" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "arrayvec", @@ -557,7 +557,7 @@ dependencies = [ [[package]] name = "agave-xdp" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-xdp-ebpf", @@ -575,7 +575,7 @@ dependencies = [ [[package]] name = "agave-xdp-ebpf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "aya-ebpf", ] @@ -5762,7 +5762,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "base64 0.23.1", @@ -5806,7 +5806,7 @@ dependencies = [ [[package]] name = "solana-account-decoder-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -5830,7 +5830,7 @@ dependencies = [ [[package]] name = "solana-accounts-db" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "ahash 0.8.12", @@ -5979,7 +5979,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bv", "fnv", @@ -6055,7 +6055,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "qualifier_attr", @@ -6081,7 +6081,7 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "bv", @@ -6099,7 +6099,7 @@ dependencies = [ [[package]] name = "solana-builtins" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", @@ -6116,7 +6116,7 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6126,7 +6126,7 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bip39", "bs58", @@ -6156,7 +6156,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "dirs-next", "serde", @@ -6167,7 +6167,7 @@ dependencies = [ [[package]] name = "solana-cli-output" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -6212,7 +6212,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "bincode", @@ -6314,7 +6314,7 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -6322,7 +6322,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-borsh", @@ -6350,7 +6350,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] @@ -6373,7 +6373,7 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "crossbeam-channel", @@ -6391,7 +6391,7 @@ dependencies = [ [[package]] name = "solana-core" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "agave-bls-cert-verify", @@ -6531,7 +6531,7 @@ dependencies = [ [[package]] name = "solana-cost-model" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6601,7 +6601,7 @@ dependencies = [ [[package]] name = "solana-download-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -6645,7 +6645,7 @@ dependencies = [ [[package]] name = "solana-entry" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-transaction-view", "agave-votor-messages", @@ -6728,7 +6728,7 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "log", @@ -6771,7 +6771,7 @@ dependencies = [ [[package]] name = "solana-fee" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-svm-transaction", @@ -6842,7 +6842,7 @@ dependencies = [ [[package]] name = "solana-genesis-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -6866,7 +6866,7 @@ dependencies = [ [[package]] name = "solana-geyser-plugin-manager" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-geyser-plugin-interface", "arc-swap", @@ -6902,7 +6902,7 @@ dependencies = [ [[package]] name = "solana-gossip" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-random", @@ -7128,7 +7128,7 @@ dependencies = [ [[package]] name = "solana-lattice-hash" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "blake3", @@ -7138,7 +7138,7 @@ dependencies = [ [[package]] name = "solana-leader-schedule" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-random", "itertools 0.15.0", @@ -7150,7 +7150,7 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-reserved-account-keys", @@ -7289,11 +7289,11 @@ dependencies = [ [[package]] name = "solana-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-merkle-tree" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-hash", "solana-sha256-hasher", @@ -7320,7 +7320,7 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "gethostname", @@ -7349,7 +7349,7 @@ checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-xdp", "anza-quinn", @@ -7445,7 +7445,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-transaction-view", "ahash 0.8.12", @@ -7484,7 +7484,7 @@ dependencies = [ [[package]] name = "solana-poh" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-votor-messages", @@ -7550,7 +7550,7 @@ dependencies = [ [[package]] name = "solana-program-binaries" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "solana-account", @@ -7608,7 +7608,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bincode", @@ -7674,7 +7674,7 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "futures-util", @@ -7696,7 +7696,7 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "async-lock", @@ -7720,7 +7720,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", "num_cpus", @@ -7728,7 +7728,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "console 0.16.4", "dialoguer", @@ -7775,7 +7775,7 @@ dependencies = [ [[package]] name = "solana-rpc" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-snapshots", @@ -7859,7 +7859,7 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "async-trait", @@ -7901,7 +7901,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "jsonrpc-core", @@ -7919,7 +7919,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account", "solana-commitment-config", @@ -7935,7 +7935,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -7958,7 +7958,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-feature-set", @@ -8090,7 +8090,7 @@ dependencies = [ [[package]] name = "solana-runtime-transaction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-transaction-view", @@ -8214,7 +8214,7 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "itertools 0.15.0", @@ -8441,7 +8441,7 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-reserved-account-keys", "base64 0.23.1", @@ -8479,7 +8479,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bs58", "prost", @@ -8504,7 +8504,7 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "bytes", @@ -8538,7 +8538,7 @@ dependencies = [ [[package]] name = "solana-svm" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-precompiles", @@ -8601,7 +8601,7 @@ dependencies = [ [[package]] name = "solana-svm-callback" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account", "solana-clock 4.0.0", @@ -8611,7 +8611,7 @@ dependencies = [ [[package]] name = "solana-svm-conformance" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-precompiles", @@ -8635,22 +8635,22 @@ dependencies = [ [[package]] name = "solana-svm-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-log-collector" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", ] [[package]] name = "solana-svm-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-timings" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "eager", "enum-iterator", @@ -8673,14 +8673,14 @@ dependencies = [ [[package]] name = "solana-svm-type-overrides" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "rand 0.9.4", ] [[package]] name = "solana-syscalls" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "libsecp256k1", @@ -8738,7 +8738,7 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "log", @@ -8827,7 +8827,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" [[package]] name = "solana-tls-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "rustls", @@ -8839,7 +8839,7 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "futures-util", "indicatif", @@ -8867,7 +8867,7 @@ dependencies = [ [[package]] name = "solana-tpu-client-next" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "async-trait", @@ -8920,7 +8920,7 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "serde", @@ -8950,7 +8950,7 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -8993,7 +8993,7 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bincode", @@ -9016,7 +9016,7 @@ dependencies = [ [[package]] name = "solana-turbine" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-votor", @@ -9062,7 +9062,7 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "solana-connection-cache", @@ -9074,7 +9074,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-logic" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "solana-clock 4.0.0", @@ -9087,7 +9087,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-pool" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "assert_matches", @@ -9119,7 +9119,7 @@ checksum = "c5d2face763df5afeaa9509b9019968860e69cc1531ec8b4a2e6c7b702204d5a" [[package]] name = "solana-version" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "rand 0.9.4", @@ -9133,7 +9133,7 @@ dependencies = [ [[package]] name = "solana-vote" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "log", @@ -9190,7 +9190,7 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -9268,7 +9268,7 @@ dependencies = [ [[package]] name = "solana-zk-elgamal-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bytemuck", "solana-instruction 4.0.0", @@ -9329,7 +9329,7 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] diff --git a/dev-bins/Cargo.toml b/dev-bins/Cargo.toml index dd640688eef..39bd7c17465 100644 --- a/dev-bins/Cargo.toml +++ b/dev-bins/Cargo.toml @@ -9,7 +9,7 @@ members = [ resolver = "2" [workspace.package] -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" authors = ["Anza Maintainers "] description = "Blockchain, Rebuilt for Scale" repository = "https://github.com/anza-xyz/agave" @@ -37,14 +37,14 @@ used_underscore_binding = "deny" new_without_default = "allow" [workspace.dependencies] -agave-feature-set = { path = "../feature-set", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-logger = { path = "../logger", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-precompiles = { path = "../precompiles", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-reserved-account-keys = { path = "../reserved-account-keys", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-snapshots = { path = "../snapshots", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-feature-set = { path = "../feature-set", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-logger = { path = "../logger", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-precompiles = { path = "../precompiles", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-reserved-account-keys = { path = "../reserved-account-keys", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-snapshots = { path = "../snapshots", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } agave-transaction-view = "7.0.0" -agave-votor = { path = "../votor", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -agave-votor-messages = { path = "../votor-messages", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +agave-votor = { path = "../votor", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +agave-votor-messages = { path = "../votor-messages", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } ahash = "0.8.11" assert_cmd = "2.2.2" bincode = "1.3.3" @@ -76,64 +76,64 @@ serde_yaml = "0.9.34" serial_test = "3.2.0" signal-hook = "0.4.4" solana-account = "5.0.0" -solana-account-decoder = { path = "../account-decoder", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-accounts-db = { path = "../accounts-db", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-account-decoder = { path = "../account-decoder", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-accounts-db = { path = "../accounts-db", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-address-lookup-table-interface = "4.0.0" -solana-bloom = { path = "../bloom", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-bloom = { path = "../bloom", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-bls-signatures = { version = "4.0.0", features = ["serde"] } -solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-builtins = { path = "../builtins", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-clap-utils = { path = "../clap-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-cli-config = { path = "../cli-config", version = "=4.4.0-beta.0" } -solana-cli-output = { path = "../cli-output", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-client = { path = "../client", version = "=4.4.0-beta.0" } +solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-builtins = { path = "../builtins", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-clap-utils = { path = "../clap-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-cli-config = { path = "../cli-config", version = "=4.4.0-beta.1" } +solana-cli-output = { path = "../cli-output", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-client = { path = "../client", version = "=4.4.0-beta.1" } solana-clock = "3.2.0" solana-cluster-type = "3.2.0" solana-commitment-config = "3.0.0" -solana-compute-budget = { path = "../compute-budget", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-compute-budget = { path = "../compute-budget", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-compute-budget-interface = "3.1.0" -solana-compute-budget-program = { path = "../programs/compute-budget", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-connection-cache = { path = "../connection-cache", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } -solana-core = { path = "../core", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-cost-model = { path = "../cost-model", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-entry = { path = "../entry", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-compute-budget-program = { path = "../programs/compute-budget", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-connection-cache = { path = "../connection-cache", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } +solana-core = { path = "../core", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-cost-model = { path = "../cost-model", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-entry = { path = "../entry", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-epoch-schedule = "3.2.0" -solana-faucet = { path = "../faucet", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-faucet = { path = "../faucet", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-feature-gate-interface = "5.0.0" solana-fee-calculator = "3.2.2" -solana-genesis = { path = "../genesis", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-genesis = { path = "../genesis", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-genesis-config = "5.0.0" -solana-genesis-utils = { path = "../genesis-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-geyser-plugin-manager = { path = "../geyser-plugin-manager", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-gossip = { path = "../gossip", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-genesis-utils = { path = "../genesis-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-geyser-plugin-manager = { path = "../geyser-plugin-manager", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-gossip = { path = "../gossip", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-hash = "4.5.0" solana-inflation = "3.1.1" solana-instruction = "4.0.0" solana-instruction-error = "3.0.0" solana-keypair = "4.0.0" -solana-lattice-hash = { path = "../lattice-hash", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-leader-schedule = { path = "../leader-schedule", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-ledger = { path = "../ledger", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-lattice-hash = { path = "../lattice-hash", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-leader-schedule = { path = "../leader-schedule", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-ledger = { path = "../ledger", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-loader-v3-interface = "9.0.0" solana-loader-v4-interface = "3.1.0" -solana-local-cluster = { path = "../local-cluster", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-measure = { path = "../measure", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-local-cluster = { path = "../local-cluster", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-measure = { path = "../measure", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-message = "5.0.0" -solana-metrics = { path = "../metrics", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-metrics = { path = "../metrics", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-native-token = "3.0.0" -solana-net-utils = { path = "../net-utils", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-net-utils = { path = "../net-utils", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-nonce = "3.2.1" solana-packet = "4.2.0" solana-precompile-error = "3.0.0" -solana-program-runtime = { path = "../program-runtime", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-program-runtime = { path = "../program-runtime", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-pubkey = { version = "4.2.0", default-features = false } -solana-quic-client = { path = "../quic-client", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-quic-client = { path = "../quic-client", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-rent = "4.2.1" -solana-rpc = { path = "../rpc", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-rpc-client = { path = "../rpc-client", version = "=4.4.0-beta.0", default-features = false } -solana-rpc-client-api = { path = "../rpc-client-api", version = "=4.4.0-beta.0" } -solana-runtime = { path = "../runtime", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-runtime-transaction = { path = "../runtime-transaction", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-rpc = { path = "../rpc", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-rpc-client = { path = "../rpc-client", version = "=4.4.0-beta.1", default-features = false } +solana-rpc-client-api = { path = "../rpc-client-api", version = "=4.4.0-beta.1" } +solana-runtime = { path = "../runtime", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-runtime-transaction = { path = "../runtime-transaction", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-sanitize = "3.0.1" solana-sbpf = { version = "=0.24.0", default-features = false } solana-sdk-ids = "3.1.0" @@ -145,32 +145,32 @@ solana-slot-hashes = "4.0.0" solana-slot-history = "3.2.0" solana-stake-history = "2.0.0" solana-stake-interface = "5.0.0" -solana-storage-bigtable = { path = "../storage-bigtable", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-streamer = { path = "../streamer", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm = { path = "../svm", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-callback = { path = "../svm-callback", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-feature-set = { path = "../svm-feature-set", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-log-collector = { path = "../svm-log-collector", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-svm-timings = { path = "../svm-timings", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-storage-bigtable = { path = "../storage-bigtable", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-streamer = { path = "../streamer", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm = { path = "../svm", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-callback = { path = "../svm-callback", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-feature-set = { path = "../svm-feature-set", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-log-collector = { path = "../svm-log-collector", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-svm-timings = { path = "../svm-timings", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-svm-transaction = "6.0.0" -solana-syscalls = { path = "../syscalls", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-syscalls = { path = "../syscalls", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-system-interface = "3.2" -solana-system-program = { path = "../programs/system", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-system-program = { path = "../programs/system", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-system-transaction = "5.0.0" solana-sysvar = "5.0.0" solana-sysvar-id = "3.1.0" -solana-test-validator = { path = "../test-validator", version = "=4.4.0-beta.0" } +solana-test-validator = { path = "../test-validator", version = "=4.4.0-beta.1" } solana-time-utils = "3.0.0" -solana-tpu-client = { path = "../tpu-client", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } +solana-tpu-client = { path = "../tpu-client", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } solana-transaction = "5.0.0" -solana-transaction-context = { path = "../transaction-context", version = "=4.4.0-beta.0", features = ["agave-unstable-api", "bincode"] } +solana-transaction-context = { path = "../transaction-context", version = "=4.4.0-beta.1", features = ["agave-unstable-api", "bincode"] } solana-transaction-error = "4.0.0" -solana-transaction-status = { path = "../transaction-status", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-unified-scheduler-pool = { path = "../unified-scheduler-pool", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-version = { path = "../version", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } -solana-vote = { path = "../vote", version = "=4.4.0-beta.0", features = ["agave-unstable-api"] } +solana-transaction-status = { path = "../transaction-status", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-unified-scheduler-pool = { path = "../unified-scheduler-pool", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-version = { path = "../version", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } +solana-vote = { path = "../vote", version = "=4.4.0-beta.1", features = ["agave-unstable-api"] } solana-vote-interface = "7.0.0" -solana-vote-program = { path = "../programs/vote", version = "=4.4.0-beta.0", default-features = false, features = ["agave-unstable-api"] } +solana-vote-program = { path = "../programs/vote", version = "=4.4.0-beta.1", default-features = false, features = ["agave-unstable-api"] } tempfile = "3.23.0" thiserror = "2.0.17" tokio = "1.48.0" diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 188f32f4fb9..5d17816b16c 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "agave-banking-stage-ingress-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "solana-perf", @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "agave-bls-cert-verify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "bitvec", @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "agave-bls-sigverify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-math-utils", @@ -111,14 +111,14 @@ dependencies = [ [[package]] name = "agave-cpu-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "libc", ] [[package]] name = "agave-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "solana-epoch-schedule", @@ -131,7 +131,7 @@ dependencies = [ [[package]] name = "agave-fs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-io-uring", "io-uring", @@ -164,7 +164,7 @@ dependencies = [ [[package]] name = "agave-io-uring" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "io-uring", "libc", @@ -175,7 +175,7 @@ dependencies = [ [[package]] name = "agave-logger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "env_logger", "libc", @@ -185,14 +185,14 @@ dependencies = [ [[package]] name = "agave-math-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "num-traits", ] [[package]] name = "agave-precompiles" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -211,14 +211,14 @@ dependencies = [ [[package]] name = "agave-random" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "rand 0.9.4", ] [[package]] name = "agave-reserved-account-keys" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-pubkey 4.3.0", @@ -247,7 +247,7 @@ dependencies = [ [[package]] name = "agave-scheduling-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-scheduler-bindings", @@ -263,7 +263,7 @@ dependencies = [ [[package]] name = "agave-snapshots" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "bincode", @@ -310,7 +310,7 @@ dependencies = [ [[package]] name = "agave-validator" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-feature-set", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "agave-votor" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-sigverify", "agave-logger", @@ -439,7 +439,7 @@ dependencies = [ [[package]] name = "agave-votor-messages" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bitvec", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "agave-votor-transport" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "arrayvec", @@ -482,7 +482,7 @@ dependencies = [ [[package]] name = "agave-xdp" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-xdp-ebpf", @@ -500,7 +500,7 @@ dependencies = [ [[package]] name = "agave-xdp-ebpf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "aya-ebpf", ] @@ -5703,7 +5703,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "base64 0.23.1", @@ -5747,7 +5747,7 @@ dependencies = [ [[package]] name = "solana-account-decoder-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -5783,7 +5783,7 @@ dependencies = [ [[package]] name = "solana-accounts-db" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-fs", "ahash 0.8.12", @@ -5900,7 +5900,7 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "borsh", "futures 0.3.34", @@ -5927,7 +5927,7 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "serde", "solana-account", @@ -5945,7 +5945,7 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "crossbeam-channel", @@ -6001,7 +6001,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bv", "fnv", @@ -6077,7 +6077,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "qualifier_attr", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "ahash 0.8.12", "bv", @@ -6121,7 +6121,7 @@ dependencies = [ [[package]] name = "solana-builtins" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", @@ -6138,7 +6138,7 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6148,7 +6148,7 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bip39", "bs58", @@ -6178,7 +6178,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "dirs-next", "serde", @@ -6189,7 +6189,7 @@ dependencies = [ [[package]] name = "solana-cli-output" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -6234,7 +6234,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "bincode", @@ -6336,7 +6336,7 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -6344,7 +6344,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "solana-borsh", @@ -6372,7 +6372,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] @@ -6395,7 +6395,7 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "crossbeam-channel", @@ -6413,7 +6413,7 @@ dependencies = [ [[package]] name = "solana-core" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "agave-bls-cert-verify", @@ -6553,7 +6553,7 @@ dependencies = [ [[package]] name = "solana-cost-model" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -6629,7 +6629,7 @@ dependencies = [ [[package]] name = "solana-download-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -6673,7 +6673,7 @@ dependencies = [ [[package]] name = "solana-entry" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-transaction-view", "agave-votor-messages", @@ -6783,7 +6783,7 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "log", @@ -6826,7 +6826,7 @@ dependencies = [ [[package]] name = "solana-fee" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-fee-structure", "solana-svm-transaction", @@ -6897,7 +6897,7 @@ dependencies = [ [[package]] name = "solana-genesis-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-snapshots", "log", @@ -6921,7 +6921,7 @@ dependencies = [ [[package]] name = "solana-geyser-plugin-manager" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-geyser-plugin-interface", "arc-swap", @@ -6957,7 +6957,7 @@ dependencies = [ [[package]] name = "solana-gossip" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-logger", "agave-random", @@ -7201,7 +7201,7 @@ dependencies = [ [[package]] name = "solana-lattice-hash" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "blake3", @@ -7211,7 +7211,7 @@ dependencies = [ [[package]] name = "solana-leader-schedule" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-random", "itertools 0.15.0", @@ -7223,7 +7223,7 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-reserved-account-keys", @@ -7362,11 +7362,11 @@ dependencies = [ [[package]] name = "solana-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-merkle-tree" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-hash", "solana-sha256-hasher", @@ -7393,7 +7393,7 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "gethostname", @@ -7422,7 +7422,7 @@ checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-net-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-xdp", "anza-quinn", @@ -7518,7 +7518,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-transaction-view", "ahash 0.8.12", @@ -7557,7 +7557,7 @@ dependencies = [ [[package]] name = "solana-poh" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-cpu-utils", "agave-votor-messages", @@ -7669,7 +7669,7 @@ dependencies = [ [[package]] name = "solana-program-binaries" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "solana-account", @@ -7729,7 +7729,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bincode", @@ -7776,7 +7776,7 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -7859,7 +7859,7 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "futures-util", @@ -7881,7 +7881,7 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "async-lock", @@ -7905,7 +7905,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", "num_cpus", @@ -7913,7 +7913,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "console 0.16.4", "dialoguer", @@ -7960,7 +7960,7 @@ dependencies = [ [[package]] name = "solana-rpc" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-snapshots", @@ -8043,7 +8043,7 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-votor-messages", "async-trait", @@ -8085,7 +8085,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anyhow", "jsonrpc-core", @@ -8103,7 +8103,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account", "solana-commitment-config", @@ -8119,7 +8119,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bs58", @@ -8142,7 +8142,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-bls-cert-verify", "agave-feature-set", @@ -8274,7 +8274,7 @@ dependencies = [ [[package]] name = "solana-runtime-transaction" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-transaction-view", @@ -8302,7 +8302,7 @@ checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sbf-programs" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-logger", @@ -8357,7 +8357,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-128bit" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-entrypoint", "solana-sbf-rust-128bit-dep", @@ -8365,11 +8365,11 @@ dependencies = [ [[package]] name = "solana-sbf-rust-128bit-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-sbf-rust-account-mem" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8380,7 +8380,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-account-mem-deprecated" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program", @@ -8391,7 +8391,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-alloc" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-msg", "solana-program", @@ -8400,7 +8400,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-alt-bn128" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-bn254", "solana-msg", @@ -8409,7 +8409,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-alt-bn128-compression" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-bn254", "solana-msg", @@ -8418,7 +8418,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-big-mod-exp" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "array-bytes", "solana-big-mod-exp", @@ -8428,7 +8428,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-call-args" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "borsh", "solana-account-info", @@ -8440,7 +8440,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-call-depth" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-msg", "solana-program", @@ -8449,7 +8449,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-caller-access" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8462,7 +8462,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-curve25519" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-curve25519", "solana-msg", @@ -8471,7 +8471,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-custom-heap" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8482,7 +8482,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-dep-crate" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "byteorder", "solana-program-entrypoint", @@ -8490,7 +8490,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-deprecated-loader" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8505,7 +8505,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-direct-account-pointers" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-account-view", @@ -8517,7 +8517,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-divide-by-zero" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8527,7 +8527,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-dup-accounts" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8540,7 +8540,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-error-handling" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "num-derive 0.5.1", "num-traits", @@ -8554,7 +8554,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-external-spend" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8564,7 +8564,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-inner_instruction_alignment_check" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8577,7 +8577,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-instruction-introspection" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8591,7 +8591,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoke" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8610,7 +8610,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoke-and-error" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8622,7 +8622,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoke-and-ok" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8634,7 +8634,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoke-and-return" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8646,11 +8646,11 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoke-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-sbf-rust-invoked" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8665,7 +8665,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-invoked-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-instruction 4.0.0", "solana-pubkey 4.3.0", @@ -8673,7 +8673,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-iter" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program", "solana-program-entrypoint", @@ -8681,7 +8681,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-log-data" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program", @@ -8692,7 +8692,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-many-args" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-msg", "solana-program", @@ -8702,7 +8702,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-many-args-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-msg", "solana-program", @@ -8710,7 +8710,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-mem" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8722,11 +8722,11 @@ dependencies = [ [[package]] name = "solana-sbf-rust-mem-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-sbf-rust-membuiltins" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-entrypoint", "solana-sbf-rust-mem-dep", @@ -8734,7 +8734,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-noop" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8744,7 +8744,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-panic" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8755,7 +8755,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-param-passing" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program", "solana-program-entrypoint", @@ -8764,11 +8764,11 @@ dependencies = [ [[package]] name = "solana-sbf-rust-param-passing-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-sbf-rust-poseidon" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-msg", "solana-poseidon", @@ -8777,7 +8777,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-r2-instruction-data-pointer" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-cpi", "solana-program-entrypoint", @@ -8785,7 +8785,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-rand" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8796,7 +8796,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-realloc" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8810,7 +8810,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-realloc-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-instruction 4.0.0", "solana-pubkey 4.3.0", @@ -8818,7 +8818,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-realloc-invoke" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8834,11 +8834,11 @@ dependencies = [ [[package]] name = "solana-sbf-rust-realloc-invoke-dep" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-sbf-rust-remaining-compute-units" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8850,7 +8850,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-ro-account_modify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8863,7 +8863,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-ro-modify" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8876,7 +8876,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-sanity" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -8889,7 +8889,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-secp256k1-recover" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "libsecp256k1", "solana-hash", @@ -8901,7 +8901,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-sha" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "blake3", "solana-blake3-hasher", @@ -8914,7 +8914,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-sibling-inner-instructions" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8926,7 +8926,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-sibling-instructions" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8939,7 +8939,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-simulation" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-clock 3.2.1", @@ -8953,7 +8953,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-spoof1" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-instruction 4.0.0", @@ -8967,7 +8967,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-spoof1-system" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-program-entrypoint", @@ -8977,7 +8977,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-sysvar" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-define-syscall 3.0.0", @@ -8996,7 +8996,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-upgradeable" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -9008,7 +9008,7 @@ dependencies = [ [[package]] name = "solana-sbf-rust-upgraded" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -9020,7 +9020,7 @@ dependencies = [ [[package]] name = "solana-sbf-syscall-get-epoch-stake" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account-info", "solana-msg", @@ -9127,7 +9127,7 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "crossbeam-channel", "itertools 0.15.0", @@ -9384,7 +9384,7 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-reserved-account-keys", "base64 0.23.1", @@ -9422,7 +9422,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bs58", "prost", @@ -9447,7 +9447,7 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "bytes", @@ -9481,7 +9481,7 @@ dependencies = [ [[package]] name = "solana-svm" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "ahash 0.8.12", @@ -9535,7 +9535,7 @@ dependencies = [ [[package]] name = "solana-svm-callback" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-account", "solana-clock 4.0.0", @@ -9545,22 +9545,22 @@ dependencies = [ [[package]] name = "solana-svm-feature-set" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-log-collector" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "log", ] [[package]] name = "solana-svm-measure" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" [[package]] name = "solana-svm-timings" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "eager", "enum-iterator", @@ -9583,14 +9583,14 @@ dependencies = [ [[package]] name = "solana-svm-type-overrides" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "rand 0.9.4", ] [[package]] name = "solana-syscalls" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "libsecp256k1", @@ -9648,7 +9648,7 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "log", @@ -9768,7 +9768,7 @@ dependencies = [ [[package]] name = "solana-test-validator" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-snapshots", @@ -9830,7 +9830,7 @@ checksum = "0ced92c60aa76ec4780a9d93f3bd64dfa916e1b998eacc6f1c110f3f444f02c9" [[package]] name = "solana-tls-utils" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "rustls", @@ -9842,7 +9842,7 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "futures-util", "indicatif", @@ -9870,7 +9870,7 @@ dependencies = [ [[package]] name = "solana-tpu-client-next" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "anza-quinn", "async-trait", @@ -9923,7 +9923,7 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "serde", @@ -9953,7 +9953,7 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "Inflector", "agave-reserved-account-keys", @@ -9996,7 +9996,7 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "base64 0.23.1", "bincode", @@ -10019,7 +10019,7 @@ dependencies = [ [[package]] name = "solana-turbine" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "agave-votor", @@ -10065,7 +10065,7 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "async-trait", "solana-connection-cache", @@ -10077,7 +10077,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-logic" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "assert_matches", "solana-clock 4.0.0", @@ -10090,7 +10090,7 @@ dependencies = [ [[package]] name = "solana-unified-scheduler-pool" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-banking-stage-ingress-types", "assert_matches", @@ -10122,7 +10122,7 @@ checksum = "c5d2face763df5afeaa9509b9019968860e69cc1531ec8b4a2e6c7b702204d5a" [[package]] name = "solana-version" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "rand 0.9.4", @@ -10136,7 +10136,7 @@ dependencies = [ [[package]] name = "solana-vote" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bincode", "log", @@ -10211,7 +10211,7 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "agave-feature-set", "bincode", @@ -10289,7 +10289,7 @@ dependencies = [ [[package]] name = "solana-zk-elgamal-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "bytemuck", "solana-instruction 4.0.0", @@ -10350,7 +10350,7 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" dependencies = [ "solana-program-runtime", ] diff --git a/programs/sbf/Cargo.toml b/programs/sbf/Cargo.toml index 131f04e2409..da8ddadaae7 100644 --- a/programs/sbf/Cargo.toml +++ b/programs/sbf/Cargo.toml @@ -74,7 +74,7 @@ members = [ ] [workspace.package] -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" description = "Solana SBF test program written in Rust" authors = ["Anza Maintainers "] repository = "https://github.com/anza-xyz/agave" @@ -103,10 +103,10 @@ used_underscore_binding = "deny" new_without_default = "allow" [workspace.dependencies] -agave-feature-set = { path = "../../feature-set", version = "=4.4.0-beta.0" } -agave-logger = { path = "../../logger", version = "=4.4.0-beta.0" } -agave-reserved-account-keys = { path = "../../reserved-account-keys", version = "=4.4.0-beta.0" } -agave-validator = { path = "../../validator", version = "=4.4.0-beta.0" } +agave-feature-set = { path = "../../feature-set", version = "=4.4.0-beta.1" } +agave-logger = { path = "../../logger", version = "=4.4.0-beta.1" } +agave-reserved-account-keys = { path = "../../reserved-account-keys", version = "=4.4.0-beta.1" } +agave-validator = { path = "../../validator", version = "=4.4.0-beta.1" } array-bytes = "9.3.0" bincode = { version = "1.1.4", default-features = false } blake3 = "1.0.0" @@ -124,12 +124,12 @@ solana-big-mod-exp = "4.0.0" solana-blake3-hasher = { version = "=3.1.0", features = ["blake3"] } solana-bn254 = "=3.2.1" solana-clock = { version = "=3.2.1", features = ["serde", "sysvar"] } -solana-compute-budget = { path = "../../compute-budget", version = "=4.4.0-beta.0" } -solana-compute-budget-instruction = { path = "../../compute-budget-instruction", version = "=4.4.0-beta.0" } +solana-compute-budget = { path = "../../compute-budget", version = "=4.4.0-beta.1" } +solana-compute-budget-instruction = { path = "../../compute-budget-instruction", version = "=4.4.0-beta.1" } solana-cpi = "=3.1.0" solana-curve25519 = "=4.0.1" solana-define-syscall = "=3.0.0" -solana-fee = { path = "../../fee", version = "=4.4.0-beta.0" } +solana-fee = { path = "../../fee", version = "=4.4.0-beta.1" } solana-hash = { version = "=4.6.0", features = ["bytemuck", "serde", "std"] } solana-instruction = "4.0.0" solana-instructions-sysvar = "=4.0.0" @@ -137,38 +137,38 @@ solana-keccak-hasher = { version = "=3.1.0", features = ["sha3"] } solana-msg = "=3.1.0" solana-poseidon = "=5.0.0" solana-program = "=4.1.0" -solana-program-binaries = { path = "../../program-binaries", version = "=4.4.0-beta.0" } +solana-program-binaries = { path = "../../program-binaries", version = "=4.4.0-beta.1" } solana-program-entrypoint = "=3.1.1" solana-program-error = "=3.0.1" solana-program-memory = "=3.1.0" -solana-program-runtime = { path = "../../program-runtime", version = "=4.4.0-beta.0" } +solana-program-runtime = { path = "../../program-runtime", version = "=4.4.0-beta.1" } solana-pubkey = { version = "=4.3.0", default-features = false } -solana-runtime = { path = "../../runtime", version = "=4.4.0-beta.0" } -solana-runtime-transaction = { path = "../../runtime-transaction", version = "=4.4.0-beta.0" } -solana-sbf-rust-128bit-dep = { path = "rust/128bit_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-invoke-dep = { path = "rust/invoke_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-invoked-dep = { path = "rust/invoked_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-many-args-dep = { path = "rust/many_args_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-mem-dep = { path = "rust/mem_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-param-passing-dep = { path = "rust/param_passing_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-realloc-dep = { path = "rust/realloc_dep", version = "=4.4.0-beta.0" } -solana-sbf-rust-realloc-invoke-dep = { path = "rust/realloc_invoke_dep", version = "=4.4.0-beta.0" } +solana-runtime = { path = "../../runtime", version = "=4.4.0-beta.1" } +solana-runtime-transaction = { path = "../../runtime-transaction", version = "=4.4.0-beta.1" } +solana-sbf-rust-128bit-dep = { path = "rust/128bit_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-invoke-dep = { path = "rust/invoke_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-invoked-dep = { path = "rust/invoked_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-many-args-dep = { path = "rust/many_args_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-mem-dep = { path = "rust/mem_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-param-passing-dep = { path = "rust/param_passing_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-realloc-dep = { path = "rust/realloc_dep", version = "=4.4.0-beta.1" } +solana-sbf-rust-realloc-invoke-dep = { path = "rust/realloc_invoke_dep", version = "=4.4.0-beta.1" } solana-sdk-ids = "=3.1.0" solana-secp256k1-recover = "=3.3.0" solana-sha256-hasher = { version = "=3.1.0", features = ["sha2"] } solana-stake-history = { version = "2.0.0", features = ["serde", "sysvar", "wincode"] } -solana-svm = { path = "../../svm", version = "=4.4.0-beta.0" } -solana-svm-feature-set = { path = "../../svm-feature-set", version = "=4.4.0-beta.0" } -solana-svm-timings = { path = "../../svm-timings", version = "=4.4.0-beta.0" } +solana-svm = { path = "../../svm", version = "=4.4.0-beta.1" } +solana-svm-feature-set = { path = "../../svm-feature-set", version = "=4.4.0-beta.1" } +solana-svm-timings = { path = "../../svm-timings", version = "=4.4.0-beta.1" } solana-svm-transaction = "6.0.0" -solana-svm-type-overrides = { path = "../../svm-type-overrides", version = "=4.4.0-beta.0" } +solana-svm-type-overrides = { path = "../../svm-type-overrides", version = "=4.4.0-beta.1" } solana-system-interface = { version = "=3.3.0", features = ["bincode"] } solana-sysvar = "=4.3.0" solana-sysvar-id = "=3.1.0" -solana-test-validator = { path = "../../test-validator", version = "=4.4.0-beta.0" } -solana-vote = { path = "../../vote", version = "=4.4.0-beta.0" } +solana-test-validator = { path = "../../test-validator", version = "=4.4.0-beta.1" } +solana-vote = { path = "../../vote", version = "=4.4.0-beta.1" } solana-vote-interface = "6.1.0" -solana-vote-program = { path = "../../programs/vote", version = "=4.4.0-beta.0" } +solana-vote-program = { path = "../../programs/vote", version = "=4.4.0-beta.1" } test-case = "3.3.1" thiserror = "2.0" wincode = { version = "0.6.1", default-features = false } diff --git a/svm/tests/example-programs/clock-sysvar/Cargo.toml b/svm/tests/example-programs/clock-sysvar/Cargo.toml index 07f6fd0d99b..18dae961bbc 100644 --- a/svm/tests/example-programs/clock-sysvar/Cargo.toml +++ b/svm/tests/example-programs/clock-sysvar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clock-sysvar-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] diff --git a/svm/tests/example-programs/complex-transfer/Cargo.toml b/svm/tests/example-programs/complex-transfer/Cargo.toml index fdee20ced12..9d724bfe444 100644 --- a/svm/tests/example-programs/complex-transfer/Cargo.toml +++ b/svm/tests/example-programs/complex-transfer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "complex-transfer-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] diff --git a/svm/tests/example-programs/hello-solana/Cargo.toml b/svm/tests/example-programs/hello-solana/Cargo.toml index ab83c9010b7..6445590bed9 100644 --- a/svm/tests/example-programs/hello-solana/Cargo.toml +++ b/svm/tests/example-programs/hello-solana/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-solana-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] diff --git a/svm/tests/example-programs/simple-transfer/Cargo.toml b/svm/tests/example-programs/simple-transfer/Cargo.toml index 3588333fd13..a747c817dbf 100644 --- a/svm/tests/example-programs/simple-transfer/Cargo.toml +++ b/svm/tests/example-programs/simple-transfer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-transfer-program" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] diff --git a/svm/tests/example-programs/transfer-from-account/Cargo.toml b/svm/tests/example-programs/transfer-from-account/Cargo.toml index 5e96489dd9c..961cc33569c 100644 --- a/svm/tests/example-programs/transfer-from-account/Cargo.toml +++ b/svm/tests/example-programs/transfer-from-account/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "transfer-from-account" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] diff --git a/svm/tests/example-programs/write-to-account/Cargo.toml b/svm/tests/example-programs/write-to-account/Cargo.toml index 65dd0ecbc18..b41a346f3ea 100644 --- a/svm/tests/example-programs/write-to-account/Cargo.toml +++ b/svm/tests/example-programs/write-to-account/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "write-to-account" -version = "4.4.0-beta.0" +version = "4.4.0-beta.1" edition = "2021" [dependencies] From 2e5ca2e87a50b7de19b047b4df2930f2aa2d02fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=CC=81phane=20Duchesneau?= Date: Wed, 14 Oct 2026 10:41:11 -0400 Subject: [PATCH 16/17] Update CHANGELOG.sf.md for v4.4.0-beta.1-fh3.0 --- CHANGELOG.sf.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/CHANGELOG.sf.md b/CHANGELOG.sf.md index 6f484be553d..1bd4c4dd795 100644 --- a/CHANGELOG.sf.md +++ b/CHANGELOG.sf.md @@ -4,6 +4,50 @@ This file tracks StreamingFast-specific changes to this fork of [anza-xyz/agave](https://github.com/anza-xyz/agave). Upstream changes are documented in [CHANGELOG.md](CHANGELOG.md). +## v4.4.0-beta.1-fh3.0 + +### Changed + +- Merged upstream `v4.4.0-beta.1` (previously `v4.4.0-beta.0`), which brings in 15 + upstream commits. The merge was clean: no conflicts, and the fork delta is unchanged. The + tree still differs from upstream only by `Dockerfile`, + `.github/workflows/docker-publish.yml`, `CHANGELOG.sf.md` and the novote guard in + `geyser-plugin-manager/src/accounts_update_notifier.rs`. + + Released as image `ghcr.io/streamingfast/solana:v4.4.0-beta.1-fh3.0`. + +- The Geyser plugin interface is unchanged: Agave still pins + `agave-geyser-plugin-interface = "=5.0.0"`, and `transaction-status`, + `transaction-context` and the `rpc-client` crates are byte-for-byte identical to + `v4.4.0-beta.0`. Consumers only need to re-pin versions. + +- Rust toolchain stays at `1.98.1`. + +### Feature activations + +- `block_revenue_sharing` (SIMD-0123) is rekeyed from + `7MYx95UBiJufqnumyN7HfskJ9vKdcGMmhreVguqrE97K` to + `Crbnc267wkJvFhYakqwWWX57sx5bkrftJLekzy6yWKLT` (#15795), because its behavior changed. + The new ID is not activated on mainnet or testnet (checked 2026-10-14). The effect on the + Firehose block is the same as before: block fees can be split into two `Fee` rewards, one + of them to an address other than the leader. + +### Upstream changes worth knowing about + +- The vote program's `DepositDelegatorRewards` instruction always returns an error + (#15795). +- `clone_and_filter_for_vat` only counts `pending_delegator_rewards` when SIMD-0123 is + active (#15529). +- Banking stage buffers transactions using Alpenglow slot timing (#15589, #15886). +- Bigtable upload stops at the blockstore's max root (#15804). +- `quinn` and `quinn-proto` are replaced by vendored `anza-quinn 0.11.12` and + `anza-quinn-proto 0.11.18` (#15954). +- The program cache extracts entries using the rooted access slot (#15811), and the + epoch-boundary program cache preparation restarts less often (#15766). +- Loader-v1/v2 programs have their ELF header checked earlier (#15544). +- `agave-validator wait-for-restart-window` ignores identity-not-found errors while + waiting (#15617). + ## v4.4.0-beta.0-fh3.0 ### Changed From 65e5b161a156473582a8fe1147e3ca807853e94a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=CC=81phane=20Duchesneau?= Date: Wed, 14 Oct 2026 11:59:55 -0400 Subject: [PATCH 17/17] Add dependency review and secret scanning checks release/4.x requires the dependency-review and check-secrets status checks. --- .github/workflows/dependabot.yml | 18 ++++++++++++++++++ .github/workflows/secret-scanning.yml | 15 +++++++++++++++ CHANGELOG.sf.md | 11 +++++++---- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/dependabot.yml create mode 100644 .github/workflows/secret-scanning.yml diff --git a/.github/workflows/dependabot.yml b/.github/workflows/dependabot.yml new file mode 100644 index 00000000000..b38a0d5541a --- /dev/null +++ b/.github/workflows/dependabot.yml @@ -0,0 +1,18 @@ +name: "Dependency Review" +on: + pull_request: + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + if: ${{ github.actor != 'dependabot[bot]' }} + steps: + - name: "Checkout Repository" + uses: actions/checkout@v4 + - name: "Dependency Review" + uses: actions/dependency-review-action@v4 + with: + fail-on-severity: high # Fail on high, critical diff --git a/.github/workflows/secret-scanning.yml b/.github/workflows/secret-scanning.yml new file mode 100644 index 00000000000..0b0736c0e3a --- /dev/null +++ b/.github/workflows/secret-scanning.yml @@ -0,0 +1,15 @@ +name: Secret Scanning Check +on: + pull_request: + +jobs: + check-secrets: + runs-on: ubuntu-latest + steps: + - name: Run Secret Scanning Review + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' }} + uses: advanced-security/secret-scanning-review-action@v2.2.4 + with: + token: ${{ secrets.SECRETS_ALERTS }} + fail-on-alert: true # This turns it into a hard status check + runtime: python diff --git a/CHANGELOG.sf.md b/CHANGELOG.sf.md index 1bd4c4dd795..c21b7a9cb44 100644 --- a/CHANGELOG.sf.md +++ b/CHANGELOG.sf.md @@ -9,13 +9,16 @@ This file tracks StreamingFast-specific changes to this fork of ### Changed - Merged upstream `v4.4.0-beta.1` (previously `v4.4.0-beta.0`), which brings in 15 - upstream commits. The merge was clean: no conflicts, and the fork delta is unchanged. The - tree still differs from upstream only by `Dockerfile`, - `.github/workflows/docker-publish.yml`, `CHANGELOG.sf.md` and the novote guard in - `geyser-plugin-manager/src/accounts_update_notifier.rs`. + upstream commits. The merge was clean: no conflicts. The tree differs from upstream only by + `Dockerfile`, `.github/workflows/docker-publish.yml`, `CHANGELOG.sf.md`, the novote guard + in `geyser-plugin-manager/src/accounts_update_notifier.rs`, and the two workflows below. Released as image `ghcr.io/streamingfast/solana:v4.4.0-beta.1-fh3.0`. +- Added the StreamingFast pull request checks that `release/4.x` requires before merging: + `.github/workflows/dependabot.yml` (`dependency-review`) and + `.github/workflows/secret-scanning.yml` (`check-secrets`). + - The Geyser plugin interface is unchanged: Agave still pins `agave-geyser-plugin-interface = "=5.0.0"`, and `transaction-status`, `transaction-context` and the `rpc-client` crates are byte-for-byte identical to