Commit Graph

3889 Commits

Author SHA1 Message Date
Eitan Seri-Levi
f5e4a66d89 More cleanup 2026-05-09 19:37:49 +03:00
Eitan Seri-Levi
03453a92d6 update 2026-05-09 19:12:55 +03:00
Eitan Seri-Levi
1b2cf3ba01 Many fixes 2026-05-09 18:58:08 +03:00
Devnet Bot
2356bdd256 chore: cargo fmt + fix clippy warnings 2026-05-06 16:08:52 +00:00
Devnet Bot
39b6f58bc2 feat(focil): retry envelope on transient EL errors
When engine_newPayloadV6 fails with a transient error (e.g. Besu's
ConcurrentModificationException), queue the envelope for retry instead
of permanently rejecting it. Matches Lodestar's behavior of retrying
on the next BlockImported event.

- Add RetryEnvelope variant to ReprocessQueueMessage
- On BlockImported, immediately dispatch any pending retry envelopes
- Fallback timeout of 1 slot in case no block arrives
- Max 3 retries per envelope to prevent infinite loops
- Only retry non-penalizing EL errors (transient failures)
2026-05-06 14:29:10 +00:00
Devnet Bot
732ab9628f fix(focil): use fork choice head_hash for IL production
In ePBS/Gloas, the execution payload is delivered via envelope, not
embedded in the beacon block. produce_inclusion_list was trying to
extract parent_hash from the beacon block's execution payload (which
doesn't exist), causing every IL fetch to fail.

Use cached_head.head_hash() which correctly tracks the execution
block hash through fork choice, including envelope imports.
2026-05-06 13:16:32 +00:00
Devnet Bot
732da6c8d6 fix(focil): skip engine_isInclusionListSatisfiedV1 call
Besu does not implement this method. Lodestar handles IL satisfaction
checking via the il_transactions param in newPayloadV6 instead of a
separate engine call. Skip the call and assume satisfied for now.
2026-05-06 13:16:32 +00:00
Devnet Bot
eb36f0edc2 fix(focil): engine API interop fixes for Besu
- Force engine_newPayloadV6 for Heze blocks (Besu supports V6 but
  capability detection was falling through to broken V5 path)
- Pass parentHash to engine_getInclusionListV1 (was sending empty
  params, Besu/Lodestar expect the parent block hash)
2026-05-06 13:16:32 +00:00
Devnet Bot
0aa7e43e85 wip: early envelope reprocessing and is_heze_fork plumbing 2026-05-06 13:16:05 +00:00
Eitan Seri-Levi
6a9b013a26 Focil stuff 2026-05-04 13:40:12 +03:00
Eitan Seri-Levi
4caa4a1c55 gloas genesis fix 2026-05-01 13:19:01 +02:00
Eitan Seri-Levi
fa87ff23a9 fix payload v5 2026-05-01 10:31:07 +02:00
Josh King
c32b89c902 fix: tighten genesis block fallback to match empty body root only 2026-04-30 17:27:37 +02:00
Josh King
78f22be80c fix: fallback to empty genesis block for external genesis states 2026-04-30 17:12:28 +02:00
Eitan Seri-Levi
313e2d946c Fmt 2026-04-30 16:22:17 +02:00
Eitan Seri-Levi
e75eb4758c fix claude dummy 2026-04-30 16:08:10 +02:00
Eitan Seri-Levi
4e3a3c1d7e \engine_getInclusionListV1 fix 2026-04-30 15:40:00 +02:00
Eitan Seri-Levi
49fba11d8d is_inclusion_list_satisfied logic 2026-04-30 15:24:49 +02:00
Eitan Seri-Levi
c9c5a9e7ab should_extend_payload fix 2026-04-30 15:14:02 +02:00
Eitan Seri-Levi
2585096de6 FMT 2026-04-30 15:03:42 +02:00
Eitan Seri-Levi
79c855a1c4 linting 2026-04-30 15:02:35 +02:00
Eitan Seri-Levi
7918dc2a0d Constants 2026-04-30 13:49:26 +02:00
Eitan Seri-Levi
12d31dbfbf heze block prod 2026-04-30 13:10:11 +02:00
Eitan Seri-Levi
0fe75382da fmt 2026-04-30 13:05:30 +02:00
Eitan Seri-Levi
b4ac2eefda il inclusion list inclusive 2026-04-30 12:53:51 +02:00
hopinheimer
5360e76696 fix genesis_block init in tests 2026-04-30 12:52:17 +02:00
Eitan Seri-Levi
8559bf0e10 update il cache with is timely 2026-04-30 12:42:34 +02:00
Eitan Seri-Levi
f567674871 Fork choice changes 2026-04-30 12:03:59 +02:00
Eitan Seri-Levi
9a5feb67c6 Engine api changes 2026-04-30 11:51:23 +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
71fb4c7346 Add new field 2026-04-30 11:20:50 +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
Eitan Seri-Levi
87dee4bd23 Merge branch 'unstable' of https://github.com/sigp/lighthouse into electra-focil-branch 2026-04-30 10:05:37 +02:00
Eitan Seri-Levi
5d40dd6196 Merge remote-tracking branch, resolve conflicts preserving FOCIL/Heze logic
- test_utils: Heze branch uses DataColumnSidecarGloas (shared format), keeps
  heze_enabled() check ahead of gloas_enabled() so Heze blocks are handled first
