Skip to content

Conversation

@chong-he
Copy link
Member

#8171 introduces a bug where the VC would call the BN for attestation_data even though there is no attestation duty. This PR fixes this by adding a check for empty duty.

Also, I think the check in sign_and_publish_attestations is now redundant so I removed it.

Thanks @eserilev for the report!

@chong-he chong-he added val-client Relates to the validator client binary ready-for-review The code is ready for review bug Something isn't working labels Dec 10, 2025
@mergify
Copy link

mergify bot commented Dec 10, 2025

Some required checks have failed. Could you please take a look @chong-he? 🙏

@mergify mergify bot added waiting-on-author The reviewer has suggested changes and awaits thier implementation. and removed ready-for-review The code is ready for review labels Dec 10, 2025
Copy link
Member

@eserilev eserilev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Member

@pawanjay176 pawanjay176 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
@eserilev did this resolve the issue you were seeing?

@0xmrree
Copy link

0xmrree commented Dec 10, 2025

FYI the three tests are also failing for my PR: #8551

@eserilev
Copy link
Member

yep @pawanjay176 this should fix the issue where we are fetching attestation data for every slot regardless of validator duties

@chong-he
Copy link
Member Author

FYI the three tests are also failing for my PR: #8551

This will be fixed by #8557

@pawanjay176 pawanjay176 added ready-for-merge This PR is ready to merge. and removed waiting-on-author The reviewer has suggested changes and awaits thier implementation. labels Dec 11, 2025
@mergify mergify bot added the queued label Dec 11, 2025
@mergify
Copy link

mergify bot commented Dec 11, 2025

Merge Queue Status

✅ The pull request has been merged at 96619b1

This pull request spent 42 minutes 9 seconds in the queue, including 40 minutes 1 second running CI.
The checks were run on draft #8565.

Required conditions to merge
  • check-success=local-testnet-success
  • check-success=test-suite-success

