Skip to content

Conversation

@dapplion
Copy link
Collaborator

@dapplion dapplion commented Feb 6, 2025

Issue Addressed

Range sync and backfill sync still assume that each batch request is done by a single peer. This assumption breaks with PeerDAS, where we request custody columns to N peers.

Issues with current unstable:

  • Peer prioritization counts batch requests per peer. This accounting is broken now, data columns by range request are not accounted
  • Peer selection for data columns by range ignores the set of peers on a syncing chain, instead draws from the global pool of peers
  • The implementation is very strict when we have no peers to request from. After PeerDAS this case is very common and we want to be flexible or easy and handle that case better than just hard failing everything.

Proposed Changes

  • Upstream peer prioritization to the network context, it knows exactly how many active requests a peer (including columns by range)
  • Upstream peer selection to the network context, now block_components_by_range_request gets a set of peers to choose from instead of a single peer. If it can't find a peer, it returns the error RpcRequestSendError::NoPeer
  • Range sync and backfill sync handle RpcRequestSendError::NoPeer explicitly
    • Range sync: leaves the batch in AwaitingDownload state and does nothing. TODO: we should have some mechanism to fail the chain if it's stale for too long - EDIT: Not done in this PR
    • Backfill sync: pauses the sync until another peer joins - EDIT: Same logic as unstable

TODOs

  • Add tests :)
  • Manually test backfill sync

Note: this touches the mainnet path!

@dapplion dapplion requested a review from jxs as a code owner February 6, 2025 05:16
@dapplion dapplion added ready-for-review The code is ready for review syncing das Data Availability Sampling labels Feb 6, 2025
@dapplion dapplion requested a review from jimmygchen February 6, 2025 05:19
@dapplion
Copy link
Collaborator Author

dapplion commented Feb 6, 2025

I would like to wait to merge this PR first to have more test coverage

@dapplion
Copy link
Collaborator Author

dapplion commented Feb 6, 2025

@jimmygchen I have reduced the scope of this PR. I intended to deprecate the check good_peers_on_sampling_subnets in this PR but it's a very sensitive change. I left that logic untouched, what we do now is:

  • Check if good_peers_on_sampling_subnets
    • If no, don't create batch
    • If yes, create batch and send it
      • If we don't have enough custody peers, error and drop chain

In the future we can deprecate the good_peers_on_sampling_subnets check by allowing batches to remain in AwaitingDownload state. It's essentially duplicate code as we check for peer twice. It should make sync less likely to drop chains too, like we did in lookup sync by allowing batches to be peer-less for some time.

I added a TODO(das) to tackle in another PR

// TODO(das): Handle the NoPeer case explicitly and don't drop the batch. For
// sync to work properly it must be okay to have "stalled" batches in
// AwaitingDownload state. Currently it will error with invalid state if
// that happens. Sync manager must periodicatlly prune stalled batches like
// we do for lookup sync. Then we can deprecate the redundant
// `good_peers_on_sampling_subnets` checks.

mergify bot pushed a commit that referenced this pull request Feb 11, 2025
Currently we track a key metric `PEERS_PER_COLUMN_SUBNET` in a getter `good_peers_on_sampling_subnets`. Another PR #6922 deletes that function, so we have to move the metric anyway. This PR moves that metric computation to the metrics spawned task which is refreshed every 5 seconds.

I also added a few more useful metrics. The total set and intended usage is:

- `sync_peers_per_column_subnet`: Track health of overall subnets in your node
- `sync_peers_per_custody_column_subnet`: Track health of the subnets your node needs. We should track this metric closely in our dashboards with a heatmap and bar plot
- ~~`sync_column_subnets_with_zero_peers`: Is equivalent to the Grafana query `count(sync_peers_per_column_subnet == 0) by (instance)`. We may prefer to skip it, but I believe it's the most important metric as if `sync_column_subnets_with_zero_peers > 0` your node stalls.~~
- ~~`sync_custody_column_subnets_with_zero_peers`: `count(sync_peers_per_custody_column_subnet == 0) by (instance)`~~
pawanjay176 pushed a commit to pawanjay176/lighthouse that referenced this pull request Feb 21, 2025
Currently we track a key metric `PEERS_PER_COLUMN_SUBNET` in a getter `good_peers_on_sampling_subnets`. Another PR sigp#6922 deletes that function, so we have to move the metric anyway. This PR moves that metric computation to the metrics spawned task which is refreshed every 5 seconds.

