Commit Graph

7591 Commits

Author SHA1 Message Date
Eitan Seri-Levi
9494c0e5b5 Resolve merge conflicts 2026-06-25 14:59:08 +03:00
ethDreamer
a4c4cccf04 Refactor Custody Context Availability Checks (#9515)
Co-Authored-By: Mark Mackey <mark@sigmaprime.io>
2026-06-25 02:53:43 +00:00
hopinheimer
99fb99c941 Fix transient bug in dequeue_attestation and optimization (#9524)
`dequeue_attestations` released votes by splitting the queue at the first entry with `slot >= current_slot`, which assumes the queue is sorted by slot. It isn't: `on_attestation` pushes attestations in arrival order and never sorts. When a future-slot vote sits ahead of a vote that is already due, the split happens at the future-slot vote and the due vote stays stuck behind it and is never applied to fork choice, even after its slot is in the past.


  The PR current uses a naive solution to solve the bug and also adds regression tests to exercise the bug. There are other competing solutions which can be used which also optimize this path at the same time.

https://github.com/sigp/lighthouse/pull/8378

https://github.com/sigp/lighthouse/pull/8378#discussion_r2543322106


Co-Authored-By: hopinheimer <knmanas6@gmail.com>

Co-Authored-By: hopinheimer <48147533+hopinheimer@users.noreply.github.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-06-25 02:53:38 +00:00
Michael Sproul
af90f6a496 Remove redundant is_gloas checks in reorg tests (#9529)
Remove some `is_gloas` checks that are unnecessary in the `gloas_reorg_tests.rs`.

I found myself wanting to make this change while tweaking these tests in another PR. Figured it makes sense as a simple standalone PR.


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

Co-Authored-By: hopinheimer <48147533+hopinheimer@users.noreply.github.com>
2026-06-25 01:15:13 +00:00
Lion - dapplion
dba5a8e268 Fix peerless lookup getting stuck while awaiting download (#9516)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>
2026-06-24 17:28:25 +00:00
Lion - dapplion
5e54cfbf86 Remove seen_timestamp tracking from sync (#9454)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>
2026-06-23 18:29:39 +00:00
Eitan Seri-Levi
ff927ff609 Merge remote-tracking branch 'origin/gloas-head-block-number' into glamsterdam-devnet-6 2026-06-23 15:11:20 +03:00
Eitan Seri-Levi
c4c6252a29 Merge branch 'alpha-spec-11' into glamsterdam-devnet-6 2026-06-23 15:10:35 +03:00
Eitan Seri-Levi
bb57e02803 Remove comment 2026-06-23 15:09:40 +03:00
Eitan Seri-Levi
caabd0c771 Fix json_strucutres for gloas variant and add tests 2026-06-23 13:25:53 +03:00
Eitan Seri-Levi
1960447cd7 Merge branch 'alpha-spec-11' into glamsterdam-devnet-6 2026-06-23 12:15:09 +03:00
Eitan Seri-Levi
524c82a295 Clean up useless fn 2026-06-23 12:14:05 +03:00
Eitan Seri-Levi
e8287758d5 Revert comment removal 2026-06-23 11:40:50 +03:00
Eitan Seri-Levi
d685ba1e4a Fix execution payload request block prod code path 2026-06-23 11:38:35 +03:00
Michael Sproul
84407b3033 Update payload verif tests with correct prev_randao 2026-06-23 12:17:46 +10:00
Michael Sproul
245496b30a Merge remote-tracking branch 'origin/unstable' into alpha-spec-11 2026-06-23 10:58:17 +10:00
Lion - dapplion
e7c027cfa8 Run Gloas sync tests instead of skipping them (#9446)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>
2026-06-23 00:21:25 +00:00
Mac L
34e14fd1bc Forbid removed execution_payload_envelope.rs file (#9506)
I noticed that `beacon_node/http_api/src/beacon/execution_payload_envelope.rs` was recently removed but not added to the forbidden-files.txt.


  Add the removed file to the forbidden list to ensure it isn't accidentally re-added by a merge or rebase.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-06-23 00:09:31 +00:00
Eitan Seri-Levi
8c4b21c3db Fix ci issues (#9514)
- Remove deprecated geth flag
- Remove duplicate entries for crate `syn`


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-06-23 00:06:26 +00:00
Eitan Seri-Levi
8e61da839a Merge branch 'alpha-spec-11' into glamsterdam-devnet-6 2026-06-22 15:50:32 +03:00
Eitan Seri-Levi
08adaea4fb Merge remote-tracking branch 'origin/gloas-fix-proposer-pref-gossip-verification' into glamsterdam-devnet-6 2026-06-22 15:37:53 +03:00
Eitan Seri-Levi
23ad7711a3 Add new ef tests 2026-06-22 15:25:27 +03:00
Eitan Seri-Levi
8dd3d00480 Merge branch 'gloas-fix-proposer-pref-gossip-verification' into glamsterdam-devnet-6 2026-06-22 14:55:04 +03:00
Eitan Seri-Levi
cf8e930abe add type name generic for new gloas type 2026-06-22 14:53:09 +03:00
Eitan Seri-Levi
a08a7cfe61 Merge branch 'unstable' of https://github.com/sigp/lighthouse into alpha-spec-11 2026-06-22 14:37:21 +03:00
Eitan Seri-Levi
ccf0fb9078 lint fixes 2026-06-22 14:09:29 +03:00
Eitan Seri-Levi
e02ba146c9 Fix on block w/ missing payload envelope 2026-06-22 13:30:43 +03:00
Michael Sproul
99a18f9416 Merge branch 'stable' into unstable 2026-06-22 20:04:23 +10:00
Eitan Seri-Levi
f4e9426a0c Merge branch 'unstable' of https://github.com/sigp/lighthouse into unstable 2026-06-22 12:55:45 +03:00
Eitan Seri-Levi
edf34c5575 Builder deposit requests 2026-06-22 12:55:40 +03:00
Michael Sproul
120c3c6dac Release v8.2.0 v8.2.0 2026-06-22 19:52:53 +10:00
Michael Sproul
e9f55a5e51 Update deps 2026-06-22 19:52:47 +10:00
Lion - dapplion
b05badb5f2 Gate sync peer selection on per-protocol concurrent-request limit (#9456)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-06-21 16:34:29 +00:00
Eitan Seri-Levi
d610407820 builder payments w/ slashed validators fix 2026-06-21 18:05:29 +03:00
Eitan Seri-Levi
affdfb0d13 Payload builder version 2026-06-21 17:57:16 +03:00
Eitan Seri-Levi
e35a96cc1c Fix builder top up bug 2026-06-21 17:36:47 +03:00
Eitan Seri-Levi
be705c8409 should_extend_payload and gossip bid verification changes 2026-06-21 17:29:59 +03:00
Eitan Seri-Levi
10568b139b Add proposer preferences SSE event (#9308)
This is needed to connect to buildoor (Kurtosis package, acts as a trustless builder)


  


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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-06-20 19:41:34 +00:00
Eitan Seri-Levi
477c25db9f Fix race condition between validator duties service and proposer preferences (#9309)
The proposer preferences service was attempting to publish preferences at the start of each epoch. This caused it to race with the validator duties service, it wouldn't calculate validator duties in time for the proposer preference service.

This PR first updates the validator duties service to calculate proposer duties for the current epoch and the next epoch. After Fulu we have the ability to look ahead one epoch for proposer duties, but we never updated the vc to leverage this feature.

This PR also updates the proposer preferences service to fire at every slot. We have an `(Epoch, DependentRoot)` map that prevents us from publishing the same preferences twice.

The changes here should prevent the race condition between the two services and make the proposer preferences service more robust in general.


  


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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-06-20 19:41:30 +00:00
Daniel Knopik
560f90611e Fix and improve handling of empty columns after getBlobs response (#9361)
This PR fixes two issues:

1. This condition is inverted: dfb259171a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs (L1507-L1508)
We are supposed to filter out incomplete columns when we DON'T have local blobs yet!
2. When the EL returns no blobs, we never store a partial in the assembler, and this code fails to publish our need to the network, as no partials are returned: dfb259171a/beacon_node/network/src/network_beacon_processor/mod.rs (L1038-L1050)


  The simple fix for 1 would be to invert the condition, but we can improve the flow here: Instead of not publishing anything, we can publish what we got, but not request anything. This ties into the fix for 2: After get blobs completes, we not only publish anything in the partial assembler, but also for every missing custody column in there, publish an empty column and a request for all cells.

In particular:
- When sending a partial message to `network`, allow specifying a request bitmap instead of hardcoding an all-ones bitmap.
- For clarity and to prepare for Gloas integration, add a `PubsubPartialMessage` enum with a `DataColumnFulu` variant.
- On republishing after merging a gossip column: always publish, but only request cells if local blobs are known or get blobs is disabled. This also prepares us to request only *some* cells, e.g. in cases where we are aware of the blobs that the EL is going to send us, e.g. via `engine_hasBlobs`.
- Move guards in `fetch_engine_blobs_and_publish` to ensure everything works fine if there are no blobs or if get_blobs is disabled.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-06-19 00:50:24 +00:00
hopinheimer
ddfc265123 Enable late re-org and re-org interactive tests (#9405)
https://github.com/sigp/lighthouse/issues/8959

WIP still working on adding more re-org tests and refactoring existing.


  


Co-Authored-By: hopinheimer <knmanas6@gmail.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-06-18 08:57:13 +00:00
Michael Sproul
446f5b5c16 Update DB docs for v8.2.0/schema v29 (#9489)
- Move info about pre-8.0 schema migrations to the historical migrations section.
- Include info about v8.1.x and v8.2.x.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-06-18 02:37:05 +00:00
Eitan Seri-Levi
d2ccae1715 Refactor payload attestation service (#9492)
Refactors the payload attestation service

- Returns a `Result`. we need this for #9434 so we can keep track if we've succeeded with producing payload attestation earlier than the deadline
- Separates getting payload attestation data and signing + publishing. This mimics what we do in attestation service and also is needed for #9434 to surface the error while still keeping the same spawning mechanism.  In #9434 we want to broadcast payload attestations early if we've already seen an avail envelope. If the SSE event fires, but for some reason getting the payload attestation data from the BN fails, we still want to retry at the deadline. If signing + publishing fails we wont retry at the deadline (similar to the attestation service).


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-06-17 15:06:19 +00:00
Eitan Seri-Levi
69cb097ca8 Resolve merge conflicts 2026-06-17 16:55:37 +03:00
Eitan Seri-Levi
4eab4f1be3 erge branch 'gloas-head-block-number' of https://github.com/eserilev/lighthouse into gloas-head-block-number 2026-06-17 16:50:35 +03:00
Michael Sproul
716528f44e Correct unrealized justification for blocks with slashings (#9471)
Fix a bug in fork choice whereby the unrealized justified and finalized checkpoints from a parent block would be incorrectly carried over to a child block in the same epoch. The documented optimisation in `fork_choice.rs` was wrong because it failed to account for slashings.

This bug is not considered to be sensitive due to the difficulty of triggering it, and the low payoff for doing so (fleeting divergence).


  Keep the optimisation, updating it to correctly skip reusing the parent checkpoints when slashings are present.

A more minimal alternative would be to scrap the optimisation altogether (always compute the checkpoints), however this would come with a minor performance downside. I think the updated optimisation is simple enough to be worth retaining.

There are 3 regression tests added which confirm the correct behaviour. Temporarily setting `has_slashings` to `false` causes all 3 tests to fail.


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

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-06-17 13:40:07 +00:00
Lion - dapplion
a46620155b Gloas attestation payload reprocess (#9440)
Handle payload-present attestations before the payload is seen (gloas)

A gloas beacon_attestation with index == 1 claims a past block's payload is already present. If we haven't seen that block's payload envelope yet, we shouldn't reject it the envelope may just be in flight.

So instead we IGNORE it (new AttnError::UnknownPayloadEnvelope), ask sync to fetch the envelope, and park the attestation in the reprocess queue. When the envelope is imported, the parked attestations are released and  re-verified.

The envelope lookup itself is stubbed here and wired up in #9155 or a follow up PR


  


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

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-06-17 12:44:21 +00:00
chonghe
3bc9148e0e SSZ fallback to JSON in proposer_preferences (#9475)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-06-17 10:17:10 +00:00
Vansh Sahay
eb0da57044 fix(http_api): ignore committee_index in attestation data endpoint (#9437)
Co-Authored-By: Vansh Sahay <vansh.sahay1234@gmail.com>

Co-Authored-By: chonghe <44791194+chong-he@users.noreply.github.com>
2026-06-17 01:16:09 +00:00
Daniel Knopik
e8472b9d77 Remove --disable-partial-columns in favour of bool argument to --enable... (#9478)
Similar to https://github.com/sigp/lighthouse/pull/9476, partial columns is a feature expected to become the default soon, so instead of introducing a CLI option that will be removed again soon, consolidate into `--enable-partial-columns` which now takes a boolean argument.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-06-17 00:45:30 +00:00