Commit Graph

7692 Commits

Author SHA1 Message Date
dapplion
d75963bb86 Address remaining review comments
- pending_column.rs: split try_to_sidecar into is_complete-checked to_sidecar
  with typed PendingColumnError so 'incomplete column' is no longer conflated
  with VariableList size-bound failures (jimmygchen, dapplion).
- pending_components.rs: get_cached_data_columns filters by is_complete first,
  then logs an error if a complete column fails to assemble (dknopik's sanity
  check on filter_map silent drops).
- data_column_verification.rs: add the missing column.slot == bid.slot
  consistency check in validate_data_column_sidecar_for_gossip_gloas, using
  the previously-defined-but-unused BlockSlotMismatch error variant
  (jimmygchen).
2026-05-01 10:28:59 +02:00
dapplion
0ce058835a Address review comments
- data_availability_checker.rs: use !gloas_enabled() instead of < ForkName::Gloas
  (jimmygchen, dapplion).
- beacon_chain.rs: get_data_columns checks data_availability_checker first,
  then pending_payload_cache (dapplion).
- pending_components.rs: merge_data_columns drops the unused Result return
  (jimmygchen). num_completed_columns uses filter() instead of filter_map (jimmygchen).
- pending_column.rs: TODO marker on the hard-coded Gloas variant in
  try_to_sidecar (jimmygchen).
- pending_payload_cache/mod.rs: gloas_spec test helper collapsed to
  ForkName::Gloas.make_genesis_spec(E::default_spec()) (jimmygchen).
- gossip_methods.rs / sync/manager.rs: replace UnknownBlockHashFromAttestation
  fallback with TODO(gloas) for proper Gloas lookup sync (dapplion).
2026-05-01 10:16:06 +02:00
dapplion
dac8a6ec8d 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.
2026-05-01 10:06:52 +02:00
dapplion
73ba76312e 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.
2026-05-01 09:59:53 +02:00
Eitan Seri-Levi
aa531bac22 yeet some comments 2026-05-01 03:55:09 +02:00
Eitan Seri-Levi
f14e7b13b5 remove unneeded field 2026-05-01 03:50:50 +02:00
Eitan Seri-Levi
82f28433aa Merge branch 'gloas-payload-cache' of https://github.com/dknopik/lighthouse into gloas-payload-cache 2026-05-01 03:32:10 +02:00
Eitan Seri-Levi
f7c7ed8457 clean up gloas-payload-cache 2026-05-01 03:31:51 +02:00
dapplion
a4e8b689d8 pending payload cache: drop unused vec ctor arg 2026-05-01 03:30:07 +02:00
dapplion
33c250b54f pending payload cache: restore vec-backed column shape 2026-05-01 03:30:07 +02:00
Eitan Seri-Levi
64c53c6553 remove duplicate fn impl 2026-05-01 03:13:36 +02:00
Eitan Seri-Levi
fd1a8e1564 use slot so we dont hit the cache twice 2026-05-01 02:54:57 +02:00
Eitan Seri-Levi
378eaedf9c Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-payload-cache 2026-05-01 02:22:42 +02:00
Eitan Seri-Levi
e9ffd1913e smol fixes 2026-05-01 02:17:20 +02:00
Eitan Seri-Levi
60093f3b94 minor fixes 2026-05-01 02:15:39 +02:00
Eitan Seri-Levi
4b76f4da28 minor fixes 2026-05-01 02:12:46 +02:00
dapplion
48b24e9029 Use SignedExecutionPayloadBid directly in pending payload cache
- Replace the `PendingPayloadBid` projection (slot + blob_kzg_commitments)
  with `Arc<SignedExecutionPayloadBid<E>>`. Cloning becomes a cheap Arc
  bump and the bid carries enough context for future bid<->envelope
  cross-checks. Add a `signed_payload_bid_from_block` helper.
- `PendingColumn` switches from a pre-sized `Vec<Option<_>>` to a sparse
  `HashMap<usize, _>`; the `new_with_capacity(num_blobs)` constructor is
  gone since callers no longer need to know the blob count up front.
- `PendingComponents::merge_data_columns` takes a slice instead of an
  owning iterator (it only borrows + clones cells).
- Store `block_root` in `PendingComponents` so `make_available` and
  `get_cached_data_columns` no longer require it as an argument (the
  arg was misnamed `block_hash` in `make_available`).
