Various minor fixes
This commit is contained in:
parent
f4121d9deb
commit
64a6e1475c
@ -539,11 +539,11 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
// (e.g., if there are skip slots between the epoch the block was created in and
|
// (e.g., if there are skip slots between the epoch the block was created in and
|
||||||
// the epoch for the attestation).
|
// the epoch for the attestation).
|
||||||
if state.current_epoch() == attestation.data.target.epoch
|
if state.current_epoch() == attestation.data.target.epoch
|
||||||
&& (state
|
&& (attestation.data.beacon_block_root == self.head().beacon_block_root
|
||||||
|
|| state
|
||||||
.get_block_root(attestation_head_block.slot)
|
.get_block_root(attestation_head_block.slot)
|
||||||
.map(|root| *root == attestation.data.beacon_block_root)
|
.map(|root| *root == attestation.data.beacon_block_root)
|
||||||
.unwrap_or_else(|_| false)
|
.unwrap_or_else(|_| false))
|
||||||
|| attestation.data.beacon_block_root == self.head().beacon_block_root)
|
|
||||||
{
|
{
|
||||||
// The head state is able to be used to validate this attestation. No need to load
|
// The head state is able to be used to validate this attestation. No need to load
|
||||||
// anything from the database.
|
// anything from the database.
|
||||||
@ -558,6 +558,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if let Some(outcome) = optional_outcome {
|
if let Some(outcome) = optional_outcome {
|
||||||
|
// Verification was already completed with an in-memory state. Return that result.
|
||||||
outcome
|
outcome
|
||||||
} else {
|
} else {
|
||||||
// Use the `data.beacon_block_root` to load the state from the latest non-skipped
|
// Use the `data.beacon_block_root` to load the state from the latest non-skipped
|
||||||
@ -612,13 +613,13 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Reject any block where we have not processed `attestation.data.beacon_block_root`.
|
// Drop any attestation where we have not processed `attestation.data.beacon_block_root`.
|
||||||
//
|
//
|
||||||
// This is likely overly restrictive, we could store the attestation for later
|
// This is likely overly restrictive, we could store the attestation for later
|
||||||
// processing.
|
// processing.
|
||||||
warn!(
|
warn!(
|
||||||
self.log,
|
self.log,
|
||||||
"Dropping attestation for unknown block";
|
"Dropped attestation for unknown block";
|
||||||
"block" => format!("{}", attestation.data.beacon_block_root)
|
"block" => format!("{}", attestation.data.beacon_block_root)
|
||||||
);
|
);
|
||||||
Ok(AttestationProcessingOutcome::UnknownHeadBlock {
|
Ok(AttestationProcessingOutcome::UnknownHeadBlock {
|
||||||
|
Loading…
Reference in New Issue
Block a user