From dd4e054fd2b5ec7ba79e754ed6cf462a94040d4c Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Fri, 21 Apr 2023 22:16:50 +0800 Subject: [PATCH] Reduce base proof size weight component to zero (#7081) * Reduce base proof size weight component to 1KiB * Create TempFixedXcmWeight and set PoV weight to 0 * Set DEFAULT_PROOF_SIZE to 0 * Fix comment * Update test expectations * Fix comment --- runtime/kusama/src/xcm_config.rs | 2 +- runtime/polkadot/src/xcm_config.rs | 7 +++++-- xcm/src/v3/mod.rs | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/runtime/kusama/src/xcm_config.rs b/runtime/kusama/src/xcm_config.rs index ce36e00acc08..37def756000f 100644 --- a/runtime/kusama/src/xcm_config.rs +++ b/runtime/kusama/src/xcm_config.rs @@ -441,5 +441,5 @@ fn karura_liquid_staking_xcm_has_sane_weight_upper_limt() { let weight = ::Weigher::weight(&mut xcm) .expect("weighing XCM failed"); - assert_eq!(weight, Weight::from_parts(20_313_281_000, 65536)); + assert_eq!(weight, Weight::from_parts(20_313_281_000, 0)); } diff --git a/runtime/polkadot/src/xcm_config.rs b/runtime/polkadot/src/xcm_config.rs index ccb0ee7521f4..e17b04a24edc 100644 --- a/runtime/polkadot/src/xcm_config.rs +++ b/runtime/polkadot/src/xcm_config.rs @@ -108,7 +108,10 @@ type LocalOriginConverter = ( parameter_types! { /// The amount of weight an XCM operation takes. This is a safe overestimate. - pub const BaseXcmWeight: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); + pub const BaseXcmWeight: Weight = Weight::from_parts(1_000_000_000, 1024); + /// A temporary weight value for each XCM instruction. + /// NOTE: This should be removed after we account for PoV weights. + pub const TempFixedXcmWeight: Weight = Weight::from_parts(1_000_000_000, 0); /// Maximum number of instructions in a single XCM fragment. A sanity check against weight /// calculations getting too crazy. pub const MaxInstructions: u32 = 100; @@ -323,7 +326,7 @@ impl xcm_executor::Config for XcmConfig { type IsTeleporter = TrustedTeleporters; type UniversalLocation = UniversalLocation; type Barrier = Barrier; - type Weigher = FixedWeightBounds; + type Weigher = FixedWeightBounds; // The weight trader piggybacks on the existing transaction-fee conversion logic. type Trader = UsingComponents>; diff --git a/xcm/src/v3/mod.rs b/xcm/src/v3/mod.rs index ff94c1392fea..d4e8e52af52c 100644 --- a/xcm/src/v3/mod.rs +++ b/xcm/src/v3/mod.rs @@ -1191,8 +1191,9 @@ impl TryFrom> for Xcm { } } -/// Default value for the proof size weight component. Set at 64 KB. -const DEFAULT_PROOF_SIZE: u64 = 64 * 1024; +/// Default value for the proof size weight component. Set at 0 KB. +/// NOTE: Make sure this is removed after we properly account for PoV weights. +const DEFAULT_PROOF_SIZE: u64 = 0; // Convert from a v2 instruction to a v3 instruction. impl TryFrom> for Instruction {