I also added a few more useful metrics. The total set and intended usage is:

- `sync_peers_per_column_subnet`: Track health of overall subnets in your node
- `sync_peers_per_custody_column_subnet`: Track health of the subnets your node needs. We should track this metric closely in our dashboards with a heatmap and bar plot
- ~~`sync_column_subnets_with_zero_peers`: Is equivalent to the Grafana query `count(sync_peers_per_column_subnet == 0) by (instance)`. We may prefer to skip it, but I believe it's the most important metric as if `sync_column_subnets_with_zero_peers > 0` your node stalls.~~
- ~~`sync_custody_column_subnets_with_zero_peers`: `count(sync_peers_per_custody_column_subnet == 0) by (instance)`~~
eserilev pushed a commit to eserilev/lighthouse that referenced this pull request Mar 5, 2025
Currently we track a key metric `PEERS_PER_COLUMN_SUBNET` in a getter `good_peers_on_sampling_subnets`. Another PR sigp#6922 deletes that function, so we have to move the metric anyway. This PR moves that metric computation to the metrics spawned task which is refreshed every 5 seconds.

I also added a few more useful metrics. The total set and intended usage is:

- `sync_peers_per_column_subnet`: Track health of overall subnets in your node
- `sync_peers_per_custody_column_subnet`: Track health of the subnets your node needs. We should track this metric closely in our dashboards with a heatmap and bar plot
- ~~`sync_column_subnets_with_zero_peers`: Is equivalent to the Grafana query `count(sync_peers_per_column_subnet == 0) by (instance)`. We may prefer to skip it, but I believe it's the most important metric as if `sync_column_subnets_with_zero_peers > 0` your node stalls.~~
- ~~`sync_custody_column_subnets_with_zero_peers`: `count(sync_peers_per_custody_column_subnet == 0) by (instance)`~~
@mergify
Copy link

mergify bot commented Mar 12, 2025

This pull request has merge conflicts. Could you please resolve them @dapplion? 🙏

@jimmygchen jimmygchen requested a review from Copilot April 9, 2025 04:16

This comment was marked as outdated.

@pawanjay176 pawanjay176 added the under-review A reviewer has only partially completed a review. label Apr 30, 2025
@jimmygchen jimmygchen changed the base branch from unstable to peerdas-devnet-6 May 1, 2025 02:22
@jimmygchen
Copy link
Member

@dapplion @pawanjay176 as discussed, we need more testing on this PR, but would like to avoid having too many sync branches. Once this is reviewed, we can merge this to peerdas-devnet-6 branch for testing all the sync fixes together.

I've updated the base branch for this PR.

@jimmygchen jimmygchen requested a review from Copilot May 1, 2025 02:24
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR refactors peer selection and request handling for both range and backfill syncs to support PeerDAS while improving error handling and load balancing. The changes include updates to peer management and removal in range sync, refactoring of batch state transitions and error handling, and modifications to the network context to select peers based on active request counts.

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
beacon_node/network/src/sync/range_sync/range.rs Removed the network argument from remove_peer callbacks.
beacon_node/network/src/sync/range_sync/chain.rs Refactored peer removal, updated batch removal and download completion APIs.
beacon_node/network/src/sync/range_sync/batch.rs Updated BatchInfo state variants and renamed current_peer to processing_peer.
beacon_node/network/src/sync/network_context/requests.rs Added helper method to iterate over active request peers.
beacon_node/network/src/sync/network_context/custody.rs Renamed error variant from NoPeers to NoPeer for consistency.
beacon_node/network/src/sync/network_context.rs Modified peer selection logic for block components requests using active request counts.
beacon_node/network/src/sync/manager.rs Updated backfill sync peer disconnect handling.
beacon_node/network/src/sync/backfill_sync/mod.rs Refactored backfill sync to remove active request tracking and update retry logic.
beacon_node/lighthouse_network/src/types/globals.rs Introduced a helper to verify custody peer membership.
Comments suppressed due to low confidence (1)