mergify bot added a commit that referenced this pull request Dec 11, 2025
mergify bot added a commit that referenced this pull request Dec 11, 2025
@mergify mergify bot merged commit 5abbdb6 into sigp:unstable Dec 11, 2025
33 of 36 checks passed
@mergify mergify bot removed the queued label Dec 11, 2025
@chong-he chong-he deleted the fix-committee-index-bug branch December 11, 2025 08:04
0xmrree pushed a commit to 0xmrree/lighthouse that referenced this pull request Dec 12, 2025
…8559)

Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
kevaundray added a commit to eth-act/lighthouse that referenced this pull request Dec 13, 2025
* Update local testnet scripts for the fulu fork (sigp#8489)

* Remove `fulu-devnet-3` testing on CI
* Delete `scripts/local_testnet/network_params_das.yaml` and consolidate it into the main `network_params.yaml` file we use on CI
* Delete enclave before building image, so it doesn't cause slow image building.


  


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

* Fix data columns sorting when reconstructing blobs (sigp#8510)

Closes sigp#8509


  


Co-Authored-By: Antoine James <antoine@ethereum.org>

* Instrument attestation signing. (sigp#8508)

We noticed attestation signing taking 2+ seconds on some of our hoodi nodes and the current traces doesn't provide enough details. This PR adds a few more spans to the `attestation_duty_cycle` code path in the VC.

Before:
<img width="842" height="154" alt="image" src="https://github.com/user-attachments/assets/cfc5c8c0-e6f2-4f56-a8e4-65001af4a005" />

After:
<img width="496" height="217" alt="image" src="https://github.com/user-attachments/assets/c91cfa88-af1b-456e-8c64-625809eb6881" />


  


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

* Always use committee index 0 when getting attestation data (sigp#8171)

* sigp#8046


  Split the function `publish_attestations_and_aggregates` into `publish_attestations` and `handle_aggregates`, so that for attestations, only 1 task is spawned.


Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>

Co-Authored-By: chonghe <44791194+chong-he@users.noreply.github.com>

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

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

* Move deposit contract artifacts to /target (sigp#8518)

Alternative to:

- sigp#8488


  Refactors deposit_contract crate to comply with Rust build conventions by placing generated artifacts in the build output directory.


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

* Move beacon state endpoints to a separate module. (sigp#8529)

Part of the http api refactor to move endpoint handlers to separate modules.

This should improve code maintainability, incremental compilation time and rust analyzer performance.


  


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

* Refactor `consensus/types` (sigp#7827)

Organize and categorize `consensus/types` into modules based on their relation to key consensus structures/concepts.
This is a precursor to a sensible public interface.

While this refactor is very opinionated, I am open to suggestions on module names, or type groupings if my current ones are inappropriate.


Co-Authored-By: Mac L <mjladson@pm.me>

* Move validator http endpoints to a separate module (sigp#8536)

Continuation of:
* sigp#8529

Moving `/validator` endpoints out of `http_api` to a separation module. This should improve code maintainability, incremental compilation time and rust analyzer performance.

This is a tedious but straight forward change, so we're going with a pair & insta-merge approach to avoid painful & slow async review. @michaelsproul and I paired on the first commit - I believe we are almost done, will pair with @pawanjay176 tomorrow to wrap it up and merge tomorrow. (cc @macladson )


  


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

* Move beacon pool http api to its own separate module (sigp#8543)

Continuation of:
* sigp#8536

Moving `/beacon/pool` endpoints out of `http_api` to a separation module. This should improve code maintainability, incremental compilation time and rust analyzer performance.

This is a tedious but straight forward change, so we're going with a pair & insta-merge approach to avoid painful & slow async review


  


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

* Reduce `eth2` dependency space  (sigp#8524)

Remove certain dependencies from `eth2`, and feature-gate others which are only used by certain endpoints.

| Removed | Optional | Dev only |
| -------- | -------- | -------- |
| `either` `enr` `libp2p-identity` `multiaddr` | `protoarray` `eth2_keystore` `eip_3076` `zeroize` `reqwest-eventsource` `futures` `futures-util` | `rand` `test_random_derive` |

This is done by adding an `events` feature which enables the events endpoint and its associated dependencies.
The `lighthouse` feature also enables its associated dependencies making them optional.

The networking-adjacent dependencies were removed by just having certain fields use a `String` instead of an explicit network type. This means the user should handle conversion at the call site instead. This is a bit spicy, but I believe `PeerId`, `Enr` and `Multiaddr` are easily converted to and from `String`s so I think it's fine and reduces our dependency space by a lot. The alternative is to feature gate these types behind a `network` feature instead.


Co-Authored-By: Mac L <mjladson@pm.me>

* Clarify `alloy` dependencies (sigp#8550)

Previously, we had a pinned version of `alloy` to fix some crate compatibility issues we encountered during the migration away from `ethers`. Now that the migration is complete we should remove the pin. This also updates alloy crates to their latest versions.


Co-Authored-By: Mac L <mjladson@pm.me>

* Remove `consensus/types` re-exports (sigp#8540)

There are certain crates which we re-export within `types` which creates a fragmented DevEx, where there are various ways to import the same crates.

```rust
// consensus/types/src/lib.rs
pub use bls::{
AggregatePublicKey, AggregateSignature, Error as BlsError, Keypair, PUBLIC_KEY_BYTES_LEN,
PublicKey, PublicKeyBytes, SIGNATURE_BYTES_LEN, SecretKey, Signature, SignatureBytes,
get_withdrawal_credentials,
};
pub use context_deserialize::{ContextDeserialize, context_deserialize};
pub use fixed_bytes::FixedBytesExtended;
pub use milhouse::{self, List, Vector};
pub use ssz_types::{BitList, BitVector, FixedVector, VariableList, typenum, typenum::Unsigned};
pub use superstruct::superstruct;
```

This PR removes these re-exports and makes it explicit that these types are imported from a non-`consensus/types` crate.


Co-Authored-By: Mac L <mjladson@pm.me>

* Fix testnet script (sigp#8557)

Fix an issue where a kurtosis testnet script was failing because no supernodes were provided


```
There was an error interpreting Starlark code
Evaluation error: fail: Fulu fork is enabled (epoch: 0) but no supernodes are configured, no nodes have 128 or more validators, and perfect_peerdas_enabled is not enabled. Either configure a supernode, ensure at least one node has 128+ validators, or enable perfect_peerdas_enabled in network_params with 16 participants.
at [github.com/ethpandaops/ethereum-package/main.star:83:57]: run
at [github.com/ethpandaops/ethereum-package/src/package_io/input_parser.star:377:17]: input_parser
at [0:0]: fail
```


  


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

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>

* Do not request attestation data when attestation duty is empty (sigp#8559)

Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>

* Rust 1.92 lints (sigp#8567)

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

---------

Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
Co-authored-by: 0xMushow <105550256+0xMushow@users.noreply.github.com>
Co-authored-by: Antoine James <antoine@ethereum.org>
Co-authored-by: chonghe <44791194+chong-he@users.noreply.github.com>
Co-authored-by: Michael Sproul <michael@sigmaprime.io>
Co-authored-by: Michael Sproul <michaelsproul@users.noreply.github.com>
Co-authored-by: Mac L <mjladson@pm.me>
Co-authored-by: Eitan Seri-Levi <eserilev@ucsc.edu>
Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>
Co-authored-by: Tan Chee Keong <tanck@sigmaprime.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ready-for-merge This PR is ready to merge. val-client Relates to the validator client binary

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants