mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-01 03:33:47 +00:00
Convert RpcBlock to an enum that indicates availability (#8424)
Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu> Co-Authored-By: Mark Mackey <mark@sigmaprime.io> Co-Authored-By: Eitan Seri-Levi <eserilev@gmail.com> Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
#![cfg(not(debug_assertions))]
|
||||
|
||||
use beacon_chain::attestation_simulator::produce_unaggregated_attestation;
|
||||
use beacon_chain::block_verification_types::RpcBlock;
|
||||
use beacon_chain::custody_context::NodeCustodyType;
|
||||
use beacon_chain::test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy};
|
||||
use beacon_chain::validator_monitor::UNAGGREGATED_ATTESTATION_LAG_SLOTS;
|
||||
use beacon_chain::{StateSkipConfig, WhenSlotSkipped, metrics};
|
||||
@@ -114,6 +116,8 @@ async fn produces_attestations() {
|
||||
.keypairs(KEYPAIRS[..].to_vec())
|
||||
.fresh_ephemeral_store()
|
||||
.mock_execution_layer()
|
||||
// SemiSupernode ensures enough columns are stored for sampling + custody validation for RpcBlock
|
||||
.node_custody_type(NodeCustodyType::SemiSupernode)
|
||||
.build();
|
||||
|
||||
let chain = &harness.chain;
|
||||
@@ -221,14 +225,16 @@ async fn produces_attestations() {
|
||||
|
||||
let rpc_block =
|
||||
harness.build_rpc_block_from_store_blobs(Some(block_root), Arc::new(block.clone()));
|
||||
let beacon_chain::data_availability_checker::MaybeAvailableBlock::Available(
|
||||
available_block,
|
||||
) = chain
|
||||
.data_availability_checker
|
||||
.verify_kzg_for_rpc_block(rpc_block)
|
||||
.unwrap()
|
||||
else {
|
||||
panic!("block should be available")
|
||||
|
||||
let available_block = match rpc_block {
|
||||
RpcBlock::FullyAvailable(available_block) => {
|
||||
chain
|
||||
.data_availability_checker
|
||||
.verify_kzg_for_available_block(&available_block)
|
||||
.unwrap();
|
||||
available_block
|
||||
}
|
||||
RpcBlock::BlockOnly { .. } => panic!("block should be available"),
|
||||
};
|
||||
|
||||
let early_attestation = {
|
||||
@@ -288,14 +294,17 @@ async fn early_attester_cache_old_request() {
|
||||
|
||||
let rpc_block = harness
|
||||
.build_rpc_block_from_store_blobs(Some(head.beacon_block_root), head.beacon_block.clone());
|
||||
let beacon_chain::data_availability_checker::MaybeAvailableBlock::Available(available_block) =
|
||||
harness
|
||||
.chain
|
||||
.data_availability_checker
|
||||
.verify_kzg_for_rpc_block(rpc_block)
|
||||
.unwrap()
|
||||
else {
|
||||
panic!("block should be available")
|
||||
|
||||
let available_block = match rpc_block {
|
||||
RpcBlock::FullyAvailable(available_block) => {
|
||||
harness
|
||||
.chain
|
||||
.data_availability_checker
|
||||
.verify_kzg_for_available_block(&available_block)
|
||||
.unwrap();
|
||||
available_block
|
||||
}
|
||||
RpcBlock::BlockOnly { .. } => panic!("block should be available"),
|
||||
};
|
||||
|
||||
harness
|
||||
|
||||
Reference in New Issue
Block a user