beacon_node/network/src/sync/backfill_sync/mod.rs:652

  • [nitpick] Consider resolving the TODO regarding penalizing custody column peers to ensure all relevant peers are consistently handled during backfill sync.
// TODO(das): `participating_peers` only includes block peers. Should we penalize the custody column peers too?

@sigp sigp deleted a comment from Copilot AI May 1, 2025
@jimmygchen
Copy link
Member

I still can't figure out why the tests are failing, seems like adding peers doesn't cause a new chain to be created.
I think we'll need this PR to prevent Lighthouse from requesting from peers that are either out of sync or not on the same chain.

@dapplion
Copy link
Collaborator Author

dapplion commented May 3, 2025

Fixed the test by requesting peers from the global peer pool, only synced peers. To request from the SyncingChain pool of peers we need more tweaks that we should do in another PR

@dapplion dapplion requested a review from jimmygchen May 3, 2025 00:30
Copy link
Member

@jimmygchen jimmygchen left a comment

Choose a reason for hiding this comment

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

Changes look good to me.
I'll start testing this while waiting for Pawan's review.

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.
I like the direction of moving the peer selection to the network context. I have tested this in the mainnet context and found no issues.
I haven't tested this yet on a peerdas network yet.

Given that we still have a bunch of todos wrt the attribution, I think it might be a good idea to have a peerdas-syncing branch that we merge all sync improvements to and test extensively before merging it back to unstable.
The new branch is only meant as a testing branch for all sync improvements so we still review properly before merging into it.
cc @dapplion @jimmygchen what do you guys think?

@jimmygchen
Copy link
Member

LGTM. I like the direction of moving the peer selection to the network context. I have tested this in the mainnet context and found no issues. I haven't tested this yet on a peerdas network yet.

Given that we still have a bunch of todos wrt the attribution, I think it might be a good idea to have a peerdas-syncing branch that we merge all sync improvements to and test extensively before merging it back to unstable. The new branch is only meant as a testing branch for all sync improvements so we still review properly before merging into it. cc @dapplion @jimmygchen what do you guys think?

Yeah sounds good to me. I can also confirm this works fine with mainnet. I synced a node from scratch and it completed backfill successfully.

I haven't been able to get it to work under PeerDAS though. I'll check the logs to confirm we haven't broke anything there.

@jimmygchen jimmygchen changed the base branch from peerdas-devnet-6 to unstable May 5, 2025 23:12
@jimmygchen
Copy link
Member

I couldn't get sync to work on a local devnet, seems to be getting stuck due to metadata being acquired after peer is added to chain:

May 06 06:03:14.963 DEBUG Syncing new finalized chain                   id: 1, component: "range_sync"
May 06 06:03:14.963 DEBUG Waiting for peers to be available on sampling column subnets chain: 1service: "range_sync"
May 06 06:03:14.968 DEBUG Finalization sync peer joined                 peer_id: 16Uiu2HAmFWoqu6Y2EFTWzuZtdoupagnacQunLH2HoAkzT8ZuDi9y, component: "range_sync"
May 06 06:03:14.968 DEBUG Adding peer to known chain                    peer_id: 16Uiu2HAmFWoqu6Y2EFTWzuZtdoupagnacQunLH2HoAkzT8ZuDi9y, sync_type: Finalized, id: 1, component: "range_sync"
May 06 06:03:14.968 DEBUG Waiting for peers to be available on sampling column subnets chain: 1service: "range_sync"
May 06 06:03:14.968 DEBUG Waiting for peers to be available on sampling column subnets chain: 1service: "range_sync"
May 06 06:03:14.973 DEBUG Waiting for peers to be available on sampling column subnets chain: 1service: "range_sync"

