From 81ed321cc21f44c381cdddfef265a98ab438b94e Mon Sep 17 00:00:00 2001 From: Samuel Dare Date: Tue, 25 Jun 2024 15:04:57 +0400 Subject: [PATCH 1/2] feat: bump spec --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 32a4f8b59..f76ae4558 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -139,7 +139,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 153, + spec_version: 186, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From 2ea077b02ffcf710f31f16edafcb62419809c619 Mon Sep 17 00:00:00 2001 From: Samuel Dare Date: Wed, 26 Jun 2024 03:29:06 +0400 Subject: [PATCH 2/2] feat: benchmark adjust senate --- pallets/subtensor/src/benchmarks.rs | 27 ++++++++++++++++++++++++++- pallets/subtensor/src/lib.rs | 7 ++++--- scripts/benchmark.sh | 2 +- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/pallets/subtensor/src/benchmarks.rs b/pallets/subtensor/src/benchmarks.rs index 403ba413e..1efd9523a 100644 --- a/pallets/subtensor/src/benchmarks.rs +++ b/pallets/subtensor/src/benchmarks.rs @@ -80,7 +80,7 @@ benchmarks! { // This is a whitelisted caller who can make transaction without weights. let caller: T::AccountId = whitelisted_caller::>(); let caller_origin = ::RuntimeOrigin::from(RawOrigin::Signed(caller.clone())); - let netuid: u16 = 1; + let netuid: u16 = 0; let version_key: u64 = 1; let tempo: u16 = 1; let modality: u16 = 0; @@ -428,4 +428,29 @@ reveal_weights { let _ = Subtensor::::commit_weights(::RuntimeOrigin::from(RawOrigin::Signed(hotkey.clone())), netuid, commit_hash); }: reveal_weights(RawOrigin::Signed(hotkey.clone()), netuid, uids, weight_values, salt, version_key) + + + adjust_senate { + migration::migrate_create_root_network::(); + let netuid: u16 = 1; + let tempo: u16 = 13; + let burn_cost = 1000; + let hotkey: T::AccountId = account("hot", 0, 1); + let coldkey: T::AccountId = account("cold", 0, 2); + + Subtensor::::init_new_network(netuid, 100); + Subtensor::::set_burn(netuid, 1); + Subtensor::::set_max_allowed_uids( netuid, 4096 ); + assert_eq!(Subtensor::::get_max_allowed_uids(netuid), 4096); + Subtensor::::set_burn(netuid, burn_cost); + + let amount_to_be_staked = 100_000_000_000; + Subtensor::::add_balance_to_coldkey_account(&coldkey.clone(), amount_to_be_staked); + + assert_ok!(Subtensor::::burned_register(RawOrigin::Signed(coldkey.clone()).into(), netuid, hotkey.clone())); + assert_ok!(Subtensor::::become_delegate(RawOrigin::Signed(coldkey.clone()).into(), hotkey.clone())); + assert_ok!(Subtensor::::root_register(RawOrigin::Signed(coldkey.clone()).into(), hotkey.clone())); + T::SenateMembers::remove_member(&hotkey).map_err(|_| "Failed to remove member")?; + + }: adjust_senate(RawOrigin::Signed(coldkey.clone()), hotkey.clone()) } diff --git a/pallets/subtensor/src/lib.rs b/pallets/subtensor/src/lib.rs index af05db7b2..1b545a514 100644 --- a/pallets/subtensor/src/lib.rs +++ b/pallets/subtensor/src/lib.rs @@ -1950,9 +1950,10 @@ pub mod pallet { /// Attempt to adjust the senate membership to include a hotkey #[pallet::call_index(63)] - #[pallet::weight((Weight::from_parts(0, 0) - .saturating_add(T::DbWeight::get().reads(0)) - .saturating_add(T::DbWeight::get().writes(0)), DispatchClass::Normal, Pays::Yes))] + #[pallet::weight((Weight::from_parts(50_000_000, 0) + .saturating_add(Weight::from_parts(0, 4632)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(1)), DispatchClass::Normal, Pays::Yes))] pub fn adjust_senate(origin: OriginFor, hotkey: T::AccountId) -> DispatchResult { Self::do_adjust_senate(origin, hotkey) } diff --git a/scripts/benchmark.sh b/scripts/benchmark.sh index 52b74778a..0cbb1506b 100755 --- a/scripts/benchmark.sh +++ b/scripts/benchmark.sh @@ -43,7 +43,7 @@ $BIN_PATH build-spec --disable-default-bootnode --raw --chain local > $TMP_SPEC $BIN_PATH benchmark pallet \ --chain=$TMP_SPEC \ --execution=native --wasm-execution=compiled \ - --pallet pallet-subtensor --extrinsic 'benchmark_dissolve_network' \ + --pallet pallet-subtensor --extrinsic 'adjust_senate' \ --output $OUTPUT_FILE rm $TMP_SPEC \ No newline at end of file