- genesis.rs: Keep both Gloas and Heze bid initialisation in genesis_block()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:04:04 +02:00
Eitan Seri-Levi
027fdc1a68 Merge conflicts 2026-04-30 09:48:04 +02:00
Eitan Seri-Levi
af196a5558 Merge conflicts 2026-04-30 09:27:49 +02:00
Eitan Seri-Levi
c57a49b3af Heze fork 2026-04-30 09:23:00 +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
Eitan Seri-Levi
bab71429f8 resolve merge conflicts 2026-04-30 01:51:26 +02:00
Eitan Seri-Levi
a2dcd2d6de fix 2026-04-29 22:38:13 +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
Eitan Seri-Levi
a3c91f6ecb FMT 2026-04-29 17:22:13 +02:00
Michael Sproul
f406e9c3fb Update proposer boost calculation (#9215)
Closes:

- https://github.com/sigp/lighthouse/issues/8689


  - Calculate the proposer index on the canonical chain (from canonical head) at `slot` and plumb it through to fork choice so it can be used to determine whether or not to apply the proposer boost. We use the proposer cache to handle state advances and avoid duplicate work.
- Update our FC tests to use `block.message().proposer_index()` (always pass), we are not attempting to test this feature in those tests. The EF tests use the correct canonical proposer idnex via `on_block`, except for invalid blocks which just auto-pass this check (these blocks get rejected by other checks in `on_block` anyway).


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-04-29 12:19:44 +00:00
Lion - dapplion
0e427ab77b Add Gloas bid inclusion (#9221)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-04-29 12:02:12 +00:00
jking-aus
16132a3694 Spec v1.7.0-alpha.6 and Gloas genesis (#9190)
Co-Authored-By: Josh King <josh@sigmaprime.io>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-04-29 08:23:24 +00:00
Eitan Seri-Levi
e8c865dcc6 Gossip reprocessed payload envelopes that are timely (#9210)
Payloads from the reprocess queue should be gossiped after import if they are still timely. In devnets this happens frequently since there are many cases where the envelope arrives before the block


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-04-28 21:50:07 +00:00
Eitan Seri-Levi
6258eadc91 Gloas publish data columns during local block building (#9182)
Make sure we are publishing columns during local block production


  


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

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-04-28 13:19:47 +00:00
Eitan Seri-Levi
4415cf0506 Gloas filter conflicting voluntary exits (#9183)
Parent envelope execution requests can invalidate voluntary exits. We should filter out any conflicting voluntary exits during block production to avoid triggering failures.

Spec change: https://github.com/ethereum/consensus-specs/pull/5176


  


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

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-04-28 12:45:03 +00:00
Jimmy Chen
d8790f6677 Add payload attestation to op pool and pack into block (#9180)
Store gossip-verified `PayloadAttestationMessage`s in the operation pool and pack them into the block body at during block production.

Built on top of #9145.


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-04-28 10:49:28 +00:00