Reduce cap by rent's leftover as temporary measure (#12111)

* Reduce cap by rent's leftover as temporary measure

* Reset testnet cap. on start and more logs
This commit is contained in:
Ryo Onodera 2020-09-09 03:53:48 +09:00 committed by GitHub
parent 9e96180ce4
commit 5b2442d54e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 3 deletions

View File

@ -2027,7 +2027,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;
@ -2083,6 +2083,7 @@ impl Bank {
account.lamports += rent_to_be_paid;
self.store_account(&pubkey, &account);
});
leftover_lamports
}
fn distribute_rent(&self) {
@ -2100,7 +2101,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(

View File

@ -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,
@ -591,6 +596,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);