Mode gate RecentBlockhashes/BlockhashQueue sync
(cherry picked from commit 5741002a32
)
This commit is contained in:
committed by
Trent Nelson
parent
a0965e1eba
commit
d6ea4f50c9
@ -532,7 +532,9 @@ impl Bank {
|
||||
new.update_stake_history(Some(parent.epoch()));
|
||||
new.update_clock();
|
||||
new.update_fees();
|
||||
new.update_recent_blockhashes();
|
||||
if !new.fix_recent_blockhashes_sysvar_delay() {
|
||||
new.update_recent_blockhashes();
|
||||
}
|
||||
new
|
||||
}
|
||||
|
||||
@ -1116,7 +1118,9 @@ impl Bank {
|
||||
let current_tick_height = self.tick_height.fetch_add(1, Ordering::Relaxed) as u64;
|
||||
if self.is_block_boundary(current_tick_height + 1) {
|
||||
w_blockhash_queue.register_hash(hash, &self.fee_calculator);
|
||||
self.update_recent_blockhashes_locked(&w_blockhash_queue);
|
||||
if self.fix_recent_blockhashes_sysvar_delay() {
|
||||
self.update_recent_blockhashes_locked(&w_blockhash_queue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2652,6 +2656,16 @@ impl Bank {
|
||||
pub fn shrink_all_stale_slots(&self) {
|
||||
self.rc.accounts.accounts_db.shrink_all_stale_slots();
|
||||
}
|
||||
|
||||
fn fix_recent_blockhashes_sysvar_delay(&self) -> bool {
|
||||
let activation_slot = match self.operating_mode() {
|
||||
OperatingMode::Development => 0,
|
||||
OperatingMode::Stable => Slot::MAX / 2,
|
||||
OperatingMode::Preview => Slot::MAX / 2,
|
||||
};
|
||||
|
||||
self.slot() >= activation_slot
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for Bank {
|
||||
|
Reference in New Issue
Block a user