Merge remote-tracking branch 'origin/unstable' into tree-states

This commit is contained in:
Michael Sproul
2023-09-13 11:25:18 +10:00
250 changed files with 13730 additions and 5455 deletions

View File

@@ -80,6 +80,7 @@ impl ForkChoiceTestDefinition {
let junk_shuffling_id =
AttestationShufflingId::from_components(Epoch::new(0), Hash256::zero());
let mut fork_choice = ProtoArrayForkChoice::new::<MainnetEthSpec>(
self.finalized_block_slot,
self.finalized_block_slot,
Hash256::zero(),
self.justified_checkpoint,

View File

@@ -884,7 +884,7 @@ impl ProtoArray {
}
} else {
// Choose the winner by weight.
if child.weight >= best_child.weight {
if child.weight > best_child.weight {
change_to_child
} else {
no_change
@@ -910,7 +910,7 @@ impl ProtoArray {
Ok(())
}
/// Indicates if the node itself is viable for the head, or if it's best descendant is viable
/// Indicates if the node itself is viable for the head, or if its best descendant is viable
/// for the head.
fn node_leads_to_viable_head<E: EthSpec>(
&self,

View File

@@ -345,6 +345,7 @@ pub struct ProtoArrayForkChoice {
impl ProtoArrayForkChoice {
#[allow(clippy::too_many_arguments)]
pub fn new<E: EthSpec>(
current_slot: Slot,
finalized_block_slot: Slot,
finalized_block_state_root: Hash256,
justified_checkpoint: Checkpoint,
@@ -380,7 +381,7 @@ impl ProtoArrayForkChoice {
};
proto_array
.on_block::<E>(block, finalized_block_slot)
.on_block::<E>(block, current_slot)
.map_err(|e| format!("Failed to add finalized block to proto_array: {:?}", e))?;
Ok(Self {
@@ -983,6 +984,7 @@ mod test_compute_deltas {
};
let mut fc = ProtoArrayForkChoice::new::<MainnetEthSpec>(
genesis_slot,
genesis_slot,
state_root,
genesis_checkpoint,
@@ -1108,6 +1110,7 @@ mod test_compute_deltas {
};
let mut fc = ProtoArrayForkChoice::new::<MainnetEthSpec>(
genesis_slot,
genesis_slot,
junk_state_root,
genesis_checkpoint,