mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-30 20:57:10 +00:00
Gloas: fix test failures (KZG verifier wiring, harness columns, WSS sync)
Brings the FORK_NAME=gloas beacon_chain test suite from 31 failures to green: - v1 KZG batch verifier couldn't verify Gloas columns. Added verify_columns_against_block helper that picks commitments per fork (Fulu: inline on column; Gloas: signed_execution_payload_bid). - BeaconChainHarness::process_envelope didn't persist columns. Now mirrors what production does in import_available_execution_payload_envelope. - get_or_reconstruct_blobs returned an error for Gloas. Now short-circuits to Ok(None); WSS test copies columns from source to dest directly. - update_data_column_signed_header (block_verification tests) only handled Fulu shape. Added a Gloas branch that re-keys to canonical_root. - BlockError::EnvelopeBlockRootUnknown changed to tuple variant. - Removed duplicate process_payload_envelope_availability.
This commit is contained in:
@@ -323,18 +323,34 @@ fn update_data_column_signed_header<E: EthSpec>(
|
||||
) {
|
||||
for old_custody_column_sidecar in data_columns.as_mut_slice() {
|
||||
let old_column_sidecar = old_custody_column_sidecar.as_data_column();
|
||||
let new_column_sidecar = Arc::new(DataColumnSidecar::Fulu(DataColumnSidecarFulu {
|
||||
index: *old_column_sidecar.index(),
|
||||
column: old_column_sidecar.column().clone(),
|
||||
kzg_commitments: old_column_sidecar.kzg_commitments().unwrap().clone(),
|
||||
kzg_proofs: old_column_sidecar.kzg_proofs().clone(),
|
||||
signed_block_header: signed_block.signed_block_header(),
|
||||
kzg_commitments_inclusion_proof: signed_block
|
||||
.message()
|
||||
.body()
|
||||
.kzg_commitments_merkle_proof()
|
||||
.unwrap(),
|
||||
}));
|
||||
let new_column_sidecar = match old_column_sidecar.as_ref() {
|
||||
DataColumnSidecar::Fulu(_) => {
|
||||
Arc::new(DataColumnSidecar::Fulu(DataColumnSidecarFulu {
|
||||
index: *old_column_sidecar.index(),
|
||||
column: old_column_sidecar.column().clone(),
|
||||
kzg_commitments: old_column_sidecar.kzg_commitments().unwrap().clone(),
|
||||
kzg_proofs: old_column_sidecar.kzg_proofs().clone(),
|
||||
signed_block_header: signed_block.signed_block_header(),
|
||||
kzg_commitments_inclusion_proof: signed_block
|
||||
.message()
|
||||
.body()
|
||||
.kzg_commitments_merkle_proof()
|
||||
.unwrap(),
|
||||
}))
|
||||
}
|
||||
// Gloas columns reference the block by `beacon_block_root` instead of holding the
|
||||
// block header inline, so updating the parent root just means re-keying the column to
|
||||
// the new canonical root.
|
||||
DataColumnSidecar::Gloas(g) => {
|
||||
Arc::new(DataColumnSidecar::Gloas(types::DataColumnSidecarGloas {
|
||||
index: g.index,
|
||||
column: g.column.clone(),
|
||||
kzg_proofs: g.kzg_proofs.clone(),
|
||||
slot: g.slot,
|
||||
beacon_block_root: signed_block.canonical_root(),
|
||||
}))
|
||||
}
|
||||
};
|
||||
*old_custody_column_sidecar = CustodyDataColumn::from_asserted_custody(new_column_sidecar);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user