Clean up Bank::commit_transactions parameters
This commit is contained in:
parent
cad1c41ce2
commit
e66ea7cb6a
|
@ -29,7 +29,8 @@ use {
|
|||
solana_program_runtime::timings::ExecuteTimings,
|
||||
solana_runtime::{
|
||||
bank::{
|
||||
Bank, LoadAndExecuteTransactionsOutput, TransactionBalancesSet, TransactionCheckResult,
|
||||
Bank, CommitTransactionCounts, LoadAndExecuteTransactionsOutput,
|
||||
TransactionBalancesSet, TransactionCheckResult,
|
||||
},
|
||||
bank_utils,
|
||||
cost_model::{CostModel, TransactionCost},
|
||||
|
@ -1229,6 +1230,8 @@ impl BankingStage {
|
|||
"execution_results_to_transactions",
|
||||
);
|
||||
|
||||
let (last_blockhash, lamports_per_signature) =
|
||||
bank.last_blockhash_and_lamports_per_signature();
|
||||
let (freeze_lock, freeze_lock_time) =
|
||||
Measure::this(|_| bank.freeze_lock(), (), "freeze_lock");
|
||||
execute_and_commit_timings.freeze_lock_us = freeze_lock_time.as_us();
|
||||
|
@ -1283,11 +1286,15 @@ impl BankingStage {
|
|||
sanitized_txs,
|
||||
&mut loaded_transactions,
|
||||
execution_results,
|
||||
executed_transactions_count as u64,
|
||||
executed_transactions_count
|
||||
last_blockhash,
|
||||
lamports_per_signature,
|
||||
CommitTransactionCounts {
|
||||
committed_transactions_count: executed_transactions_count as u64,
|
||||
committed_with_failure_result_count: executed_transactions_count
|
||||
.saturating_sub(executed_with_successful_result_count)
|
||||
as u64,
|
||||
signature_count,
|
||||
},
|
||||
&mut execute_and_commit_timings.execute_timings,
|
||||
)
|
||||
},
|
||||
|
|
|
@ -1368,6 +1368,12 @@ struct PrevEpochInflationRewards {
|
|||
foundation_rate: f64,
|
||||
}
|
||||
|
||||
pub struct CommitTransactionCounts {
|
||||
pub committed_transactions_count: u64,
|
||||
pub committed_with_failure_result_count: u64,
|
||||
pub signature_count: u64,
|
||||
}
|
||||
|
||||
impl Bank {
|
||||
pub fn default_for_tests() -> Self {
|
||||
Self::default_with_accounts(Accounts::default_for_tests())
|
||||
|
@ -4745,9 +4751,9 @@ impl Bank {
|
|||
sanitized_txs: &[SanitizedTransaction],
|
||||
loaded_txs: &mut [TransactionLoadResult],
|
||||
execution_results: Vec<TransactionExecutionResult>,
|
||||
committed_transactions_count: u64,
|
||||
committed_with_failure_result_count: u64,
|
||||
signature_count: u64,
|
||||
last_blockhash: Hash,
|
||||
lamports_per_signature: u64,
|
||||
counts: CommitTransactionCounts,
|
||||
timings: &mut ExecuteTimings,
|
||||
) -> TransactionResults {
|
||||
assert!(
|
||||
|
@ -4755,6 +4761,12 @@ impl Bank {
|
|||
"commit_transactions() working on a bank that is already frozen or is undergoing freezing!"
|
||||
);
|
||||
|
||||
let CommitTransactionCounts {
|
||||
committed_transactions_count,
|
||||
committed_with_failure_result_count,
|
||||
signature_count,
|
||||
} = counts;
|
||||
|
||||
let tx_count = if self.bank_tranaction_count_fix_enabled() {
|
||||
committed_transactions_count
|
||||
} else {
|
||||
|
@ -4783,7 +4795,6 @@ impl Bank {
|
|||
.fetch_max(committed_transactions_count, Relaxed);
|
||||
}
|
||||
|
||||
let (blockhash, lamports_per_signature) = self.last_blockhash_and_lamports_per_signature();
|
||||
let mut write_time = Measure::start("write_time");
|
||||
self.rc.accounts.store_cached(
|
||||
self.slot(),
|
||||
|
@ -4791,7 +4802,7 @@ impl Bank {
|
|||
&execution_results,
|
||||
loaded_txs,
|
||||
&self.rent_collector,
|
||||
&blockhash,
|
||||
&last_blockhash,
|
||||
lamports_per_signature,
|
||||
self.leave_nonce_on_success(),
|
||||
);
|
||||
|
@ -5723,14 +5734,21 @@ impl Bank {
|
|||
None,
|
||||
);
|
||||
|
||||
let (last_blockhash, lamports_per_signature) =
|
||||
self.last_blockhash_and_lamports_per_signature();
|
||||
let results = self.commit_transactions(
|
||||
batch.sanitized_transactions(),
|
||||
&mut loaded_transactions,
|
||||
execution_results,
|
||||
executed_transactions_count as u64,
|
||||
executed_transactions_count.saturating_sub(executed_with_successful_result_count)
|
||||
last_blockhash,
|
||||
lamports_per_signature,
|
||||
CommitTransactionCounts {
|
||||
committed_transactions_count: executed_transactions_count as u64,
|
||||
committed_with_failure_result_count: executed_transactions_count
|
||||
.saturating_sub(executed_with_successful_result_count)
|
||||
as u64,
|
||||
signature_count,
|
||||
},
|
||||
timings,
|
||||
);
|
||||
let post_balances = if collect_balances {
|
||||
|
|
Loading…
Reference in New Issue