Commit Graph

605 Commits

Author SHA1 Message Date
Eitan Seri-Levi
def287730d fix logs 2025-06-12 12:54:43 +03:00
Eitan Seri-Levi
6eaa26ba95 update config 2025-06-12 12:42:01 +03:00
Eitan Seri-Levi
7fe71d4db6 got interop working~ 2025-06-09 10:07:53 +03:00
Eitan Seri-Levi
30f28784ee merge conflicts 2025-05-27 14:56:02 -07:00
Eitan Seri-Levi
e21b578073 resolve merge conflict and migrate il service to new pardigmn 2025-05-21 12:43:43 -07:00
ethDreamer
7684d1f866 ContextDeserialize and Beacon API Improvements (#7372)
* #7286
* BeaconAPI is not returning a versioned response when it should for some V1 endpoints
* these [strange functions with vX in the name that still accept `endpoint_version` arguments](https://github.com/sigp/lighthouse/blob/stable/beacon_node/http_api/src/produce_block.rs#L192)

This refactor is a prerequisite to get the fulu EF tests running.
2025-05-19 05:05:16 +00:00
ltitanb
1d27855db7 impl from hash256 for ExecutionBlockHash (#7369)
ref: #7367


  Implement `From<Hash256>` for `ExecutionBlockHash
2025-05-16 13:23:11 +00:00
diegomrsantos
851ee2bced Extract get_domain for VoluntaryExit (#7454)
N/A


  Extract get_domain for VoluntaryExit so it can be used in Anchor with a different signing process.
2025-05-14 08:49:30 +00:00
ltitanb
0a917989b2 impl test random for some types (#7370)
ref: https://github.com/sigp/lighthouse/pull/7367


  Implement `TestRandom` for a few types
2025-05-12 23:50:11 +00:00
SunnysidedJ
593390162f peerdas-devnet-7: update DataColumnSidecarsByRoot request to use DataColumnsByRootIdentifier (#7399)
Update DataColumnSidecarsByRoot request to use DataColumnsByRootIdentifier #7377


  As described in https://github.com/ethereum/consensus-specs/pull/4284
2025-05-12 00:20:55 +00:00
Daniel Knopik
3d92e3663b Modularize validator store (#6705)
- Create trait `ValidatorStore` with all functions used by the `validator_services`
- Make `validator_services` generic on `S: ValidatorStore`
- Introduce `LighthouseValidatorStore`, which has identical functionality to the old `ValidatorStore`
- Remove dependencies (especially `environment`) from `validator_services` and `beacon_node_fallback` in order to be able to cleanly use them in Anchor
2025-05-07 03:43:33 +00:00
Eitan Seri-Levi
c464a54ba2 Fork boilerplate 2025-04-30 16:26:29 -07:00
Jimmy Chen
476f3a593c Add MAX_BLOBS_PER_BLOCK_FULU config (#7161)
Add `MAX_BLOBS_PER_BLOCK_FULU` config.
2025-04-15 00:20:46 +00:00
Mac L
39eb8145f8 Merge branch 'release-v7.0.0' into unstable 2025-04-11 21:32:24 +10:00
Eitan Seri-Levi
af51d50b05 Ensure /eth/v2/beacon/pool/attestations honors committee_index (#7298)
#7294


  Fix the filtering logic so that we actually filter by committee index for both `Base` and `Electra` attestations.

Added a tiny optimization when calculating committee_index to prevent unneeded memory allocations

Added a regression test
2025-04-11 04:47:30 +00:00
chonghe
93703623c8 Gnosis Pectra fork epoch (#7296)
~~* #7274~~
* #7295
2025-04-10 08:51:14 +00:00
Michael Sproul
bb5b00ead5 Update and cleanup Electra preset (#7303)
- Update the bundled `electra.yaml` preset files for `mainnet` and `minimal` to match `consensus-specs` as of: bf09edef17
- Add the field `max_pending_deposits_per_epoch` to our runtime representation of `ElectraPreset`. This results in it appearing in `/eth/v1/config/spec` where it was previously absent.
2025-04-10 06:27:31 +00:00
Michael Sproul
ec643843e0 Remove/document remaining Electra TODOs (#6982)
Not essential to merge this now, but I'm going through TODOs for Electra to make sure we haven't missed anything.

Targeting this at the release branch anyway so that auditors/readers don't get alarmed 😅
2025-04-09 04:14:50 +00:00
Pawan Dhananjay
076f3f0984 Clarify network limits (#7175)
Resolves #6811


  Rename `GOSSIP_MAX_SIZE` to `MAX_PAYLOAD_SIZE` and remove `MAX_CHUNK_SIZE` in accordance with the spec.

The spec also "clarifies"  the message size limits at different levels. The rpc limits are equivalent to what we had before imo.
The gossip limits have additional checks.

I have gotten rid of the `is_bellatrix_enabled`  checks that used a lower limit (1mb) pre-merge. Since all networks we run start from the merge, I don't think this will break any setups.
2025-04-09 02:50:45 +00:00
Eitan Seri-Levi
863c19863f Mainnet Electra fork epoch (#7275)
#6918

See https://github.com/eth-clients/mainnet/pull/4
2025-04-08 08:10:17 +00:00
Jimmy Chen
759b0612b3 Offloading KZG Proof Computation from the beacon node (#7117)
Addresses #7108

- Add EL integration for `getPayloadV5` and `getBlobsV2`
- Offload proof computation and use proofs from EL RPC APIs
2025-04-08 07:37:16 +00:00
Eitan Seri-Levi
7bd50a6fe8 Merge branch 'unstable' of https://github.com/sigp/lighthouse into electra-focil 2025-04-05 17:49:57 -07:00
Mac L
0e6da0fcaf Merge branch 'release-v7.0.0' into v7-backmerge 2025-04-04 13:32:58 +11:00
Mac L
82d1674455 Rust 1.86.0 lints (#7254)
Implement lints for the new Rust compiler version 1.86.0.
2025-04-04 02:30:22 +00:00
Eitan Seri-Levi
19d43a2a8e merge unstable 2025-03-26 12:42:55 -06:00
Ruud van Asseldonk
9dce729cb6 Ensure sqlite and rusqlite are optional in consensus/types (#7182)
Even though the `consensus/types` crate has a feature named `sqlite`, it unconditionally depends on the `rusqlite` crate, which then depends on the `sqlite` crate — even when the feature is disabled. When the feature is disabled, the code that imports from `rusqlite` is disabled, so this dependency is not needed when the feature is disabled.

This is not a problem for Lighthouse itself, but I’m interested in using the types defined here in a different Rust project, which depends on a conflicting version of the `sqlite` crate.


  Ensure that the dependency on `rusqlite` is only present when the `sqlite` feature is enabled.
2025-03-25 13:50:10 +00:00
Eitan Seri-Levi
cbf1c04a14 resolve merge conflicts between untstable and release-v7.0.0 2025-03-23 11:09:02 -06:00
Eitan Seri-Levi
77e86b102d Add inclusion list sse event 2025-03-20 23:59:32 -06:00
Eitan Seri-Levi
9db29b023b Ensure finalized block is the correct fork variant when constructing light client updates (#7085) 2025-03-17 02:39:35 +00:00
ThreeHrSleep
d60c24ef1c Integrate tracing (#6339)
Tracing Integration
- [reference](5bbf1859e9/projects/project-ideas.md (L297))


  - [x] replace slog & log with tracing throughout the codebase
- [x] implement custom crit log
- [x] make relevant changes in the formatter
- [x] replace sloggers
- [x] re-write SSE logging components

cc: @macladson @eserilev
2025-03-12 22:31:05 +00:00
Paul Hauner
8d1abce26e Bump SSZ version for larger bitfield SmallVec (#6915)
NA


  Bumps the `ethereum_ssz` version, along with other crates that share the dep.

Primarily, this give us bitfields which can store 128 bytes on the stack before allocating, rather than 32 bytes (https://github.com/sigp/ethereum_ssz/pull/38). The validator count has increase massively since we set it at 32 bytes, so aggregation bitfields (et al) now require a heap allocation. This new value of 128 should get us to ~2m active validators.
2025-03-10 08:18:33 +00:00
Eitan Seri-Levi
fe96804a45 rebase onto fulu 2025-03-09 16:36:15 -06:00
Eitan Seri-Levi
fde5131895 Merge branch 'unstable' of https://github.com/sigp/lighthouse into electra-focil 2025-03-09 10:28:45 -06:00
Pawan Dhananjay
3bc5f1f2a5 Validator Registration ssz support (#7081)
N/A


  Derive ssz::Encode and Decode on the `SignedValidatorRegistrationData` type to use in the builder
2025-03-06 03:21:10 +00:00
Michael Sproul
e5e43ecd81 Merge remote-tracking branch 'origin/release-v7.0.0' into unstable 2025-02-24 13:59:40 +11:00
Pawan Dhananjay
b3b6aea1c5 Rust 1.85 lints (#7019)
N/A


  2 changes:
1. Replace Option::map_or(true, ...) with is_none_or(...)
2. Remove unnecessary `Into::into` blocks where the type conversion is apparent from the types
2025-02-24 02:36:13 +00:00
Eitan Seri-Levi
df0aeb0ba9 resolve merge conflicts 2025-02-22 07:33:36 -08:00
Michael Sproul
ff739d56be Fix light client merkle proofs (#7007)
Fix a regression introduced in this PR:

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

We were indexing into the `MerkleTree` with raw generalized indices, which was incorrect and triggering `debug_assert` failures, as described here:

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


  - Convert `generalized_index` to the correct leaf index prior to proof generation.
- Add sanity checks on indices used in `BeaconState::generate_proof`.
- Remove debug asserts from `MerkleTree::generate_proof` in favour of actual errors. This would have caught the bug earlier.
- Refactor the EF tests so that the merkle validity tests are actually run. They were misconfigured in a way that resulted in them running silently with 0 test cases, and the `check_all_files_accessed.py` script still had an ignore that covered the test files, so this omission wasn't detected.
2025-02-18 00:39:49 +00:00
Eitan Seri-Levi
cdbdb5226d debugging 2025-02-15 12:14:58 +02:00
Lion - dapplion
0055af56b6 Unsubscribe blob topics at Fulu fork (#6932)
Addresses #6854.

PeerDAS requires unsubscribing a Gossip topic at a fork boundary. This is not possible with our current topic machinery.


  Instead of defining which topics have to be **added** at a given fork, we define the complete set of topics at a given fork. The new start of the show and key function is:

```rust
pub fn core_topics_to_subscribe<E: EthSpec>(
fork_name: ForkName,
opts: &TopicConfig,
spec: &ChainSpec,
) -> Vec<GossipKind> {
// ...
if fork_name.deneb_enabled() && !fork_name.fulu_enabled() {
// All of deneb blob topics are core topics
for i in 0..spec.blob_sidecar_subnet_count(fork_name) {
topics.push(GossipKind::BlobSidecar(i));
}
}
// ...
}
```

`core_topics_to_subscribe` only returns the blob topics if `fork < Fulu`. Then at the fork boundary, we subscribe with the new fork digest to `core_topics_to_subscribe(next_fork)`, which excludes the blob topics.

I added `is_fork_non_core_topic` to carry on to the next fork the aggregator topics for attestations and sync committee messages. This approach is future-proof if those topics ever become fork-dependent.

Closes https://github.com/sigp/lighthouse/issues/6854
2025-02-11 23:40:14 +00:00
Lion - dapplion
3992d6ba74 Fix misc PeerDAS todos (#6862)
Address misc PeerDAS TODOs that are not too big for a dedicated PR


  I'll justify each TODO on an inlined comment
2025-02-11 06:07:13 +00:00
Eitan Seri-Levi
7eb040c70e Add more testing, additional checks 2025-02-10 17:04:08 +02:00
Lion - dapplion
e3c721817e Remove duplicated fork_epoch and fork_version implementation (#6953)
This PR adds an implementation to get fork_version and fork_epoch given a `ForkName`. I didn't realize that this is already implemented in the `ChainSpec` sorry

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


  Remove duplicated fork_epoch and fork_version implementation
2025-02-08 00:38:24 +00:00
Michael Sproul
2bd5bbdffb Optimise and refine SingleAttestation conversion (#6934)
Closes

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


  - Use a new `WorkEvent::GossipAttestationToConvert` to handle the conversion from `SingleAttestation` to `Attestation` _on_ the beacon processor (prevents a Tokio thread being blocked).
- Improve the error handling for single attestations. I think previously we had no ability to reprocess single attestations for unknown blocks -- we would just error. This seemed to be the case in both gossip processing and processing of `SingleAttestation`s from the HTTP API.
- Move the `SingleAttestation -> Attestation` conversion function into `beacon_chain` so that it can return the `attestation_verification::Error` type, which has well-defined error handling and peer penalties. The now-unused variants of `types::Attestation::Error` have been removed.
2025-02-07 23:18:57 +00:00
Lion - dapplion
59afe41d61 Reduce ForkName boilerplate in fork-context (#6933)
Noted that there's a bit of fork boiler plate in fork context.


  If we list a mapping of ForkName -> fork_version in the ForkName enum we can get rid of it :)

Not much, but should make the next fork a tiny tit less annoying
2025-02-07 05:38:36 +00:00
Eitan Seri-Levi
7414f485a3 add intial focil test 2025-02-04 16:03:53 +02:00
Eitan Seri-Levi
1e2b547b35 Add builder SSZ flow (#6859) 2025-02-03 06:07:42 +00:00
Eitan Seri-Levi
db8d659f2f Merge unstable 2025-02-02 00:18:00 +03:00
Eitan Seri-Levi
f31c0b69e3 add focil epoch activation 2025-02-01 23:54:50 +03:00
Eitan Seri-Levi
276eda3dfe POST /eth/v2/beacon/pool/attestations bugfixes (#6867) 2025-01-31 00:20:44 +00:00