Merge branch 'release-v7.0.0' into unstable

This commit is contained in:
Mac L
2025-04-11 20:21:40 +10:00
40 changed files with 825 additions and 432 deletions

View File

@@ -4007,7 +4007,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
&mut state,
)
.unwrap_or_else(|e| {
error!("error caching light_client data {:?}", e);
debug!("error caching light_client data {:?}", e);
});
}
@@ -7135,6 +7135,31 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
}
}
}
/// Retrieves block roots (in ascending slot order) within some slot range from fork choice.
pub fn block_roots_from_fork_choice(&self, start_slot: u64, count: u64) -> Vec<Hash256> {
let head_block_root = self.canonical_head.cached_head().head_block_root();
let fork_choice_read_lock = self.canonical_head.fork_choice_read_lock();
let block_roots_iter = fork_choice_read_lock
.proto_array()
.iter_block_roots(&head_block_root);
let end_slot = start_slot.saturating_add(count);
let mut roots = vec![];
for (root, slot) in block_roots_iter {
if slot < end_slot && slot >= start_slot {
roots.push(root);
}
if slot < start_slot {
break;
}
}
drop(fork_choice_read_lock);
// return in ascending slot order
roots.reverse();
roots
}
}
impl<T: BeaconChainTypes> Drop for BeaconChain<T> {