Commit Graph

7489 Commits

Author SHA1 Message Date
Michael Sproul
bc7864b076 Split out InvalidPayloadAttestation error 2026-04-02 11:44:02 +11:00
Michael Sproul
69d7250971 Tidy up payload attestation verification 2026-04-02 11:27:55 +11:00
Michael Sproul
958c8cad39 Rename fork choice test def for clarity 2026-04-02 11:05:33 +11:00
Michael Sproul
1c5a7bed74 Clarify name of on_valid_payload_envelope_received 2026-04-02 10:56:34 +11:00
Michael Sproul
5f8605f67e Disable optimistic sync for Gloas 2026-04-02 10:40:23 +11:00
Michael Sproul
5aae563d84 Remove proposer boost weight during upgrade 2026-04-01 17:59:45 +11:00
Michael Sproul
f5b2445d09 Remove stupid GLOAS comments 2026-04-01 16:46:02 +11:00
Michael Sproul
ddff03d26f Store parent_payload_hash in ProtoNode 2026-04-01 16:42:49 +11:00
Michael Sproul
3cf19e724f Fix Gloas check in on_block 2026-04-01 15:47:10 +11:00
Michael Sproul
ab023a7231 Fix the VoteTrackerV28 definition 2026-04-01 14:54:18 +11:00
Michael Sproul
4e44cec249 Fix markdown lint 2026-04-01 13:45:19 +11:00
Michael Sproul
edae39cc29 Fix fork transition case 2026-04-01 13:29:48 +11:00
Michael Sproul
afb1f0ae2d Fix VoteTracker decoding 2026-04-01 12:50:55 +11:00
Michael Sproul
9ef73d0af0 Add new cross-boundary test 2026-04-01 12:25:22 +11:00
Michael Sproul
ad0f3cf89b Use None for post-Gloas payload hashes pre-Gloas 2026-04-01 12:10:11 +11:00
Michael Sproul
f6f9eae4ef More cleanup 2026-04-01 12:04:32 +11:00
Michael Sproul
51e78fd157 Fix queued attestation decoding from disk 2026-04-01 11:51:03 +11:00
Michael Sproul
4684d972e0 Remove TOCTOU early return 2026-04-01 11:31:51 +11:00
Michael Sproul
bc6cf0f882 Remove payload attestation queueing and more cleanups 2026-04-01 11:17:33 +11:00
Michael Sproul
1ee2ce4258 Fix schema migrations 2026-04-01 10:38:03 +11:00
dapplion
993cecee83 Clear best_child/best_descendant during V28->V29 conversion 2026-03-31 15:22:31 -05:00
Eitan Seri-Levi
e1cabb8d67 Merge branch 'unstable' into gloas-walk-always 2026-04-01 02:24:42 +09:00
Daniel Knopik
7fe9da0043 Add Gloas SSE event boilerplate (#9053)
Implement boilerplate for new SSE events as specified in
- https://github.com/ethereum/beacon-APIs/pull/588

While that one is not merged yet, I believe the SSE events might be utilized in Dora already.


  Implement the boilerplate, i.e. subscription tracking and publish queues. A PR to implement to fully implement already implementable events will follow.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-03-31 10:42:51 -05:00
Michael Sproul
cd60ea80bb Update to spec v1.7.0-alpha.4 (#9046)
Update our consensus code to v1.7.0-alpha.4


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-31 10:42:51 -05:00
Lion - dapplion
6f480e499e Add range sync tests (#8989)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-03-31 10:42:51 -05:00
Jimmy Chen
6044d79ad9 Fix local testnet Tempo and Prometheus/Grafana config (#9054)
- Pin Tempo image to `grafana/tempo:2.10.3` — `grafana/tempo:latest` now resolves to an unreleased 3.0 build that removed the `compactor` config field, causing startup failure
- Replace deprecated `prometheus_grafana` additional service with separate `prometheus` + `grafana` services


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-03-31 10:42:51 -05:00
Michael Sproul
a1534bbfb3 Check ChainSpec consistency with upstream config.yaml (#9008)
Closes:

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


  - Commit `config.yaml` for minimal and mainnet to `consensus/types/configs`. For now we omit any auto-downloading logic, to avoid the hassles of dealing with Github rate limits etc on CI. Unfortunately these files are NOT bundled inside the spec tests.
- Fix the values of `min_builder_withdrawability_delay` for minimal and mainnet. These discrepancies aren't caught by the current spec tests, because the spec tests are missing data: https://github.com/ethereum/consensus-specs/pull/5005. Will be fixed in the next release/when we update to nightly.
- Fix the blob schedule for `minimal`, which should be empty, NOT inherited from mainnet.
- Keep `SECONDS_PER_SLOT` for now because the Kurtosis tests fail upon their complete removal. We will be able to completely remove `SECONDS_PER_SLOT` soon.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-31 10:42:51 -05:00
Daniel Knopik
037b263f17 Emit SSE: execution_payload_gossip (#9063)
Emit `execution_payload_gossip` on successful gossip verification of an execution payload. This is done as last step inside the verification function.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-03-31 15:16:40 +00:00
Daniel Knopik
37a948cf32 Never use MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS for networks that started with Fulu enabled (#8731)
Lighthouse uses `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` for blob **and column retention** instead of `MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS` if Fulu activated less than `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` epochs ago - also if Fulu activated at genesis. This causes unexpected behaviour, as there are no blob sidecars to be stored or requested in such networks.


  ~~Add a special case to avoid that logic in post-Fulu genesis networks (`fulu_fork_epoch == 0`)~~

If the blob retention period would start in the fulu fork epoch, use the `min_epochs_for_data_column_sidecars_requests`, as there are no blobs to retain in Fulu.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-03-31 11:54:10 +00:00
Eitan Seri-Levi
f6f37652a8 Gloas get payload envelope beacon API (#9038)
Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-31 10:44:12 +00:00
Eitan Seri- Levi
9f08f48880 import envelope status into fc 2026-03-30 23:56:51 -07:00
Daniel Knopik
2b224c59f7 Add Gloas SSE event boilerplate (#9053)
Implement boilerplate for new SSE events as specified in
- https://github.com/ethereum/beacon-APIs/pull/588

While that one is not merged yet, I believe the SSE events might be utilized in Dora already.


  Implement the boilerplate, i.e. subscription tracking and publish queues. A PR to implement to fully implement already implementable events will follow.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
2026-03-31 06:16:34 +00:00
Michael Sproul
d92efc1e0f Update to spec v1.7.0-alpha.4 (#9046)
Update our consensus code to v1.7.0-alpha.4


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-31 05:59:36 +00:00
dapplion
5353710e0a Fix compilation, clear best_child/best_descendant in migration
- Fix leaf detection in heads_descended_from_finalization (parent()
  method call, map away enumerate index)
- Clear best_child and best_descendant in v28->v29 migration (no
  longer used, replaced by virtual tree walk)
- Migration now rewrites fork choice data instead of being a no-op
2026-03-31 00:51:19 -05:00
Lion - dapplion
bc5d8c9f90 Add range sync tests (#8989)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-03-31 05:07:22 +00:00
Michael Sproul
b6728c2030 Start removing more best_child/best_descend 2026-03-31 16:02:19 +11:00
Michael Sproul
517d16f2fd Revert parent->child optimisation 2026-03-31 15:47:50 +11:00
Michael Sproul
3bc1d882f2 Clarify load_parent genesis behaviour 2026-03-31 15:36:14 +11:00
Michael Sproul
e1dcd9e692 Update schema test 2026-03-31 14:17:37 +11:00
Michael Sproul
5c6e171a22 Add schema v29 migration 2026-03-31 14:05:39 +11:00
Michael Sproul
419645cc96 Update CURRENT_SCHEMA_VERSION to 29 2026-03-31 13:25:00 +11:00
Jimmy Chen
2fb69f84c0 Fix local testnet Tempo and Prometheus/Grafana config (#9054)
- Pin Tempo image to `grafana/tempo:2.10.3` — `grafana/tempo:latest` now resolves to an unreleased 3.0 build that removed the `compactor` config field, causing startup failure
- Replace deprecated `prometheus_grafana` additional service with separate `prometheus` + `grafana` services


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-03-31 00:19:18 +00:00
Michael Sproul
991dc92d8f Check ChainSpec consistency with upstream config.yaml (#9008)
Closes:

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


  - Commit `config.yaml` for minimal and mainnet to `consensus/types/configs`. For now we omit any auto-downloading logic, to avoid the hassles of dealing with Github rate limits etc on CI. Unfortunately these files are NOT bundled inside the spec tests.
- Fix the values of `min_builder_withdrawability_delay` for minimal and mainnet. These discrepancies aren't caught by the current spec tests, because the spec tests are missing data: https://github.com/ethereum/consensus-specs/pull/5005. Will be fixed in the next release/when we update to nightly.
- Fix the blob schedule for `minimal`, which should be empty, NOT inherited from mainnet.
- Keep `SECONDS_PER_SLOT` for now because the Kurtosis tests fail upon their complete removal. We will be able to completely remove `SECONDS_PER_SLOT` soon.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-30 06:43:57 +00:00
Michael Sproul
4c3fd70dbf Merge remote-tracking branch 'origin/unstable' into gloas-walk-always 2026-03-30 16:10:35 +11:00
Eitan Seri-Levi
5efaf85c90 Gloas new payload v5 (#9037)
Use the new payload v5 engine api for gloas. This is required for ePBS devnets

In a separate PR we can implement the full engine api spec changes for glamsterdam
https://github.com/ethereum/execution-apis/blob/main/src/engine/amsterdam.md


  


Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>
2026-03-30 04:52:08 +00:00
Mac L
a5e748f808 Use yaml_serde in place of deprecated serde_yaml (#9040)
`serde_yaml` is now deprecated. The API-compatible `yaml_serde` should be used instead.


  Replace `serde_yaml` with `yaml_serde`. This is purely mechanical as the API is 1-to-1.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-29 18:39:20 +00:00
Michael Sproul
e1a2cfe202 Merge remote-tracking branch 'origin/stable' into unstable 2026-03-26 16:51:14 +11:00
Michael Sproul
12f5ab04f3 Load the state corresponding to head payload status yay 2026-03-26 16:03:55 +11:00
dapplion
ac5357532b Source head_payload_status from get_head, not hardcoded Pending
Thread head_payload_status from get_head() return through to
CanonicalHead::new(). In restore_from_store, call get_head() on the
loaded fork choice to get the correct status. Removes Pending defaults.
2026-03-25 23:19:54 -05:00
dapplion
ea1e99b2f7 Add TODO for head_payload_status initialization (re: #8998) 2026-03-25 23:09:11 -05:00