Skip to content

subscribe to attest and sync duties polling completion - #24

Closed
shane-moore wants to merge 15 commits into
unstablefrom
watch-attest-sync-duties
Closed

subscribe to attest and sync duties polling completion#24
shane-moore wants to merge 15 commits into
unstablefrom
watch-attest-sync-duties

Conversation

@shane-moore

Copy link
Copy Markdown
Owner

Issue Addressed

Which issue # does this PR address?

Proposed Changes

Please list or describe the changes introduced by this PR.

Additional Info

Please provide any additional information. For example, future considerations
or information useful for reviewers.

eserilev and others added 11 commits January 12, 2026 23:36
N/A


  The `beacon_data_column_sidecar_computation_seconds` used to record the full kzg proof generation times before we changed getBlobsV2 to just return the full proofs + cells. This metric should be taking way less time than 100ms which was the minimum bucket previously.

Update the metric to use the default buckets for better granularity.


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


  Add standardized metrics for getBlobsV2 from ethereum/beacon-metrics#14.


Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>
…t from eth2_network_config (sigp#8638)

sigp#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>
…gp#8653)

sigp#8652


  - This removes instances of `BeaconStateError` from `eth_spec.rs`, and replaces them directly with `ArithError` which can be trivially converted back to `BeaconStateError` at the call site.
- Also moves the state related methods on `ChainSpec` to be methods on `BeaconState` instead. I think this might be a more natural place for them to exist anyway.


Co-Authored-By: Mac L <mjladson@pm.me>
Removes some of the temporary re-exports in `consensus/types`.

I am doing this in multiple parts to keep each diff small.


Co-Authored-By: Mac L <mjladson@pm.me>
[Missing values in /eth/v1/config/spec sigp#8571
](sigp#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>
Remove more of the temporary re-exports from `consensus/types`


Co-Authored-By: Mac L <mjladson@pm.me>
…sigp#8666)

sigp#8652


  This moves the `ExecutionBlockHash` from the `execution` module to the `core` module. This allows `core` to not depend on the `execution` module, and the `ExecutionBlockHash` is a pretty core  part of our types so I think it makes sense.


Co-Authored-By: Mac L <mjladson@pm.me>
…p#8672)

Removes the remaining facade re-exports from `consensus/types`.
I have left `graffiti` as I think it has some utility so am leaning towards keeping it in the final API design.


Co-Authored-By: Mac L <mjladson@pm.me>
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
@shane-moore
shane-moore force-pushed the watch-attest-sync-duties branch from 19e0fd7 to 8725b85 Compare January 20, 2026 16:11
jxs and others added 3 commits January 20, 2026 19:45
Co-Authored-By: João Oliveira <hello@jxs.pt>
Pulling out consensus type changes from sigp#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  sigp#8682)


  


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

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
@shane-moore
shane-moore force-pushed the watch-attest-sync-duties branch from 8725b85 to f8927e2 Compare January 24, 2026 00:14
@shane-moore
shane-moore force-pushed the watch-attest-sync-duties branch from f8927e2 to 35fb976 Compare January 24, 2026 01:14
@shane-moore

Copy link
Copy Markdown
Owner Author

Closing — no longer needed.

This PR added two tokio::sync::watch channels (attesters_poll_tx, sync_poll_tx) plus subscribe_to_attesters_poll/subscribe_to_sync_poll methods so Anchor could react when Lighthouse finished a duties poll. Three reasons to close:

  1. No consumer in Anchor. A grep across the Anchor repo for subscribe_to_attesters_poll, subscribe_to_sync_poll, attesters_poll_tx, sync_poll_tx returns zero hits. The only DutiesService consumer is anchor/validator_store/src/metadata_service.rs, which reads the attesters cache directly and never waits on a poll-completion signal.

  2. Anchor solves this differently. Anchor's MetadataService owns its own slot pipeline (VotingAssignments at t=0, VotingContext at t=1/3, AggregationAssignments at t=2/3) and broadcasts phase data via its own watch channels (voting_context_tx, voting_assignments_tx, aggregation_assignments_tx in anchor/validator_store/src/lib.rs:172-176).

  3. Significant upstream divergence. ~700 lines of drift in the two touched files via Call beacon_committee_selections only once per epoch sigp/lighthouse#8699, Gloas vc ptc duty sigp/lighthouse#8338, Rust 1.95 lints sigp/lighthouse#9142 (call-site signature changes, new PtcDuty flow). Rebasing a feature with no consumer would be wasted work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants