From 73d3973c7c26848c50522396962daf520be4536e Mon Sep 17 00:00:00 2001 From: Tao Zhu <82401714+tao-stones@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:59:50 -0600 Subject: [PATCH] Remove congestion multiplier from calculate fee (#34865) * remove println from a test * sync fee_structure with fee_rate_governor; remove congestion_multiplier from calculacte_fee(), leave parameters unused for now. --- runtime/src/bank.rs | 11 +++++++++++ runtime/src/bank/tests.rs | 1 - sdk/src/fee.rs | 12 ++---------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 0c13e30ff..b1b342892 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -6660,6 +6660,17 @@ impl Bank { &self.runtime_config.compute_budget.unwrap_or_default(), false, /* debugging_features */ )); + + // genesis_config loaded by accounts_db::open_genesis_config() from ledger + // has it's lamports_per_signature set to zero; bank sets its value correctly + // after the first block with a transaction in it. This is a hack to mimic + // the process. + let derived_fee_rate_governor = + FeeRateGovernor::new_derived(&genesis_config.fee_rate_governor, 0); + // new bank's fee_structure.lamports_per_signature should be inline with + // what's configured in GenesisConfig + self.fee_structure.lamports_per_signature = + derived_fee_rate_governor.lamports_per_signature; } pub fn set_inflation(&self, inflation: Inflation) { diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index 0a8309bdd..efe8b1970 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -3335,7 +3335,6 @@ fn test_bank_parent_account_spend() { let key2 = Keypair::new(); let (parent, bank_forks) = Bank::new_with_bank_forks_for_tests(&genesis_config); let amount = genesis_config.rent.minimum_balance(0); - println!("==== amount {}", amount); let tx = system_transaction::transfer(&mint_keypair, &key1.pubkey(), amount, genesis_config.hash()); diff --git a/sdk/src/fee.rs b/sdk/src/fee.rs index f3377b525..2fb045aba 100644 --- a/sdk/src/fee.rs +++ b/sdk/src/fee.rs @@ -80,17 +80,10 @@ impl FeeStructure { pub fn calculate_fee( &self, message: &SanitizedMessage, - lamports_per_signature: u64, + _lamports_per_signature: u64, budget_limits: &FeeBudgetLimits, include_loaded_account_data_size_in_fee: bool, ) -> u64 { - // Fee based on compute units and signatures - let congestion_multiplier = if lamports_per_signature == 0 { - 0.0 // test only - } else { - 1.0 // multiplier that has no effect - }; - let signature_fee = message .num_signatures() .saturating_mul(self.lamports_per_signature); @@ -122,12 +115,11 @@ impl FeeStructure { .unwrap_or_default() }); - ((budget_limits + (budget_limits .prioritization_fee .saturating_add(signature_fee) .saturating_add(write_lock_fee) .saturating_add(compute_fee) as f64) - * congestion_multiplier) .round() as u64 } }