Commit Graph

1746 Commits

Author SHA1 Message Date
Eitan Seri- Levi
5567bf9339 Merge conlficts 2026-03-26 21:50:30 -07:00
Michael Sproul
bd34bb1430 Remove schema migrations for v28 and earlier (#9031)
With LH v8.1.3 supporting Fulu-on-Gnosis, we no longer need these DB migrations. All Lighthouse nodes running in prod will soon be updated to LH v8.0.0+ and schema v28+.

This PR helps with Gloas fork choice changes, by allowing us to avoid updating old schema migrations when adding V29 for Gloas:

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


  


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-26 02:10:34 +00:00
Eitan Seri-Levi
c7055b604f Gloas serve envelope rpc (#8896)
Serves envelope by range and by root requests. Added PayloadEnvelopeStreamer so that we dont need to alter upstream code when we introduce blinded payload envelopes.


  


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

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

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-03-25 06:45:24 +00:00
Eitan Seri-Levi
b3d5185893 Carry forward withdrawals from the current BeaconState when a parent envelope is missed (#9014)
Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>
2026-03-22 21:46:39 +00:00
Michael Sproul
06025228ae Gloas cold DB (#8991)
Closes:

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


  - Update the `HotColdStore` to handle storage of cold states.
- Update `BeaconSnapshot` to hold the execution envelope. This is required to make `chain_dump`-related checks sane, and will be generally useful (see: https://github.com/sigp/lighthouse/issues/8956).
- Bug fix in the `BlockReplayer` for the case where the starting state is already `Full` (we should not try to apply another payload). This happens on the cold DB path because we try to replay from the closest cached state (which is often full).
- Update `test_gloas_hot_state_hierarchy` to cover the cold DB migration.


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

Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
2026-03-19 09:09:13 +00:00
Michael Sproul
95b99ee724 Spec v1.7.0 alpha.3 (#8988)
Update spec code for compliance with spec v1.7.0-alpha.3: https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.3

The actual consensus changes are minimal. There are few more changes that are only relevant to fork choice or P2P validation that we will pick up in future PRs.

The change "Ignore beacon block if parent payload unknown" is currently covered in a hacky way by `load_parent` and can be improved once we have fork choice.

The change "Add parent_block_root to bid filtering key" is relevant to bid gossip validation, which we don't have at all in unstable yet.


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-16 11:40:22 +00:00
ethDreamer
6ca610d918 Breakup RPCBlock into LookupBlock & RangeSyncBlock (#8860)
Co-Authored-By: Mark Mackey <mark@sigmaprime.io>
2026-03-13 19:22:29 +00:00
Michael Sproul
bff72a920d Update database and block replayer to handle payload envelopes (#8886)
Closes:

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


  - Update `BlockReplayer` to support replay of execution payload envelopes.
- Update `HotColdDB` to load payload envelopes and feed them to the `BlockReplayer` for both hot + cold states. However the cold DB code is not fully working yet (see: https://github.com/sigp/lighthouse/issues/8958).
- Add `StatePayloadStatus` to allow callers to specify whether they want a state with a payload applied, or not.
- Fix the state cache to key by `StatePayloadStatus`.
- Lots of fixes to block production and block processing regarding state management.
- Initial test harness support for producing+processing Gloas blocks+envelopes
- A few new tests to cover Gloas DB operations


Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.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>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-03-11 23:06:25 +00:00
Lion - dapplion
6350a27031 Optionally check DB invariants at runtime (#8952)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-03-11 06:20:02 +00:00
Mac L
815040dc3c Remove c-kzg (#8930)
#7330


  Removes `c-kzg` from our `kzg` crate and rely fully on the `rust_eth_kzg` crate.

This removes the old `Blob` type entirely and instead handles `rust_eth_kzg::KzgBlobRef`s directly which allows us to avoid some extra stack allocations . Similarly, we make `Bytes32` and `Bytes48` type aliases rather than structs as this fits better with the new `rust_eth_kzg` API.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-11 05:43:26 +00:00
Eitan Seri-Levi
7dab32dd16 Gloas payload envelope processing (#8806)
Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

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

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-03-09 05:23:34 +00: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
9c4715c251 Fix lints for Rust v1.94.0 (#8939)
Following the release of Rust v1.94.0 there are new Clippy lints which do not pass and are blocking CI (which pulls in the latest version of Rust)


  This is pretty much the minimum just to get CI running again. Most of the errors involve error types being too large. For now I've added allows but later it might be worth doing a refactor to `Box` or otherwise remove the problematic error types.


Co-Authored-By: Mac L <mjladson@pm.me>
2026-03-06 07:54:43 +00:00
Eitan Seri- Levi
bf18f8a756 boiler plate: 2026-03-03 22:21:58 -08:00
Eitan Seri- Levi
e8d83ef57f Remove dumb artificial delay 2026-03-03 20:22:30 -08: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
63d4ae2800 attestataion data index 2026-03-03 20:11:35 -08:00
Eitan Seri- Levi
8378f7d294 Fixes based on feedback 2026-03-03 18:32:57 -08:00
Eitan Seri- Levi
ff0c05ecf8 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-serve-envelope-rpc 2026-03-02 23:28:45 -08:00
Eitan Seri- Levi
c0ee0d54fe merge 2026-03-02 13:05:13 -08:00
Eitan Seri- Levi
a937802dc3 dont make pub 2026-03-02 12:31:31 -08:00
Eitan Seri-Levi
9a8bedf76d Update beacon_node/beacon_chain/src/metrics.rs
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2026-03-03 05:27:24 +09:00
Michael Sproul
6194dddc5b Persist custody context more readily (#8921)
We received a bug report of a node restarting custody backfill unnecessarily after upgrading to Lighthouse v8.1.1. What happened is:

- User started LH v8.0.1 many months ago, CGC updated 0 -> N but the CGC was not eagerly persisted.
- LH experienced an unclean shutdown (not sure of what type).
- Upon restarting (still running v8.0.1), the custody context read from disk contains CGC=0: `DEBUG Loaded persisted custody context   custody_context: CustodyContext { validator_custody_count: 0, ...`).
- CGC updates again to N, retriggering custody backfill: `DEBUG Validator count at head updated   old_count: 0, new_count: N`.
- Custody backfill does a bunch of downloading for no gain: `DEBUG Imported historical data columns   epoch: Epoch(428433), total_imported: 0`
- While custody backfill is running user updated to v8.1.1, and we see logs for the CGC=N being peristed upon clean shutdown, and then correctly read on startup with v8.1.1.
- Custody backfill keeps running and downloading due to the CGC change still being considered in progress.


  - Call `persist_custody_context` inside the `register_validators` handler so that it is written to disk eagerly whenever it changes. The performance impact of this should be minimal as the amount of data is very small and this call can only happen at most ~128 times (once for each change) in the entire life of a beacon node.
- Call `persist_custody_context` inside `BeaconChainBuilder::build` so that changes caused by CLI flags are persisted (otherwise starting a node with `--semi-supernode` and no validators, then shutting it down uncleanly would cause use to forget the CGC).

These changes greatly reduce the timespan during which an unclean shutdown can create inconsistency. In the worst case, we only lose backfill progress that runs concurrently with the `register_validators` handler (should be extremely minimal, nigh impossible).


Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
2026-03-02 06:43:51 +00:00
Eitan Seri-Levi
51270540a1 Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-serve-envelope-rpc 2026-02-27 11:55:27 -08:00
Eitan Seri- Levi
c48594fe18 YAY 2026-02-26 18:19:19 -08:00
Eitan Seri- Levi
8dbab49286 Resolve merge conflicts 2026-02-26 13:19:00 -08:00
Michael Sproul
30f8cab182 Fixes to test relying on cold DB 2026-02-26 21:38:57 +11:00
Eitan Seri- Levi
76109327bc address changes 2026-02-25 23:45:42 -08:00
Michael Sproul
e44f37895d Simplify diff strat and expand tests (they mostly pass!) 2026-02-26 17:15:32 +11:00
Eitan Seri- Levi
afbba87a64 Fix comments 2026-02-25 22:04:35 -08:00
Michael Sproul
edf77a5298 Small fixes relating to genesis 2026-02-26 10:20:47 +11:00
Eitan Seri- Levi
ffb6f296bd temp 2026-02-25 14:56:30 -08:00
Eitan Seri- Levi
d370461dab Merge branch 'unstable' of https://github.com/sigp/lighthouse into gloas-payload-processing 2026-02-25 09:06:07 -08:00
Eitan Seri- Levi
12eddb561c fix new payload notifier 2026-02-24 22:49:57 -08:00
Michael Sproul
adfa3b882d First Gloas test passes! 2026-02-25 17:09:32 +11:00
Michael Sproul
59a2b6dead Fix state for block production 2026-02-25 16:02:15 +11:00
Michael Sproul
57527e5094 Fix load_parent 2026-02-25 14:26:21 +11:00
Lion - dapplion
d6bf53834f Remove merge transition code (#8761)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
2026-02-25 03:20:28 +00:00
Michael Sproul
984f0d70e0 Make state cache payload status aware 2026-02-25 13:21:48 +11:00
Michael Sproul
a09839df1f Merge remote-tracking branch 'eitan/gloas-payload-processing' into gloas-replay-blocks 2026-02-25 12:05:30 +11:00
Michael Sproul
f4b7f8f02d Fixed signed envelopes etc 2026-02-25 10:53:41 +11:00
Michael Sproul
fe240ba892 Start updating the test harness (Claude) 2026-02-25 10:15:54 +11:00
Jimmy Chen
e59f1f03ef Add debug spans to DB write paths (#8895)
Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
2026-02-24 20:53:33 +00:00
Eitan Seri- Levi
38ef0d07e5 Update TODO 2026-02-24 12:17:12 -08:00
Eitan Seri- Levi
0761da770d Clean up comments 2026-02-24 12:15:52 -08:00
Eitan Seri- Levi
876e6899cd Some more TODOs 2026-02-24 12:14:30 -08:00
Eitan Seri- Levi
2093dc1f39 move execution pending envelolpe logic to its own file 2026-02-24 12:08:07 -08:00
Eitan Seri- Levi
30241f54c4 add load_snapshot_from_state_root that can be used when we've already aquired a 2026-02-24 11:35:01 -08:00
Eitan Seri- Levi
fc7d6c9d24 Add an additional defensive expected proposer check 2026-02-24 11:20:07 -08:00