From 51ae9acb1be0b831643bb8f3f9e17f1bedf4a86e Mon Sep 17 00:00:00 2001 From: Aliaksandr Tsurko Date: Fri, 27 Feb 2026 19:16:58 +0100 Subject: [PATCH] Fix benchmarks --- pallets/admin-utils/src/benchmarking.rs | 4 ++- pallets/admin-utils/src/lib.rs | 2 +- pallets/admin-utils/src/tests/mod.rs | 2 +- pallets/subtensor/src/benchmarks.rs | 35 ++++++++++++++++++++++--- pallets/subtensor/src/lib.rs | 6 ++--- 5 files changed, 39 insertions(+), 10 deletions(-) diff --git a/pallets/admin-utils/src/benchmarking.rs b/pallets/admin-utils/src/benchmarking.rs index 9cab4894e9..1a16c1f721 100644 --- a/pallets/admin-utils/src/benchmarking.rs +++ b/pallets/admin-utils/src/benchmarking.rs @@ -18,6 +18,8 @@ use super::*; #[benchmarks] mod benchmarks { use super::*; + #[cfg(test)] + use crate::tests::mock; use subtensor_runtime_common::NetUid; #[benchmark] @@ -651,5 +653,5 @@ mod benchmarks { ); /* sudo_set_min_non_immune_uids() */ } - //impl_benchmark_test_suite!(AdminUtils, crate::mock::new_test_ext(), crate::mock::Test); + impl_benchmark_test_suite!(AdminUtils, mock::new_test_ext(), mock::Test); } diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs index 654f7207b8..532bb50227 100644 --- a/pallets/admin-utils/src/lib.rs +++ b/pallets/admin-utils/src/lib.rs @@ -14,7 +14,7 @@ use sp_runtime::{DispatchResult, RuntimeAppPublic, Vec, traits::Member}; mod benchmarking; #[cfg(test)] -mod tests; +pub(crate) mod tests; #[deny(missing_docs)] #[frame_support::pallet] diff --git a/pallets/admin-utils/src/tests/mod.rs b/pallets/admin-utils/src/tests/mod.rs index f87ba31bba..be86489446 100644 --- a/pallets/admin-utils/src/tests/mod.rs +++ b/pallets/admin-utils/src/tests/mod.rs @@ -23,7 +23,7 @@ use crate::Error; use crate::pallet::PrecompileEnable; use mock::*; -mod mock; +pub(crate) mod mock; #[test] fn test_sudo_set_default_take() { diff --git a/pallets/subtensor/src/benchmarks.rs b/pallets/subtensor/src/benchmarks.rs index b370b6dbe1..b51ad8b8f2 100644 --- a/pallets/subtensor/src/benchmarks.rs +++ b/pallets/subtensor/src/benchmarks.rs @@ -66,6 +66,7 @@ mod pallet_benchmarks { Subtensor::::set_max_registrations_per_block(netuid, 4096); Subtensor::::set_target_registrations_per_interval(netuid, 4096); Subtensor::::set_commit_reveal_weights_enabled(netuid, false); + Subtensor::::set_weights_set_rate_limit(netuid, 0); let mut seed: u32 = 1; let mut dests = Vec::new(); @@ -243,6 +244,11 @@ mod pallet_benchmarks { Subtensor::::set_network_registration_allowed(netuid, true); Subtensor::::set_max_allowed_uids(netuid, 4096); assert_eq!(Subtensor::::get_max_allowed_uids(netuid), 4096); + Subtensor::::init_new_network(NetUid::ROOT, 1); + Subtensor::::set_network_registration_allowed(NetUid::ROOT, true); + Subtensor::::set_network_pow_registration_allowed(NetUid::ROOT, true); + FirstEmissionBlockNumber::::insert(NetUid::ROOT, 1); + SubtokenEnabled::::insert(NetUid::ROOT, true); let amount: u64 = 100_000_000_000_000; Subtensor::::add_balance_to_coldkey_account(&coldkey, amount); @@ -292,6 +298,7 @@ mod pallet_benchmarks { Subtensor::::init_new_network(netuid, tempo); Subtensor::::set_network_pow_registration_allowed(netuid, true); + Subtensor::::set_weights_set_rate_limit(netuid, 0); let block_number: u64 = Subtensor::::get_current_block_as_u64(); let (nonce, work) = Subtensor::::create_work_for_block_number( @@ -330,6 +337,7 @@ mod pallet_benchmarks { Subtensor::::init_new_network(netuid, tempo); Subtensor::::set_network_registration_allowed(netuid, true); Subtensor::::set_network_pow_registration_allowed(netuid, true); + Subtensor::::set_weights_set_rate_limit(netuid, 0); let block_number: u64 = Subtensor::::get_current_block_as_u64(); let (nonce, work) = @@ -356,11 +364,19 @@ mod pallet_benchmarks { salt.clone(), version_key, )); - let _ = Subtensor::::commit_weights( + let commit_block = Subtensor::::get_current_block_as_u64(); + assert_ok!(Subtensor::::commit_weights( RawOrigin::Signed(hotkey.clone()).into(), netuid, commit_hash, - ); + )); + + let (first_reveal_block, _) = Subtensor::::get_reveal_blocks(netuid, commit_block); + let reveal_block: BlockNumberFor = first_reveal_block + .try_into() + .ok() + .expect("can't convert to block number"); + frame_system::Pallet::::set_block_number(reveal_block); #[extrinsic_call] _( @@ -556,6 +572,7 @@ mod pallet_benchmarks { let mut salts_list = Vec::new(); let mut version_keys = Vec::new(); + let commit_block = Subtensor::::get_current_block_as_u64(); for i in 0..num_commits { let uids = vec![0u16]; let values = vec![i as u16]; @@ -583,6 +600,13 @@ mod pallet_benchmarks { version_keys.push(version_key_i); } + let (first_reveal_block, _) = Subtensor::::get_reveal_blocks(netuid, commit_block); + let reveal_block: BlockNumberFor = first_reveal_block + .try_into() + .ok() + .expect("can't convert to block number"); + frame_system::Pallet::::set_block_number(reveal_block); + #[extrinsic_call] _( RawOrigin::Signed(hotkey.clone()), @@ -1052,6 +1076,7 @@ mod pallet_benchmarks { Subtensor::::init_new_network(netuid, 1); Subtensor::::set_network_pow_registration_allowed(netuid, true); SubtokenEnabled::::insert(netuid, true); + Subtensor::::set_weights_set_rate_limit(netuid, 0); let reg_fee = Subtensor::::get_burn(netuid); Subtensor::::add_balance_to_coldkey_account(&hotkey, reg_fee.to_u64().saturating_mul(2)); @@ -1115,9 +1140,11 @@ mod pallet_benchmarks { fn decrease_take() { let coldkey: T::AccountId = whitelisted_caller(); let hotkey: T::AccountId = account("Alice", 0, 1); - let take: u16 = 100; + let min_take = Subtensor::::get_min_delegate_take(); + let take: u16 = min_take; + let current_take = min_take.saturating_add(1); - Delegates::::insert(&hotkey, 200u16); + Delegates::::insert(&hotkey, current_take); Owner::::insert(&hotkey, &coldkey); #[extrinsic_call] diff --git a/pallets/subtensor/src/lib.rs b/pallets/subtensor/src/lib.rs index 47726bd6b0..c0000d2662 100644 --- a/pallets/subtensor/src/lib.rs +++ b/pallets/subtensor/src/lib.rs @@ -52,7 +52,7 @@ pub use extensions::*; pub use guards::*; #[cfg(test)] -mod tests; +pub(crate) mod tests; // apparently this is stabilized since rust 1.36 extern crate alloc; @@ -1227,7 +1227,7 @@ pub mod pallet { /// ================== /// ==== Coinbase ==== /// ================== - /// --- ITEM ( global_block_emission ) + /// --- ITEM ( global_block_emission ) #[pallet::storage] pub type BlockEmission = StorageValue<_, u64, ValueQuery, DefaultBlockEmission>; @@ -1267,7 +1267,7 @@ pub mod pallet { #[pallet::storage] pub type TotalStake = StorageValue<_, TaoCurrency, ValueQuery, DefaultZeroTao>; - /// --- ITEM ( moving_alpha ) -- subnet moving alpha. + /// --- ITEM ( moving_alpha ) -- subnet moving alpha. #[pallet::storage] pub type SubnetMovingAlpha = StorageValue<_, I96F32, ValueQuery, DefaultMovingAlpha>;