I'm going to try revive #6975 and retest again.

@jimmygchen jimmygchen removed the waiting-on-author The reviewer has suggested changes and awaits thier implementation. label May 6, 2025
@jimmygchen
Copy link
Member

Confirm this works on peerdas devnet too with #6975. Merging this now.

@jimmygchen jimmygchen added ready-for-merge This PR is ready to merge. and removed under-review A reviewer has only partially completed a review. labels May 7, 2025
mergify bot added a commit that referenced this pull request May 7, 2025
@mergify mergify bot merged commit beb0ce6 into sigp:unstable May 7, 2025
31 checks passed
mergify bot pushed a commit that referenced this pull request Sep 18, 2025
Output for 7.1.0 release:

```
#   Commit SHA    PR Number    Has backwards-incompat Label    PR Title
---  ------------  -----------  ------------------------------  --------------------------------------------
1    d5a03c9  6872         False                           Add more range sync tests (#6872)
2    ec2fe38  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0-beta.0' into unstable
3    3992d6b  6862         False                           Fix misc PeerDAS todos (#6862)
4    d603881  6928         False                           Add PeerDAS metrics to track subnets without peers (#6928)
5    431dd7c  6917         False                           Remove un-used batch sync error condition (#6917)
6    0055af5  6932         False                           Unsubscribe blob topics at Fulu fork (#6932)
7    6ab6eae  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0-beta.0' into unstable
8    193061f  6634         False                           Use RpcSend on RPC::self_limiter::ready_requests (#6634)
9    e5e43ec  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
10   b4be514  7012         False                           Add spamoor_blob in network_params.yaml (#7012)
11   01df433  7021         False                           update codeowners, to be more specific (#7021)
12   60964fc  6829         False                           Expose blst internals (#6829)
13   3fab6a2  6866         False                           Block availability data enum (#6866)
14   6e11bdd  6947         False                           feat: adds CLI flags to delay publishing for edge case testing on PeerDAS devnets (#6947)
15   454c7d0  7017         False                           Remove LC server config from HTTP API (#7017)
16   54b4150  7030         False                           Add test flag to override `SYNC_TOLERANCE_EPOCHS` for range sync testing (#7030)
17   cf4104a  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
18   8a77252  7034         False                           Cache validator registration only after successful publish (#7034)
19   1235d44  7048         False                           Remove `watch` (#7048)
20   3bc5f1f  7081         False                           Validator Registration ssz support (#7081)
21   b4e79ed  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
22   8d1abce  6915         False                           Bump SSZ version for larger bitfield `SmallVec` (#6915)
23   1916a2a  7020         False                           chore: update to rust-eth-kzg to 0.5.4 (#7020)
24   1a08e6f  7109         False                           Remove duplicate sync_tolerance_epochs config (#7109)
25   f23f984  7057         False                           switch to upstream gossipsub (#7057)
26   d60c24e  6339         True                            Integrate tracing (#6339)
27   a6bdc47  6991         False                           Log range sync download errors (#6991)
28   574b204  6680         False                           decouple `eth2` from `store` and `lighthouse_network` (#6680)
29   c095a0a  7130         False                           update gossipsub to the latest upstream revision (#7130)
30   5cda164  7137         False                           Log `file appender` initialization errors properly (#7137)
31   d96123b  7149         False                           Remove unnecessary `filter_layer` in logger builder (#7149)
32   a1b1d7a  7150         False                           Remove `discv5` logs from logfile output (#7150)
33   ca23765  6998         False                           Track request IDs in RangeBlockComponentsRequest (#6998)
34   d323699  7183         False                           Add missing `osaka-time` lcli param (#7183)
35   cbf1c04  -            -                               [NO PR MATCH]: resolve merge conflicts between untstable and release-v7.0.0
36   2f37bf4  -            -                               [NO PR MATCH]: Fix more merge conflicts between unstable and release-v7.0.0
37   3f6c11d  6995         False                           Some updates to Lighthouse book (#6995)
38   9dce729  7182         False                           Ensure sqlite and rusqlite are optional in `consensus/types` (#7182)
39   6f31d44  7033         False                           Remove CGC from data_availability checker (#7033)
40   ca8eaea  7169         True                            Remove `crit` as an option from the CLI entirely (#7169)
41   bde0f1e  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0' into unstable
42   fb7ec0d  7112         False                           Change `genesis-state-url-timeout` (#7112)
43   4839ed6  7168         False                           Tracing cleanup (#7168)
44   578db67  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/release-v7.0.0' into backmerge-apr-2
45   80626e5  7244         False                           Attempt to fix flaky network tests (#7244)
46   d6cd049  7238         False                           RPC RequestId Cleanup (#7238)
47   0e6da0f  -            -                               [NO PR MATCH]: Merge branch 'release-v7.0.0' into v7-backmerge
48   57abffc  7240         False                           Disable log color when running in non-interactive mode (#7240)
49   6a75f24  7188         False                           Fix the `getBlobs` metric and ensure it is recorded promptly to prevent miscounts (#7188)
50   7cc64ca  6990         False                           Add missing error log and remove redundant id field from lookup logs (#6990)
51   591fb7d  -            -                               [NO PR MATCH]: Merge branch 'release-v7.0.0' into backmerge-for-openssl
52   e77fb01  7265         False                           Remove CLI conflict for secrets-dir and datadir (#7265)
53   b5d40e3  7256         False                           Align logs (#7256)
54   70850fe  6744         True                            Drop head tracker for summaries DAG (#6744)
55   47a85cd  7269         False                           Bump version to v7.1.0-beta.0 (not a release) (#7269)
56   e924264  7258         False                           Fullnodes to publish data columns from EL `getBlobs` (#7258)
57   759b061  7117         False                           Offloading KZG Proof Computation from the beacon node (#7117)
58   d96b731  7192         False                           Fix for #6296: Deterministic RNG in peer DAS publish block tests (#7192)
59   39eb814  -            -                               [NO PR MATCH]: Merge branch 'release-v7.0.0' into unstable
60   70f8ab9  7309         False                           Add riscv64 build support (#7309)
61   be68dd2  7281         False                           Fix wrong custody column count for lookup blocks (#7281)
62   08882c6  6996         False                           Fix execution engine integration tests with latest geth version (#6996)
63   476f3a5  7161         False                           Add `MAX_BLOBS_PER_BLOCK_FULU` config (#7161)
64   c32569a  7225         False                           Restore HTTP API logging and add more metrics (#7225)
65   410af7c  7279         False                           feat: update mainnet bootnodes (#7279)
66   80fe133  7280         False                           Update Lighthouse Book for Electra features (#7280)
67   9f4b0cd  7343         False                           Fix Kurtosis doppelganger CI (#7343)
68   e61e92b  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/stable' into unstable
69   5527125  7340         False                           Fix GitHub releases page looks bad in GitHub dark theme (#7340)
70   c13e069  7324         False                           Revise logging when `queue is full` (#7324)
71   1dd3704  7346         False                           Enable cross-compiling for riscv64 architecture (#7346)
72   402a81c  7350         False                           Fix Kurtosis testnet (#7350)
73   1324d3d  5923         False                           Delayed RPC Send Using Tokens (#5923)
74   6fad186  6747         False                           feat: presign for validator account (#6747)
75   2e2b0d2  7351         False                           Revise consolidation info in Lighthouse book (#7351)
76   63a10ea  6956         True                            Changing `boot_enr.yaml` to expect `bootstap_nodes.yaml` for pectra devnet  (#6956)
77   34a6c3a  6897         True                            vc: increase default gas limit (#6897)
78   94ccd76  6653         False                           Add documentation for VC API `/lighthouse/beacon/health` (#6653)
79   9779b4b  7326         False                           Optimize `validate_data_columns` (#7326)
80   93ec9df  7304         False                           Compute proposer shuffling only once in gossip verification (#7304)
81   2aa5d5c  7359         False                           Make sure to log SyncingChain ID (#7359)
82   c8224c8  7387         False                           docs: fix broken link to voluntary exit guide (#7387)
83   43c38a6  7378         False                           Change slog to tracing in comments (#7378)
84   beb0ce6  6922         False                           Make range sync peer loadbalancing PeerDAS-friendly (#6922)
85   3d92e36  6705         False                           Modularize validator store (#6705)
86   058dae0  7405         False                           Add requires --http when using vc subcommands --http-port (#7405)
87   0f13029  7409         False                           Don't publish data columns reconstructed from RPC columns to the gossip network (#7409)
88   8dc3d23  7400         False                           Add a default timeout to all `BeaconNodeHttpClient` requests (#7400)
89   e90fcbe  7416         False                           Add ARM binary for macOS in release (#7416)
90   4b9c16f  7199         False                           Add Electra forks to basic sim tests (#7199)
91   a497ec6  6975         False                           Retry custody requests after peer metadata updates (#6975)
92   e0c1f27  7394         False                           simulator: Persist beacon logs (#7394)
93   92391cd  7284         False                           update gossipsub to the latest upstream revision (#7284)
94   5933901  7399         False                           `peerdas-devnet-7`: update `DataColumnSidecarsByRoot` request to use `DataColumnsByRootIdentifier` (#7399)
95   5b25a48  7404         False                           Siren installation improvement (#7404)
96   e051c7c  7396         False                           Siren Pectra Feature Updates (#7396)
97   0a91798  7370         False                           impl test random for some types (#7370)
98   807848b  7443         False                           Next sync committee branch bug (#7443)
99   851ee2b  7454         False                           Extract get_domain for VoluntaryExit (#7454)
100  c2c7fb8  7460         False                           Make DAG construction more permissive (#7460)
101  b1138c2  7451         False                           Add additional mergify rules to automate triaging (#7451)
102  cc6ae9d  7463         False                           Fix mergify infinite loop. (#7463)
103  1853d83  7458         False                           Added E::slots_per_epoch() to deneb time calculation (#7458)
104  c4182e3  7433         False                           simulator: Write dependency logs to separate files (#7433)
105  e0ee148  7470         False                           Prevent mergify from updating labels while CI is still running. (#7470)
106  e21198c  7472         False                           One more attempt to fix mergify condition. (#7472)
107  268809a  7471         False                           Rust clippy 1.87 lint fixes (#7471)
108  b051a5d  7469         False                           Delete `at-most` in `lighthouse vm create` (#7469)
109  1d27855  7369         False                           impl from hash256 for `ExecutionBlockHash` (#7369)
110  23ad833  7417         False                           Change default EngineState to online (#7417)
111  fcfcbf9  7481         False                           Update mdlint to disable descriptive-link-text (#7481)
112  7684d1f  7372         False                           ContextDeserialize and Beacon API Improvements (#7372)
113  5393d33  7411         False                           Silence `Uninitialized` warn log on start-up (#7411)
114  1e6cdeb  6799         False                           feat: Add docker reproducible builds (#6799)
115  50dbfdf  7455         False                           Some updates to Lighthouse book (#7455)
116  af87135  7484         False                           Move MD059 rule to configuration file (#7484)
117  805c2dc  5047         False                           Correct reward denominator in op pool (#5047)
118  7e2df6b  7474         False                           Empty list `[]` to return all validators balances (#7474)
119  f06d1d0  7495         False                           Fix blob download from checkpointz servers (#7495)
120  0688932  7497         False                           Pass blobs into `ValidatorStore::sign_block` (#7497)
121  e29b607  7427         False                           Move notifier and latency service to `validator_services` (#7427)
122  7759cb8  7494         False                           Update mergify rule to not evaluate PRs that are not ready for review - to reduce noise and avoid updating stale PRs. (#7494)
123  2e96e97  7507         False                           Use slice.is_sorted now that it's stable (#7507)
124  a8035d7  7506         False                           Enable stdout logging in rpc_tests (#7506)
125  817f14c  7500         False                           Send execution_requests in fulu (#7500)
126  537fc5b  7459         False                           Revive network-test logs files in CI (#7459)
127  cf0f959  7180         False                           Improve log readability during rpc_tests (#7180)
128  ce8d081  7246         False                           Ensure logfile permissions are maintained after rotation (#7246)
129  6af8c18  7052         False                           Publish EL Info in Metrics (#7052)
130  a2797d4  7512         False                           Fix formatting errors from cargo-sort (#7512)
131  f01dc55  7505         False                           Update `engine_getBlobsV2` response type and add `getBlobsV2` tests (#7505)
132  e6ef644  7493         False                           Verify `getBlobsV2` response and avoid reprocessing imported data columns (#7493)
133  7c89b97  7382         False                           Handle attestation validation errors (#7382)
134  8dde5bd  -            -                               [NO PR MATCH]: Update mergify rules so that I can add `waiting-on-author` on a PR that's passing CI. Remove noisy comments.
135  8989ef8  7025         False                           Enable arithmetic lint in rate-limiter (#7025)
136  b7fc034  -            -                               [NO PR MATCH]: Fix condition
137  9e9c51b  -            -                               [NO PR MATCH]: Remove redundant `and`
138  999b045  -            -                               [NO PR MATCH]: Merge pull request #7525 from jimmygchen/mergify-again
139  0ddf9a9  7332         False                           Remove support for database migrations prior to schema version v22 (#7332)
140  5cda6a6  7522         False                           Mitigate flakiness in test_delayed_rpc_response (#7522)
141  4d21846  7533         False                           Prevent `AvailabilityCheckError` when there's no new custody columns to import (#7533)
142  39744df  7393         False                           simulator: Fix `Failed to initialize dependency logging` (#7393)
143  38a5f33  7529         False                           Add `console-subscriber` feature for debugging (#7529)
144  886ceb7  6882         False                           Run Assertoor tests in CI (#6882)
145  94a1446  7541         False                           Fix unexpected blob error and duplicate import in fetch blobs (#7541)
146  ae30480  7521         False                           Implement EIP-7892 BPO hardforks (#7521)
147  f67068e  7518         False                           Update `staking-deposit-cli` to `ethstaker-deposit-cli` (#7518)
148  cd83d8d  7544         False                           Add a name to the Tokio task (#7544)
149  357a8cc  7549         False                           Checkpoint sync without the blobs from Fulu (#7549)
150  2d9fc34  7540         False                           Fulu EF tests v1.6.0-alpha.0 (#7540)
151  dcee76c  7548         False                           Update key generation in validator manager (#7548)
152  9a49720  7530         False                           Add e2e sync tests to CI (#7530)
153  d457cee  7118         False                           Don't create child lookup if parent is faulty (#7118)
154  2f807e2  7538         False                           Add support for nightly tests (#7538)
155  e098f66  7570         False                           Update kurtosis config and EL images (#7570)
156  b2e8b67  7566         False                           Reduce number of basic sim test nodes from 7 to 4 (#7566)
157  170cd0f  7579         False                           Store the libp2p/discv5 logs when stopping local-testnet (#7579)
158  b08d49c  7559         False                           Changes for `fusaka-devnet-1` (#7559)
159  8c6abc0  7574         False                           Optimise parallelism in compute cells operations by zipping first (#7574)
160  7416d06  7561         False                           Add genesis sync test to CI (#7561)
161  076a1c3  7587         False                           Data column sidecar event (#7587)
162  5f208bb  7578         True                            Implement basic validator custody framework (no backfill) (#7578)
163  9803d69  7590         False                           Implement status v2 version (#7590)
164  5472cb8  7582         False                           Batch verify KZG proofs for getBlobsV2 (#7582)
165  a65f782  7594         False                           Drop stale registrations without reducing CGC (#7594)
166  ccd99c1  7588         False                           Wait before column reconstruction (#7588)
167  dc5f5af  7595         False                           Fix flaky test_rpc_block_reprocessing (#7595)
168  4fc0665  7592         False                           Add more context to Late Block Re-orgs (#7592)
169  6135f41  7591         False                           Add data columns sidecars debug beacon API (#7591)
170  3d2d65b  7593         False                           Advertise `--advertise-false-custody-group-count` for testing PeerDAS (#7593)
171  6786b9d  7444         True                            Single attestation "Full" implementation (#7444)
172  dd98534  6750         True                            Hierarchical state diffs in hot DB (#6750)
173  f67084a  7437         False                           Remove reprocess channel (#7437)
174  d509246  7620         False                           Remove instrumenting log level (#7620)
175  11bcccb  7133         True                            Remove all prod eth1 related code (#7133)
176  e34a9a0  6551         False                           Allow the `--beacon-nodes` list to be updated at runtime (#6551)
177  3fefda6  7611         False                           Send byrange responses in the correct requested range (#7611)
178  cef04ee  7462         False                           Implement `validator_identities` Beacon API endpoint (#7462)
179  fd643c3  7632         False                           Un-ignore EF test for v1.6.0-alpha.1 (#7632)
180  56b2d4b  7636         False                           Remove instrumenting log level  (#7636)
181  8e3c5d1  7644         False                           Rust 1.89 compiler lint fix (#7644)
182  a0a6b93  7551         False                           Do not compute sync selection proofs for the sync duty at the current slot (#7551)
183  9b1f3ed  7652         False                           Add gossip check (#7652)
184  83cad25  7657         False                           Fix Rust 1.88 clippy errors & execution engine tests (#7657)
185  522e00f  7656         False                           Fix incorrect `waker` update condition (#7656)
186  6ea5f14  7597         False                           feat: better error message for light_client/bootstrap endpoint (#7597)
187  2d759f7  6576         False                           Fix beacon_chain metrics descriptions (#6576)
188  6be646c  7666         True                            Bump DB schema to v25 (#7666)
189  e45ba84  7673         False                           Increase http client default timeout to 2s in `http-api` tests. (#7673)
190  25ea8a8  7667         False                           Add Michael as codeowner for store crate (#7667)
191  c1f94d9  7669         False                           Test database schema stability (#7669)
192  257d270  6612         False                           Add voluntary exit via validator manager (#6612)
193  e305cb1  7661         True                            Custody persist fix (#7661)
194  41742ce  7683         False                           Update `SAMPLES_PER_SLOT` to be number of custody groups instead of data columns (#7683)
195  69c9c70  7681         False                           Use prepare_beacon_proposer endpoint for validator custody registration (#7681)
196  fcc602a  7646         False                           Update fulu network configs and add `MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS` (#7646)
197  a459a9a  7689         False                           Fix and test checkpoint sync from genesis (#7689)
198  b35854b  7692         False                           Record v2 beacon blocks http api metrics separately (#7692)
199  c7bb3b0  7693         False                           Fix lookups of the block at `oldest_block_slot` (#7693)
200  0f895f3  7695         False                           Bump default gas limit (#7695)
201  56485cc  7707         False                           Remove unneeded spans that caused debug logs to appear when level is set to `info` (#7707)
202  bd8a2a8  7023         False                           Gossip recently computed light client data (#7023)
203  7b2f138  -            -                               [NO PR MATCH]: Merge remote-tracking branch 'origin/stable' into release-v7.1.0
204  8e55684  7723         False                           Reintroduce `--logfile` with deprecation warning (#7723)
205  8b5ccac  7663         False                           Error from RPC `send_response` when request doesn't exist on the active inbound requests (#7663)
206  cfb1f73  7609         False                           Release v7.1.0 (#7609)
```


  


Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

das Data Availability Sampling ready-for-merge This PR is ready to merge. syncing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants