Updates to block validation
- Rename "parent_hashes" -> "recent_block_hashes" - Expect block has to be computed prior to function
This commit is contained in:
parent
06c20857c8
commit
a40b49d586
@ -63,7 +63,7 @@ pub struct AttestationValidationContext<T>
|
|||||||
/// The last justified slot as per the client's view of the canonical chain.
|
/// The last justified slot as per the client's view of the canonical chain.
|
||||||
pub last_justified_slot: u64,
|
pub last_justified_slot: u64,
|
||||||
/// A vec of the hashes of the blocks preceeding the present slot.
|
/// A vec of the hashes of the blocks preceeding the present slot.
|
||||||
pub parent_hashes: Arc<Vec<Hash256>>,
|
pub recent_block_hashes: Arc<Vec<Hash256>>,
|
||||||
/// The store containing block information.
|
/// The store containing block information.
|
||||||
pub block_store: Arc<BeaconBlockStore<T>>,
|
pub block_store: Arc<BeaconBlockStore<T>>,
|
||||||
/// The store containing validator information.
|
/// The store containing validator information.
|
||||||
@ -155,7 +155,7 @@ impl<T> AttestationValidationContext<T>
|
|||||||
self.cycle_length,
|
self.cycle_length,
|
||||||
self.block_slot,
|
self.block_slot,
|
||||||
a.slot,
|
a.slot,
|
||||||
&self.parent_hashes,
|
&self.recent_block_hashes,
|
||||||
&a.oblique_parent_hashes)?;
|
&a.oblique_parent_hashes)?;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -80,7 +80,7 @@ pub struct BeaconBlockValidationContext<T>
|
|||||||
/// The last finalized slot as per the client's view of the canonical chain.
|
/// The last finalized slot as per the client's view of the canonical chain.
|
||||||
pub last_finalized_slot: u64,
|
pub last_finalized_slot: u64,
|
||||||
/// A vec of the hashes of the blocks preceeding the present slot.
|
/// A vec of the hashes of the blocks preceeding the present slot.
|
||||||
pub parent_hashes: Arc<Vec<Hash256>>,
|
pub recent_block_hashes: Arc<Vec<Hash256>>,
|
||||||
/// A map of slots to a block proposer validation index.
|
/// A map of slots to a block proposer validation index.
|
||||||
pub proposer_map: Arc<ProposerMap>,
|
pub proposer_map: Arc<ProposerMap>,
|
||||||
/// A map of (slot, shard_id) to the attestation set of validation indices.
|
/// A map of (slot, shard_id) to the attestation set of validation indices.
|
||||||
@ -109,7 +109,7 @@ impl<T> BeaconBlockValidationContext<T>
|
|||||||
/// Note: this function does not implement randao_reveal checking as it is not in the
|
/// Note: this function does not implement randao_reveal checking as it is not in the
|
||||||
/// specification.
|
/// specification.
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub fn validate_ssz_block(&self, b: &SszBeaconBlock)
|
pub fn validate_ssz_block(&self, block_hash: &Hash256, b: &SszBeaconBlock)
|
||||||
-> Result<(BeaconBlockStatus, Option<BeaconBlock>), SszBeaconBlockValidationError>
|
-> Result<(BeaconBlockStatus, Option<BeaconBlock>), SszBeaconBlockValidationError>
|
||||||
where T: ClientDB + Sized
|
where T: ClientDB + Sized
|
||||||
{
|
{
|
||||||
@ -118,7 +118,6 @@ impl<T> BeaconBlockValidationContext<T>
|
|||||||
* If this block is already known, return immediately and indicate the the block is
|
* If this block is already known, return immediately and indicate the the block is
|
||||||
* known. Don't attempt to deserialize the block.
|
* known. Don't attempt to deserialize the block.
|
||||||
*/
|
*/
|
||||||
let block_hash = &b.block_hash();
|
|
||||||
if self.block_store.block_exists(&block_hash)? {
|
if self.block_store.block_exists(&block_hash)? {
|
||||||
return Ok((BeaconBlockStatus::KnownBlock, None));
|
return Ok((BeaconBlockStatus::KnownBlock, None));
|
||||||
}
|
}
|
||||||
@ -225,7 +224,7 @@ impl<T> BeaconBlockValidationContext<T>
|
|||||||
parent_block_slot,
|
parent_block_slot,
|
||||||
cycle_length: self.cycle_length,
|
cycle_length: self.cycle_length,
|
||||||
last_justified_slot: self.last_justified_slot,
|
last_justified_slot: self.last_justified_slot,
|
||||||
parent_hashes: self.parent_hashes.clone(),
|
recent_block_hashes: self.recent_block_hashes.clone(),
|
||||||
block_store: self.block_store.clone(),
|
block_store: self.block_store.clone(),
|
||||||
validator_store: self.validator_store.clone(),
|
validator_store: self.validator_store.clone(),
|
||||||
attester_map: self.attester_map.clone(),
|
attester_map: self.attester_map.clone(),
|
||||||
|
@ -208,7 +208,7 @@ pub fn setup_attestation_validation_test(shard_id: u16, attester_count: usize)
|
|||||||
parent_block_slot,
|
parent_block_slot,
|
||||||
cycle_length,
|
cycle_length,
|
||||||
last_justified_slot,
|
last_justified_slot,
|
||||||
parent_hashes: parent_hashes.clone(),
|
recent_block_hashes: parent_hashes.clone(),
|
||||||
block_store: stores.block.clone(),
|
block_store: stores.block.clone(),
|
||||||
validator_store: stores.validator.clone(),
|
validator_store: stores.validator.clone(),
|
||||||
attester_map: Arc::new(attester_map),
|
attester_map: Arc::new(attester_map),
|
||||||
|
@ -225,14 +225,15 @@ pub fn run_block_validation_scenario<F>(
|
|||||||
last_justified_slot: params.validation_context_justified_slot,
|
last_justified_slot: params.validation_context_justified_slot,
|
||||||
last_justified_block_hash: params.validation_context_justified_block_hash,
|
last_justified_block_hash: params.validation_context_justified_block_hash,
|
||||||
last_finalized_slot: params.validation_context_finalized_slot,
|
last_finalized_slot: params.validation_context_finalized_slot,
|
||||||
parent_hashes: Arc::new(parent_hashes),
|
recent_block_hashes: Arc::new(parent_hashes),
|
||||||
proposer_map: Arc::new(proposer_map),
|
proposer_map: Arc::new(proposer_map),
|
||||||
attester_map: Arc::new(attester_map),
|
attester_map: Arc::new(attester_map),
|
||||||
block_store: stores.block.clone(),
|
block_store: stores.block.clone(),
|
||||||
validator_store: stores.validator.clone(),
|
validator_store: stores.validator.clone(),
|
||||||
pow_store: stores.pow_chain.clone()
|
pow_store: stores.pow_chain.clone()
|
||||||
};
|
};
|
||||||
let validation_status = context.validate_ssz_block(&ssz_block);
|
let block_hash = Hash256::from(&ssz_block.block_hash()[..]);
|
||||||
|
let validation_status = context.validate_ssz_block(&block_hash, &ssz_block);
|
||||||
/*
|
/*
|
||||||
* If validation returned a block, make sure it's the same block we supplied to it.
|
* If validation returned a block, make sure it's the same block we supplied to it.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user