Commit Graph

850 Commits

Author SHA1 Message Date
Eitan Seri- Levi
5567bf9339 Merge conlficts 2026-03-26 21:50:30 -07:00
Michael Sproul
e1a2cfe202 Merge remote-tracking branch 'origin/stable' into unstable 2026-03-26 16:51:14 +11:00
Lion - dapplion
91c25794fe Schedule Fulu fork for Gnosis mainnet (#9007)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-24 03:50:14 +00:00
Mac L
a965bfdf77 Remove lighthouse/analysis endpoints (#8968)
Some of our custom `lighthouse/analysis` endpoints will require maintenance for the Gloas hard fork. We have decided instead to remove those endpoints. We don't utilize them internally and they have pretty limited utility and so we feel they are not worth maintaining.


  Remove `lighthouse/analysis/attestation_performance` and `lighthouse/analysis/block_packing_efficiency` endpoints.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-18 01:24:58 +00:00
Mac L
4eecca6da7 Update /rewards endpoints to match spec (#8967)
I believe one of our rewards endpoints is slightly out of spec. We do not return the `finalized` status for `post_beacon_rewards_attestations`.
Additionally, the `eth2` client doesn't expect the correct wrapper types for some other endpoints.


  - Update `post_beacon_rewards_attestations` server implementation to match spec.
- Update all three client functions in `eth2` to the correct wrapper type.
- Add missing tests for `http_api` to detect any regressions.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-16 04:53:22 +00:00
chonghe
e1e97e6df0 Fix proposer lookahead endpoint JSON return type (#8970)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-03-12 01:11:37 +00:00
lystopad
a36b7f3ddb Schedule Fulu fork for Chiado testnet (#8954)
Co-Authored-By: Oleksandr Lystopad <oleksandr.lystopad@erigon.tech>
2026-03-12 00:03:05 +00:00
Romeo
906400ed34 Implement proposer lookahead endpoint (#8815)
closes #8809


  Implement GET /eth/v1/beacon/states/{state_id}/proposer_lookahead ([beacon-APIs#565](https://github.com/ethereum/beacon-APIs/pull/565)). Returns the proposer lookahead from Fulu+ states; 400 for pre-Fulu. Includes integration test.


Co-Authored-By: romeoscript <romeobourne211@gmail.com>

Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-03-10 13:36:58 +00:00
Michael Sproul
081229b748 Implement proposer duties v2 endpoint (#8918)
Fix the issue with the `proposer_duties` endpoint using the wrong dependent root post-Fulu by implementing the new v2 endpoint:

- https://github.com/ethereum/beacon-APIs/pull/563

We need to add this in time for Gloas, and then we can we can deprecate and remove v1.


  - Add a new API handler for the v2 endpoint
- Add client code in the `eth2` crate
- Update existing tests and add some new ones to confirm the different behaviour of v1 and v2

There's a bit of test duplication with v1, but this will be resolved once v1 and its tests are deleted.


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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>

Co-Authored-By: chonghe <44791194+chong-he@users.noreply.github.com>
2026-03-10 07:57:51 +00:00
Akihito Nakano
6a92761f44 Fix cargo-sort errors (#8945)
The `cargo-sort` job in CI is [failing](https://github.com/sigp/lighthouse/actions/runs/22781651620/job/66088700318?pr=8932) since [cargo-sort v2.1.1](https://github.com/DevinR528/cargo-sort/releases/tag/v2.1.1) has been released, which reports new errors for our Cargo.toml files.


  Ran `cargo-sort` formatter locally with the new version.


Co-Authored-By: ackintosh <sora.akatsuki@gmail.com>
2026-03-09 18:52:18 +11:00
chonghe
ac1db1d2e2 update cargo-sort (#8933)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-03-09 18:52:18 +11:00
Michael Sproul
537c2ba8b3 Remove /lighthouse/analysis/block_rewards APIs (#8935)
Mark pointed out that these APIs will require updates for Gloas, so I figured we may as well get rid of them. As far as I know, blockprint was the only use case and it is now defunct. The consensus block value is included in getBlock API responses, so there's no reason for VCs to use the `POST` API, and there is now a standard API for the rewards of canonical blocks. The SSE event was non-standard, and likely only used by blockprint as well.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-09 00:35:52 +00:00
Akihito Nakano
efe43f7699 Fix cargo-sort errors (#8945)
The `cargo-sort` job in CI is [failing](https://github.com/sigp/lighthouse/actions/runs/22781651620/job/66088700318?pr=8932) since [cargo-sort v2.1.1](https://github.com/DevinR528/cargo-sort/releases/tag/v2.1.1) has been released, which reports new errors for our Cargo.toml files.


  Ran `cargo-sort` formatter locally with the new version.


Co-Authored-By: ackintosh <sora.akatsuki@gmail.com>
2026-03-06 23:09:33 +00:00
Mac L
dbfb6fd923 Remove arbitrary-fuzz (#8936)
We have duplicated features which enable `arbitrary` throughout the codebase. These are `arbitrary` and `arbitrary-fuzz`. I think historically these were supposed to be distinct however in practice these function identically and so we can unify them into a single feature to avoid confusion.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-06 23:09:31 +00:00
chonghe
9dccfb540f update cargo-sort (#8933)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
2026-03-05 03:48:30 +00:00
Eitan Seri- Levi
16e7bb5f1d Merge branch 'gloas-serve-envelope-rpc' into epbs-devnet-0 2026-03-03 20:11:41 -08:00
Eitan Seri- Levi
8378f7d294 Fixes based on feedback 2026-03-03 18:32:57 -08:00
Eitan Seri- Levi
8dbab49286 Resolve merge conflicts 2026-02-26 13:19:00 -08:00
Jimmy Chen
da141a8c49 Merge remote-tracking branch 'origin/release-v8.1' into unstable 2026-02-18 17:54:48 +11:00
Michael Sproul
be799cb2ad Validator client head monitor timeout fix (#8846)
Fix a bug in v8.1.0 whereby the VC times out continuously with:

> Feb 18 02:03:48.030 WARN  Head service failed retrying starting next slot  error: "Head monitoring stream error, node: 0, error: SseClient(Transport(reqwest::Error { kind: Decode, source: reqwest::Error { kind: Body, source: TimedOut } }))"


  - Remove the existing timeout for the events API by using `Duration::MAX`. This is necessary as the client is configured with a default timeout. This is the only way to override/remove it.
- DO NOT add a `read_timeout` (yet), as this would need to be configured on a per-client basis. We do not want to create a new Client for every call as the early commits on this branch were doing, as this would bypass the TLS cert config, and is also wasteful.


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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-02-18 05:28:17 +00:00
Eitan Seri-Levi
d88f0f7b4c resolve merge conflicts 2026-02-17 18:10:22 -08:00
Eitan Seri-Levi
81d30d576a FMT 2026-02-17 17:47:34 -08:00
Eitan Seri-Levi
eec0700f94 Gloas local block building MVP (#8754)
The flow for local block building is
1. Create execution payload and bid
2. Construct beacon block
3. Sign beacon block and publish
4. Sign execution payload and publish

This PR adds the beacon block v4 flow , GET payload envelope and POST payload envelope (local block building only). The spec for these endpoints can be found here:  https://github.com/ethereum/beacon-APIs/pull/552  and is subject to change.

We needed a way to store the unsigned execution payload envelope associated to the execution payload bid that was included in the block. I introduced a new cache that stores these unsigned execution payload envelopes. the GET payload envelope queries this cache directly so that a proposer, after publishing a block, can fetch the payload envelope + sign and publish it.

I kept payload signing and publishing within the validators block service to keep things simple for now. The idea was to build out a block production MVP for devnet 0, try not to affect any non gloas code paths and build things out in such a way that it will be easy to deprecate pre-gloas code paths later on (for example block production v2 and v3).

We will eventually need to track which beacon node was queried for the block so that we can later query it for the payload. But thats not needed for the devnet.


  


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

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

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

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>
2026-02-17 02:09:35 +00:00
Mac L
945f6637c5 Remove reqwest re-exports from eth2 (#8829)
Remove `reqwest` from being re-exported within `eth2`


Co-Authored-By: Mac L <mjladson@pm.me>
2026-02-16 16:05:54 +00:00
Mac L
fcfd061fc2 Fix eth2 compilation by feature gating SseEventSource (#8819)
`eth2` is currently unable to be built without the `events` feature.


  Feature gates the `SseEventSource` match arm in the `status` function.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-02-16 01:45:29 +00:00
Mac L
a3a74d8988 Correctly compute process times during ProcessHealth::observe (#8793)
I believe I found a bug where during computation of `pid_process_seconds_total` we add `children_system` twice.


  I assume that it was originally intended to add `children_system` and `children_user` once each


Co-Authored-By: Mac L <mjladson@pm.me>
2026-02-14 08:26:25 +00:00
Eitan Seri- Levi
004e3b5b3b Merge branch 'gloas-block-and-bid-production' into gloas-devnet-0 2026-02-13 22:14:26 -08:00
Eitan Seri- Levi
022ee4e968 Special case signed beacon block ssz decoding 2026-02-13 22:13:02 -08:00
Eitan Seri- Levi
4795e1f341 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-block-and-bid-production 2026-02-13 21:33:06 -08:00
Eitan Seri- Levi
5466b8a241 SSE and enw endpoint 2026-02-13 17:21:22 -08:00
Eitan Seri- Levi
ebaca3144c merge block production 2026-02-13 00:05:59 -08:00
Mac L
036ba1f221 Add network feature to eth2 (#8558)
This reverts some of the changes from #8524 by adding back the typed network endpoints with an optional `network` feature. Without the `network` feature, these endpoints (and associated dependencies) will not be built.

This means the `enr`, `multiaddr` and `libp2p-identity` dependencies have returned but are now optional


Co-Authored-By: Mac L <mjladson@pm.me>
2026-02-12 20:51:26 +00:00
Eitan Seri- Levi
36f722c5db Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-block-and-bid-production 2026-02-10 12:12:24 -08:00
Michael Sproul
a3f04bd2d2 Merge v8.1.0 (stable) into unstable 2026-02-10 08:27:43 +11:00
Jimmy Chen
339ba6e143 Move gloas http logic to modules. 2026-02-05 12:25:40 +11:00
Eitan Seri- Levi
1e69734e18 resolve merge conflicts 2026-02-03 20:47:42 -08:00
Eitan Seri- Levi
25853847ef Publish payload 2026-02-03 20:28:28 -08:00
Jimmy Chen
1dd0f7bcbb Remove kzg_commitments from DataColumnSidecarGloas (#8739)
Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-02-04 03:37:05 +00:00
Eitan Seri- Levi
2d321f60eb Add get payload envelope route 2026-02-03 18:51:53 -08:00
hopinheimer
819dae3d94 fix bootnode entry (#8748) 2026-02-04 12:49:56 +11:00
hopinheimer
bd1966353a Use events API to eager send attestations (#7892)
Co-Authored-By: hopinheimer <knmanas6@gmail.com>

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

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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-02-04 01:40:16 +00:00
Eitan Seri- Levi
50dde1585c Add payload to a cache for later signing 2026-02-03 17:27:58 -08:00
Eitan Seri- Levi
7cf4eb0396 Add new block production endpoint 2026-02-03 16:13:07 -08:00
Eitan Seri-Levi
3ecf964385 Replace INTERVALS_PER_SLOT with explicit slot component times (#7944)
https://github.com/ethereum/consensus-specs/pull/4476


  


Co-Authored-By: Barnabas Busa <barnabas.busa@ethereum.org>

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>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-02-02 05:58:42 +00:00
Eitan Seri-Levi
9bec8df37a Add Gloas data column support (#8682)
Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>
2026-01-28 04:52:12 +00:00
Michael Sproul
0f57fc9d8e Check slashability of attestations in batches to avoid sequential bottleneck (#8516)
Closes:

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


  Sign attestations prior to checking them against the slashing protection DB. This allows us to avoid the sequential DB checks which are observed in traces here:

- https://github.com/sigp/lighthouse/pull/8508#discussion_r2576686107


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

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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-01-27 07:56:09 +00:00
Jimmy Chen
7f065009a7 Implement custom OpenTelemetry sampler to filter uninstrumented traces (#8647)
Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-01-22 05:11:26 +00:00
Jimmy Chen
21cabba1a2 Updated consensus types for Gloas 1.7.0-alpha.1 (#8688)
Pulling out consensus type changes from #8677.

This PR covers all type changes for spec 1.7.0-alpha.1 (except for `DataColumnSidecar` changes, which is covered in @eserilev's PR  #8682)


  


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

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-01-21 12:08:48 +00:00
Mr Ree
acc746d947 Update chainspec p2p and etc (#8601)
[Missing values in /eth/v1/config/spec #8571
](https://github.com/sigp/lighthouse/issues/8571) - there will be follow up PR for the re org props


  1. As per above issue from EF dev ops, I added
```
"EPOCHS_PER_SUBNET_SUBSCRIPTION": "256",
"ATTESTATION_SUBNET_COUNT": "64",
"ATTESTATION_SUBNET_EXTRA_BITS": "0",
"UPDATE_TIMEOUT": "8192",
"DOMAIN_BLS_TO_EXECUTION_CHANGE": "0x0a000000"
```
to `/eth/v1/config/spec`
2. Had to change the minimal config for UPDATE_TIMEOUT to get currents tests to pass. This is ok given UPDATE_TIMEOUT is not used in lighthouse as this config for light client spec from altair
3. ATTESTATION_SUBNET_PREFIX_BITS is now dynamically calculated and shimmed into the /eth/v1/config/spec output as advised by @michaelsproul


Co-Authored-By: Joseph Patchen <josephmipatchen@gmail.com>
2026-01-15 04:35:57 +00:00
Jimmy Chu
f584521e85 chore(validator_client): Read genesis time and genesis validators root from eth2_network_config (#8638)
#5019


  If there is a known eth2_network_config, we read the genesis time and validators root from the config.


Co-Authored-By: Jimmy Chu <898091+jimmychu0807@users.noreply.github.com>
2026-01-14 06:25:07 +00:00