Track a Bank's parent slot independently from parent bank (#7131)
This commit is contained in:
parent
ef64f00cbb
commit
76a68c26c9
|
@ -141,13 +141,7 @@ impl StandardBroadcastRun {
|
|||
{
|
||||
self.slot_broadcast_start = Some(Instant::now());
|
||||
let slot = bank.slot();
|
||||
let parent_slot = {
|
||||
if let Some(parent_bank) = bank.parent() {
|
||||
parent_bank.slot()
|
||||
} else {
|
||||
0
|
||||
}
|
||||
};
|
||||
let parent_slot = bank.parent_slot();
|
||||
|
||||
self.current_slot_and_parent = Some((slot, parent_slot));
|
||||
receive_elapsed = Duration::new(0, 0);
|
||||
|
|
|
@ -180,6 +180,8 @@ pub struct Bank {
|
|||
/// Hash of this Bank's parent's state
|
||||
parent_hash: Hash,
|
||||
|
||||
parent_slot: u64,
|
||||
|
||||
/// The number of transactions processed without error
|
||||
#[serde(serialize_with = "serialize_atomicu64")]
|
||||
#[serde(deserialize_with = "deserialize_atomicu64")]
|
||||
|
@ -358,6 +360,7 @@ impl Bank {
|
|||
epoch_stakes: parent.epoch_stakes.clone(),
|
||||
storage_accounts: RwLock::new(parent.storage_accounts.read().unwrap().clone()),
|
||||
parent_hash: parent.hash(),
|
||||
parent_slot: parent.slot(),
|
||||
collector_id: *collector_id,
|
||||
collector_fees: AtomicU64::new(0),
|
||||
ancestors: HashMap::new(),
|
||||
|
@ -662,6 +665,10 @@ impl Bank {
|
|||
self.rc.parent.read().unwrap().clone()
|
||||
}
|
||||
|
||||
pub fn parent_slot(&self) -> u64 {
|
||||
self.parent_slot
|
||||
}
|
||||
|
||||
fn process_genesis_config(&mut self, genesis_config: &GenesisConfig) {
|
||||
// Bootstrap leader collects fees until `new_from_parent` is called.
|
||||
self.fee_calculator = genesis_config.fee_calculator.clone();
|
||||
|
|
Loading…
Reference in New Issue