- Rename `PendingComponents::empty` -> `new`; it is the only constructor.
2026-05-01 02:05:48 +02:00
Sayan Mallick
5384ab8d67 Update CI: warp runnner to use snapshot and use warm (#9217)
Update the ci workflow to use warpbuild snapshot image and test suit uses `Swatinew/rust-cache` to utilize warpbuild cache


  


Co-Authored-By: lemon <snyxmk@gmail.com>
2026-05-01 00:05:17 +00:00
Daniel Knopik
3e331ff207 fix another bug 2026-05-01 01:55:45 +02:00
Daniel Knopik
16a3dfbc89 fix events test 2026-05-01 01:54:05 +02:00
Daniel Knopik
361bc374dd fix gloas tests 2026-05-01 01:20:18 +02:00
Josh King
aa6fdb8d6a fix: tighten genesis block fallback to match empty body root only 2026-04-30 17:28:09 +02:00
jking-aus
6177213a3d Merge pull request #9246 from jking-aus/fix-ef-tests-genesis-block
fix: restore genesis_block bid population for ef-tests and add fallback for external genesis for kurtosis
2026-04-30 17:02:50 +02:00
Eitan Seri-Levi
0748b04d64 Merge branch 'gloas-range-sync' of https://github.com/eserilev/lighthouse into gloas-range-sync 2026-04-30 16:40:20 +02:00
Eitan Seri-Levi
a840c40cbe Gloas range sync 2026-04-30 16:40:05 +02:00
Eitan Seri-Levi
28a9342831 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-range-sync 2026-04-30 15:54:22 +02:00
Josh King
22a207ffa8 fix: fallback to empty genesis block for external genesis states 2026-04-30 15:26:20 +02:00
Daniel Knopik
8e199552d6 Fix pending_payload_cache tests for sampling column filtering
Tests were switched from put_kzg_verified_custody_data_columns (no
filtering) to put_rpc_custody_columns (filters to sampling columns) but
assertions still assumed all provided columns would be stored. Account
for the sampling filter in each test's setup and assertions.
2026-04-30 15:25:00 +02:00
Josh King
98d858d942 fix: restore genesis_block bid population for ef-tests
The alpha-7 spec tests expect the Gloas genesis block body to contain
the execution payload bid from state. Restores the genesis_block()
function and body_root fixup that were removed in PR #9244.

The fork choice from_anchor fix (reading latest_block_hash when bid
hashes are zero) remains for Kurtosis/external genesis compatibility.
2026-04-30 14:21:02 +02:00
dapplion
4b1aab9fb7 Allow large stack frame in proposer_boost_re_org_test
Rust 1.94.0 raised `clippy::large_stack_frames` against this function
(548365 bytes vs. 512000 default threshold), failing pre-push lint.
Match the per-function `#[allow]` pattern used elsewhere in the
codebase (store_tests.rs, basic_sim.rs, etc.).
2026-04-30 13:44:10 +02:00
dapplion
23d5be1a0e Fix pending payload cache test lint 2026-04-30 13:41:51 +02:00
dapplion
0b7397eb4e Refactor 2026-04-30 13:39:05 +02:00
Eitan Seri-Levi
0fe75382da fmt 2026-04-30 13:05:30 +02:00
hopinheimer
5360e76696 fix genesis_block init in tests 2026-04-30 12:52:17 +02:00
Josh King
0078b6be89 fix: gloas from genesis
- Fix forkchoice update sending zero-hash head to EL at genesis by reading
  latest_block_hash from state when the genesis bid hashes are all zeros
- Simplify genesis block construction — the genesis block body is empty per
  spec, remove the incorrect bid-copying logic and body root override in
  initialize_beacon_state_from_eth1
2026-04-30 12:52:01 +02:00
dapplion
bd8cfa35f4 Refine Gloas data column availability 2026-04-30 12:36:36 +02:00
Eitan Seri-Levi
effcd08223 Gloas proposer preferences alpha 7 (#9239)
We yolo'd to alpha 7. We're just changing the proposer preference to include dependent root, instead of checkpoint root. This way we can actually construct it within the VC without needing a view of fork choice.


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-04-30 09:36:45 +00:00
Eitan Seri-Levi
666fcbd7c9 intro single_envelope_lookup.rs 2026-04-30 11:31:08 +02:00
Eitan Seri-Levi
fe4ad22ac4 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-parent-envelope-unknown-lookup 2026-04-30 10:33:19 +02:00
Eitan Seri-Levi
95b95616c7 resolve conflicts 2026-04-30 10:33:13 +02:00
Michael Sproul
8bb14d6f3d Gloas HTTP API tests passing (#9154)
Get the Gloas HTTP API tests passing, partly through fixes and partly through disabling tests that don't fit the Gloas paradigm.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-04-30 08:15:26 +00:00
Daniel Knopik
ae17107f78 fix test runs 2026-04-30 09:45:59 +02:00
Eitan Seri-Levi
728356ad03 Submit ptc votes that we produce to the ptc op pool (#9231)
We are not submitting ptc votes that we produce to our lcoal ptc op pool. So when we are the block producer we don't include our own ptc votes!


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-04-30 06:43:14 +00:00
chonghe
8d77b1c08d Remove test_logger feature (#9125)
- #9107


  Remove all instances of `test_logger` in the code


Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-04-30 04:57:47 +00:00
dapplion
bbffb80612 Rewrite pending_payload_cache tests to use real public API
The tests previously wrapped raw columns with `KzgVerifiedDataColumn::__new_for_testing`
and `KzgVerifiedCustodyDataColumn::from_asserted_custody`, then called the internal
`put_kzg_verified_custody_data_columns`. That bypassed KZG verification entirely and
hid the fact that Gloas data column verification is not yet wired up
(`verify_kzg_for_data_column` short-circuits because Gloas column sidecars don't
carry kzg_commitments — they live in the bid).

Drive `put_rpc_custody_columns` directly so the tests exercise real KZG
verification. 9 of 12 tests now fail with `InconsistentArrayLength("Gloas data
columns require commitments from block")`, which is the actual current state and
should be fixed alongside the verifier work.
2026-04-30 01:33:27 +02:00
dapplion
ce00ae2dc7 Use stable if matches! instead of if let match guard
`if let` guards are nightly-only (rust-lang/rust#51114), causing
`error[E0658]` and a CI `check-code` failure. Replace with the stable
`if matches!(...)` form suggested by rustc.
2026-04-30 00:08:35 +02:00
Daniel Knopik
e742d0b4f1 fix tests 2026-04-29 23:18:36 +02:00
Daniel Knopik
c5ca824ec3 merge from unstable 2026-04-29 23:00:51 +02:00
Jimmy Chen
04b2589807 Import execution payload envelope locally during HTTP API publication (#9226)
Fixes a bug where a proposer votes payload missing on its own block.

The payload is published to the network but never imported locally. This PR adds gossip verification and import when a payload is sent to the http API


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-04-29 15:43:30 +00:00
Daniel Knopik
7cf76ac7af clean up 2026-04-29 17:38:49 +02:00