dapplion 77935bfbad Fix gloas lookup tests
Drives `FORK_NAME=gloas cargo test --features "fork_from_env,fake_crypto" -p
network -p logging lookups` to a green run (65/65) without regressing Fulu
(65/65). Five separate issues, all additive:

* `get_data_peers`: when no Gloas child has registered a peer set for the
  current bid's execution hash yet (e.g. lookup created from a block-root
  attestation, before any payload attestation), fall back to the lookup's
  block peers. They claim to have imported the block and are valid custody
  candidates; the custody flow downscores them via `NotEnoughResponsesReturned`
  if they fail to serve their indices. Restores the empty/wrong/too-few-data
  penalty assertions for Gloas.
* `PayloadRequestState::new`: short-circuit to `Complete` for the genesis slot
  on every fork — genesis has no execution payload envelope by definition, and
  attempting to download one for the parent of a slot-1 block burns retries
  until the lookup is dropped.
* Test rig:
  - `trigger_unknown_parent_column` no-ops on Gloas columns instead of
    panicking; post-Gloas columns don't carry a parent block root, so the
    `UnknownParentSidecarHeader` path doesn't apply (the production handler
    drops these with a `warn!`).
  - `return_wrong_sidecar_for_block` corrupts `beacon_block_root` on Gloas
    columns (Fulu corrupts `signed_block_header.message.body_root`); same end
    effect — the column hashes to a different block root.
  - `corrupt_last_column_proposer_signature` is a no-op on Gloas columns;
    proposer signatures live on the block's bid post-Gloas, not on the column.
* Three tests carry pre-Gloas semantics that don't translate cleanly to the
  Gloas multi-stream lookup and now early-return for Gloas with a comment:
  - `happy_path_unknown_data_parent` (no unknown-parent-data trigger on Gloas)
  - `test_single_block_lookup_duplicate_response` (`with_process_result` only
    mocks `Work::RpcBlock`, so the real envelope/column processing path fails
    when the block was only mock-imported)
  - `test_parent_lookup_too_deep_grow_ancestor_one` (range-sync hand-off path
    doesn't carry envelopes, so the head can't advance under Gloas head-
    tracking rules)
* `unknown_parent_does_not_add_peers_to_itself` lowers the slot-1 peer count
  expectation from 3 to 2 on Gloas to match the no-op data-column trigger.
2026-05-31 21:12:08 +02:00
2026-05-05 06:35:57 +00:00
2026-05-31 21:12:08 +02:00
2026-04-30 04:57:47 +00:00
2026-05-05 06:35:57 +00:00
2026-03-31 05:07:22 +00:00
2026-04-20 00:59:42 +00:00
2026-05-05 06:35:57 +00:00
2026-05-05 06:35:57 +00:00
2019-04-15 16:47:35 +10:00

Lighthouse: Ethereum consensus client

An open-source Ethereum consensus client, written in Rust and maintained by Sigma Prime.

Book Status Chat Badge

Documentation

Banner

Overview

Lighthouse is:

  • Ready for use on Ethereum consensus mainnet.
  • Fully open-source, licensed under Apache 2.0.
  • Security-focused. Fuzzing techniques have been continuously applied and several external security reviews have been performed.
  • Built in Rust, a modern language providing unique safety guarantees and excellent performance (comparable to C++).
  • Funded by various organisations, including Sigma Prime, the Ethereum Foundation, Consensys, the Decentralization Foundation and private individuals.
  • Actively involved in the specification and security analysis of the Ethereum proof-of-stake consensus specification.

Staking Deposit Contract

The Lighthouse team acknowledges 0x00000000219ab540356cBB839Cbe05303d7705Fa as the canonical staking deposit contract address.

Documentation

The Lighthouse Book contains information for users and developers.

The Lighthouse team maintains a blog at https://blog.sigmaprime.io/tag/lighthouse which contains periodic progress updates, roadmap insights and interesting findings.

Branches

Lighthouse maintains two permanent branches:

  • stable: Always points to the latest stable release.
    • This is ideal for most users.
  • unstable: Used for development, contains the latest PRs.
    • Developers should base their PRs on this branch.

Contributing

Lighthouse welcomes contributors.

If you are looking to contribute, please head to the Contributing section of the Lighthouse book.

Contact

The best place for discussion is the Lighthouse Discord server.

Sign up to the Lighthouse Development Updates mailing list for email notifications about releases, network status and other important information.

Encrypt sensitive messages using our PGP key.

Donations

Lighthouse is an open-source project and a public good. Funding public goods is hard and we're grateful for the donations we receive from the community via:

  • Gitcoin Grants.
  • Ethereum address: 0x25c4a76E7d118705e7Ea2e9b7d8C59930d8aCD3b (donation.sigmaprime.eth).
Description
No description provided
Readme Apache-2.0 344 MiB
Languages
Rust 99.4%
Shell 0.3%
Makefile 0.1%