mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-09 03:17:55 +00:00
Remove INVALID_TERMINAL_BLOCK (#3385)
## Issue Addressed Resolves #3379 ## Proposed Changes Remove instances of `InvalidTerminalBlock` in lighthouse and use `Invalid {latest_valid_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"}` to represent that status.
This commit is contained in:
@@ -40,7 +40,6 @@ enum Payload {
|
||||
},
|
||||
Syncing,
|
||||
InvalidBlockHash,
|
||||
InvalidTerminalBlock,
|
||||
}
|
||||
|
||||
struct InvalidPayloadRig {
|
||||
@@ -231,16 +230,20 @@ impl InvalidPayloadRig {
|
||||
Payload::Invalid { latest_valid_hash } => {
|
||||
let latest_valid_hash = latest_valid_hash
|
||||
.unwrap_or_else(|| self.block_hash(block.message().parent_root()));
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_on_new_payload(latest_valid_hash)
|
||||
if latest_valid_hash == ExecutionBlockHash::zero() {
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_terminal_block_on_new_payload()
|
||||
} else {
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_on_new_payload(latest_valid_hash)
|
||||
}
|
||||
}
|
||||
|
||||
Payload::InvalidBlockHash => mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_block_hash_on_new_payload(),
|
||||
Payload::InvalidTerminalBlock => mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_terminal_block_on_new_payload(),
|
||||
};
|
||||
let set_forkchoice_updated = |payload: Payload| match payload {
|
||||
Payload::Valid => mock_execution_layer
|
||||
@@ -252,16 +255,20 @@ impl InvalidPayloadRig {
|
||||
Payload::Invalid { latest_valid_hash } => {
|
||||
let latest_valid_hash = latest_valid_hash
|
||||
.unwrap_or_else(|| self.block_hash(block.message().parent_root()));
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_on_forkchoice_updated(latest_valid_hash)
|
||||
if latest_valid_hash == ExecutionBlockHash::zero() {
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_terminal_block_on_forkchoice_updated()
|
||||
} else {
|
||||
mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_on_forkchoice_updated(latest_valid_hash)
|
||||
}
|
||||
}
|
||||
|
||||
Payload::InvalidBlockHash => mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_block_hash_on_forkchoice_updated(),
|
||||
Payload::InvalidTerminalBlock => mock_execution_layer
|
||||
.server
|
||||
.all_payloads_invalid_terminal_block_on_forkchoice_updated(),
|
||||
};
|
||||
|
||||
match (new_payload_response, forkchoice_response) {
|
||||
@@ -294,9 +301,7 @@ impl InvalidPayloadRig {
|
||||
match forkchoice_response {
|
||||
Payload::Syncing => assert!(execution_status.is_strictly_optimistic()),
|
||||
Payload::Valid => assert!(execution_status.is_valid_and_post_bellatrix()),
|
||||
Payload::Invalid { .. }
|
||||
| Payload::InvalidBlockHash
|
||||
| Payload::InvalidTerminalBlock => unreachable!(),
|
||||
Payload::Invalid { .. } | Payload::InvalidBlockHash => unreachable!(),
|
||||
}
|
||||
|
||||
assert_eq!(
|
||||
@@ -310,14 +315,8 @@ impl InvalidPayloadRig {
|
||||
"block from db must match block imported"
|
||||
);
|
||||
}
|
||||
(
|
||||
Payload::Invalid { .. } | Payload::InvalidBlockHash | Payload::InvalidTerminalBlock,
|
||||
_,
|
||||
)
|
||||
| (
|
||||
_,
|
||||
Payload::Invalid { .. } | Payload::InvalidBlockHash | Payload::InvalidTerminalBlock,
|
||||
) => {
|
||||
(Payload::Invalid { .. } | Payload::InvalidBlockHash, _)
|
||||
| (_, Payload::Invalid { .. } | Payload::InvalidBlockHash) => {
|
||||
set_new_payload(new_payload_response);
|
||||
set_forkchoice_updated(forkchoice_response);
|
||||
|
||||
@@ -473,7 +472,10 @@ async fn immediate_forkchoice_update_payload_invalid_block_hash() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn immediate_forkchoice_update_payload_invalid_terminal_block() {
|
||||
immediate_forkchoice_update_invalid_test(|_| Payload::InvalidTerminalBlock).await
|
||||
immediate_forkchoice_update_invalid_test(|_| Payload::Invalid {
|
||||
latest_valid_hash: Some(ExecutionBlockHash::zero()),
|
||||
})
|
||||
.await
|
||||
}
|
||||
|
||||
/// Ensure the client tries to exit when the justified checkpoint is invalidated.
|
||||
|
||||
Reference in New Issue
Block a user