Skip to content

Commit

Permalink
Reduce cap by rent's leftover as temporary measure (#12111)
Browse files Browse the repository at this point in the history
* Reduce cap by rent's leftover as temporary measure

* Reset testnet cap. on start and more logs

(cherry picked from commit 5b2442d)
  • Loading branch information
ryoqun authored and mergify-bot committed Sep 8, 2020
1 parent d26a809 commit 29a411c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
10 changes: 8 additions & 2 deletions runtime/src/bank.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2026,7 +2026,7 @@ impl Bank {
&self,
vote_account_hashmap: &HashMap<Pubkey, (u64, Account)>,
rent_to_be_distributed: u64,
) {
) -> u64 {
let mut total_staked = 0;
let mut rent_distributed_in_initial_round = 0;

Expand Down Expand Up @@ -2082,6 +2082,7 @@ impl Bank {
account.lamports += rent_to_be_paid;
self.store_account(&pubkey, &account);
});
leftover_lamports
}

fn distribute_rent(&self) {
Expand All @@ -2099,7 +2100,12 @@ impl Bank {
return;
}

self.distribute_rent_to_validators(&self.vote_accounts(), rent_to_be_distributed);
let leftover =
self.distribute_rent_to_validators(&self.vote_accounts(), rent_to_be_distributed);
if leftover != 0 {
warn!("There was leftover from rent distribution: {}", leftover);
self.capitalization.fetch_sub(leftover, Ordering::Relaxed);
}
}

fn collect_rent(
Expand Down
18 changes: 17 additions & 1 deletion runtime/src/snapshot_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ use fs_extra::dir::CopyOptions;
use log::*;
use regex::Regex;
use solana_measure::measure::Measure;
use solana_sdk::{clock::Slot, genesis_config::GenesisConfig, hash::Hash, pubkey::Pubkey};
use solana_sdk::{
clock::Slot,
genesis_config::{ClusterType, GenesisConfig},
hash::Hash,
pubkey::Pubkey,
};
use std::{
cmp::Ordering,
fmt,
Expand Down Expand Up @@ -585,6 +590,17 @@ pub fn bank_from_archive<P: AsRef<Path>>(
if !bank.verify_snapshot_bank() {
panic!("Snapshot bank for slot {} failed to verify", bank.slot());
}
if genesis_config.cluster_type == ClusterType::Testnet {
let old = bank.set_capitalization();
if old != bank.capitalization() {
warn!(
"Capitalization was recalculated: {} => {}",
old,
bank.capitalization()
)
}
}

measure.stop();
info!("{}", measure);

Expand Down

0 comments on commit 29a411c

Please sign in to comment.