Commit Graph

7507 Commits

Author SHA1 Message Date
Eitan Seri-Levi
b2d0ef1b11 Merge branch 'gloas-post-bid-api' into glamsterdam-devnet-4 2026-05-24 13:28:22 +03:00
Eitan Seri-Levi
c579328a53 Merge branch 'gloas-proposer-preferences-sse' into glamsterdam-devnet-4 2026-05-24 13:26:40 +03:00
Eitan Seri-Levi
b18401b552 Merge remote-tracking branch 'origin/gloas-proposer-preferences-duty-fix' into glamsterdam-devnet-4 2026-05-24 13:26:09 +03:00
Eitan Seri-Levi
c0e90415d9 Merge remote-tracking branch 'origin/gloas-proposer-preferences-duty-fix' into glamsterdam-devnet-4 2026-05-24 13:25:37 +03:00
Eitan Seri-Levi
4ce3c36615 Merge branch 'gloas-fix-proposer-pref-gossip-verification' into glamsterdam-devnet-4 2026-05-24 13:24:58 +03:00
Eitan Seri-Levi
dfa599a9bc Merge branch 'gloas-dont-enforce-peer-column-custody-on-block-import' into glamsterdam-devnet-4 2026-05-24 13:24:38 +03:00
Eitan Seri-Levi
e4f137dc04 Add API for posting bid 2026-05-24 13:18:27 +03:00
Eitan Seri-Levi
36a2f509de Delete irrelevant test 2026-05-24 11:54:13 +03:00
Eitan Seri-Levi
2170505725 use slot duration from spec 2026-05-24 11:24:53 +03:00
Eitan Seri-Levi
eaa5caf778 Update 2026-05-24 11:18:27 +03:00
Eitan Seri-Levi
0e99b454a3 Fixes 2026-05-24 11:09:51 +03:00
Eitan Seri-Levi
af09a3124c Fix comment 2026-05-24 10:38:10 +03:00
Eitan Seri-Levi
255773834b Add allow reprocess flag 2026-05-24 10:15:13 +03:00
Eitan Seri-Levi
575580a982 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-dont-enforce-peer-column-custody-on-block-import 2026-05-24 09:45:50 +03:00
Eitan Seri-Levi
c2004854c9 cleanup 2026-05-24 09:45:44 +03:00
Eitan Seri-Levi
623c8f4617 Clean up 2026-05-24 09:38:12 +03:00
Eitan Seri-Levi
3febb7275c keyed by hash256 2026-05-23 17:50:28 +03:00
Eitan Seri-Levi
7f84ac18c7 Merge branch 'unstable' of https://github.com/sigp/lighthouse into data-column-reprocess-queue 2026-05-23 10:40:17 +03:00
Eitan Seri-Levi
5045e8dd85 Custody backfill sync only penalize peers once per batch (#9340)
During custody backfill sync if a peer fails to serve columns for a batch don't penalize them more than once per batch


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-05-22 17:50:50 +00:00
Eitan Seri-Levi
5693d86002 Ensure we use the right fork when calculating payload attestation sig domain (#9342)
Using `state.fork` is a bit sketchy at the fork boundary. It's safer to just use the payload attestations slot


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-05-22 17:50:45 +00:00
Eitan Seri-Levi
d35c1cb363 fix tests 2026-05-22 19:31:48 +03:00
Eitan Seri-Levi
58c5b2c803 resolve merge conflicts 2026-05-22 18:15:37 +03:00
Eitan Seri-Levi
97c125505a fix tests 2026-05-22 18:03:41 +03:00
Eitan Seri-Levi
4a97fd47be MAXIMUM_QUEUED_DATA_COLUMNS 2026-05-22 16:29:45 +03:00
Eitan Seri-Levi
e66a5c30b7 Post gloas we cannot enforce that peers who have imported a block also have columns available 2026-05-22 16:15:11 +03:00
Eitan Seri-Levi
e775a63116 comments 2026-05-22 15:50:16 +03:00
Eitan Seri-Levi
b076e09876 Add tests 2026-05-22 15:31:09 +03:00
Eitan Seri-Levi
9f4e3f367a Reprocess queue for data columns referencing unknown blocks 2026-05-22 14:44:05 +03:00
Eitan Seri-Levi
5a34031b84 fix tests 2026-05-22 14:08:31 +03:00
Eitan Seri-Levi
4760df5e6b use correct state 2026-05-22 13:23:59 +03:00
Eitan Seri-Levi
60abd4b5b9 Gloas alpha spec 8 (#9315)
https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.8


  


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

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-05-22 06:21:20 +00:00
Daniel Knopik
b5d5644eeb Add getBlobsV3 to LIGHTHOUSE_CAPABILITIES (#9330)
Forgot to add `ENGINE_GET_BLOBS_V3` to `LIGHTHOUSE_CAPABILITIES`.


  Add `ENGINE_GET_BLOBS_V3` to `LIGHTHOUSE_CAPABILITIES`.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-05-21 20:00:16 +00:00
Lion - dapplion
1caaa10fa8 Drop unused EthSpec generic from Stores (#9281)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-05-21 08:35:35 +00:00
Eitan Seri-Levi
5c94e35291 Merge branch 'unstable' into gloas-proposer-preferences-duty-fix 2026-05-21 00:10:18 -07:00
Daniel Knopik
a9637c1650 Partial columns cleanup (#9321)
#8314 left a few ugly potentially panicking location behind - all of them believed to be unreachable, but this PR fixes them regardless for good hygiene.


  Update to `ethereum_ssz 0.10.4` for two new helpers: `not_inplace` and `clone_zeroed`.

Remove remaining `expect` and `todo!` in favour of these helpers and one new fallible (but practically infallible) method.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-05-21 03:25:02 +00:00
Lion - dapplion
2c76ee5b6b Gloas lookup sync boilerplate (#9322)
Implements the boring boilerplate to send envelopes by root requests and process them. Pre-step to

- https://github.com/sigp/lighthouse/pull/9155


  


Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-05-20 12:56:49 +00:00
Lion - dapplion
398efc3acc Use dedicated cache for HTTP API route (#9318)
- PR https://github.com/sigp/lighthouse/pull/9305 wants to store PTCs in the committee cache.

BUT the http API route wants to use the committee cache and insert historical committees (i.e. given state at epoch 1000, compute and store the committee for epoch 900).

If we want a single cache to serve both use cases we need to:
- Have entries in the committee cache that have no PTC: Makes reading PTCs from the cache not deterministic
- Compute historical PTC: A bunch of complicated code that's useless

Instead we can add a separate cache for the API, very simple one, that caches committees only. And have the one in the beacon chain compute and cache PTCs always.

### Performance impact

Slightly additional memory cost for users of the `beacon/states/committees` route. Caching is almost equivalent, except for queries of recent committees that may already exist in the beacon chain's committee cache.

### AI disclousure

This PR was written by hand 90%. Claude fixed some warp type issues


  


Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-05-19 05:12:17 +00:00
Michael Sproul
fd0852a8e5 Remove outdated SPRP hint (#9312)
While working on this code in another branch I noticed we had this messy, complicated and incorrect code about SPRP (slots-per-restore-point), which is no longer a relevant concept since the introduction of hot state diffs.

In the name of simplicity, I've removed any kind of hinting here in favour of a simple out of bounds error. The benefit of adding complex hinting code (which is not tested) to such a function is not worth it IMO. Users will work it out (or ask) if we just tell them their request is out of bounds.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-05-19 01:35:31 +00:00
Eitan Seri- Levi
3bddfff153 Fix race condition betrween duties service and proposer preferences 2026-05-16 14:09:25 -07:00
Eitan Seri- Levi
a5bd456a58 proposer preferences SSE event 2026-05-16 08:08:30 -07:00
Daniel Knopik
1a68631180 Gloas payload cache (#9209)
In Gloas, beacon blocks are imported into fork choice immediately - the payload envelope and data columns arrive
separately. KZG commitments moved from the column sidecar into the execution payload bid, so the existing
`DataAvailabilityChecker` (which assumes block and data are coupled) can't be used for Gloas.


  * Introduced `PendingPayloadCache` to keep track of payload and data columns per block root.
* Added gossip column verification
* Added support for Gloas data column reconstruction
* Payload envelope verification simplified: removed `MaybeAvailableEnvelope`, `ExecutedEnvelope`, `EnvelopeImportData`

Not yet implemented (tracked with TODOs):
- Proper lookup sync for Gloas columns arriving before blocks
- Partial column merging for Gloas
- Moving `load_gloas_payload_bid` disk reads off the async runtime
- Backfill/range sync for Gloas

Based on @eserilev's PR and work in progress. See also #9202 for verification.


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

Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

Co-Authored-By: Daniel Knopik <daniel@dknopik.de>

Co-Authored-By: Daniel Knopik <107140945+dknopik@users.noreply.github.com>

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

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-05-13 07:03:34 +00:00
Eitan Seri-Levi
9101ddc69d ignore-ws-check flag doesnt allow the node to start outside the weak subjectivity period (#9290)
Using the `ignore-ws-check` doesn't actually let you start up a node thats outside the weak subjectivity period


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-05-13 04:20:08 +00:00
hopinheimer
757873200b Fix stale beacon_state_root in test helpers (#9289)
Test helpers `add_attested_block_at_slot` and `add_attested_blocks_at_slot` accepted `state_root` argument which was computed before applying the block.


  


Co-Authored-By: hopinheimer <knmanas6@gmail.com>
2026-05-12 06:24:18 +00:00
Eitan Seri-Levi
f968c7e5bb Dont penalize payload envelope peers after gossip verification (#9283)
We got in a little bit of trouble in devnet-3. After gossip verifying an envelope and before importing it, we got the following error

```
May 07 08:04:24.383 WARN  Execution payload envelope rejected           reason: "EnvelopeProcessingError(WithdrawalsRootMismatch { state: 0x852d38aaecc9f4e2e309919f74020c7bbcf050fea4a20edf3304f171e44ee9d5, payload:
```

The envelope had already passed gossip verification checks and was correctly propagated to the network, we should not penalize peers for doing this. This caused our node to isolate itself from the rest of the network. This PR removes peer penalties for any envelope that passes gossip validation


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-05-12 01:59:54 +00:00
Shane K Moore
2208e17937 chore: remove builder_index from produce_block_v4 (#9267)
Part of #8828 for the stateful path and helps align gloas `produceBlockV4` with beacon-APIs [PR](https://github.com/ethereum/beacon-APIs/pull/580)


  - Plumb `include_payload` query through the handler. Ignored for now since stateless mode isn't wired up yet
- Add `execution_payload_included` metadata field + `Eth-Execution-Payload-Included` header per spec. Both `false` until stateless lands
- Drop the `{builder_index}` segment from the envelope GET URL since no longer included in spec


Co-Authored-By: shane-moore <skm1790@gmail.com>

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-05-11 15:27:41 +00:00
chonghe
1b921a64e6 Fix execution integration test CI failure (#9277)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-05-08 08:12:38 +00:00
Lion - dapplion
7148bfcdd1 Implement beacon_blocks_by_head (#9237)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-05-07 02:41:01 +00:00
Lion - dapplion
31e5f308c3 Generalise reconstruct_historic_states for ranged replay (#9222)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-05-06 02:25:46 +00:00
Mac L
3351db1ba8 Remove TestRandom (#9006)
We  have a legacy `TestRandom` trait which generates random types for testing and fuzzing.
This function overlaps with `arbitrary` which is used very commonly in the ecosystem.


  Remove `TestRandom` and generate random type instances using `Arbitrary`.


Co-Authored-By: Mac L <mjladson@pm.me>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-05-05 06:35:57 +00:00
Pawan Dhananjay
4b314d8e79 Remove libssl dependency for cargo udeps (#9263)
N/A


  libssl download seems to be failing on [CI](https://github.com/sigp/lighthouse/actions/runs/25346412432/job/74316275231?pr=9126).
This was originally added to unblock CI in https://github.com/sigp/lighthouse/pull/6777, but we may not need this anymore.


Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>
2026-05-05 02:05:06 +00:00