-
-
Notifications
You must be signed in to change notification settings - Fork 372
feat: implement peerDAS on fulu #6353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
g11tech
wants to merge
74
commits into
unstable
Choose a base branch
from
peerDAS
base: unstable
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+8,880
−5,494
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fc1990a
to
9014c8c
Compare
488d853
to
4e98a4a
Compare
8a4f66e
to
473a04f
Compare
Performance Report✔️ no performance regression detected Full benchmark results
|
5fbbdb2
to
81aaeb5
Compare
matthewkeil
reviewed
Sep 17, 2024
commit e8bc729 Author: Matthew Keil <[email protected]> Date: Tue Dec 3 10:08:30 2024 -0500 refactor: peerdas types (#7243) * refactor: organize peerDAS types * refactor: DataColumnsData * refactor: rename BlockInputBlobs BlockInputColumnData * refactor: split up and rename BlockInputData * refactor: clean up BlobsData * refactor: clean up CachedData types * refactor: change from interface to type and update enum values for grafana * chore: lint * fix: remove extraneous lint fix commit c8075d0 Author: Matthew Keil <[email protected]> Date: Mon Nov 25 15:41:41 2024 +0800 feat: log peer disconnect info (#7231) * feat: log disconnect reason * feat: log peerScore update * fix: pretty print peerId * fix: use prettyPrintPeerId commit 8689c76 Author: Matthew Keil <[email protected]> Date: Tue Oct 22 06:11:13 2024 -0400 feat: check for no commitments on block or column in sidecar validation (#7184) * feat: check for no commitments on block or column in sidecar validation * test: add sanity check for empty blob commitments in column validation * fix: test bug * fix: but in test passing commitments commit fccf9a2 Author: harkamal <[email protected]> Date: Tue Oct 8 12:44:11 2024 +0530 add prevdownload tracker commit 513bccc Author: harkamal <[email protected]> Date: Wed Oct 2 16:46:40 2024 +0530 fix commit 1c08ab3 Author: harkamal <[email protected]> Date: Wed Oct 2 16:40:40 2024 +0530 some fixing of beacon params commit 7c9a01c Author: harkamal <[email protected]> Date: Wed Oct 2 14:58:11 2024 +0530 add debug and fix datacolumns migration and improve log commit b04aaef Author: harkamal <[email protected]> Date: Wed Oct 2 12:52:24 2024 +0530 migrate datacolumns to finalized commit a0e0087 Author: harkamal <[email protected]> Date: Wed Oct 2 00:36:03 2024 +0530 more log commit 2736b8c Author: harkamal <[email protected]> Date: Tue Oct 1 19:43:59 2024 +0530 add enhance datacolumn serving logs commit cce193b Author: harkamal <[email protected]> Date: Tue Oct 1 17:36:14 2024 +0530 improve logging for debugging commit a3de70f Author: harkamal <[email protected]> Date: Thu Sep 26 14:43:49 2024 +0530 turn persisting network identity to default true commit cec27d6 Author: harkamal <[email protected]> Date: Sat Sep 21 22:07:58 2024 +0530 handle edge case commit 6a77828 Author: harkamal <[email protected]> Date: Sat Sep 21 20:33:53 2024 +0530 add debug console log commit 574837a Author: harkamal <[email protected]> Date: Sat Sep 21 18:39:36 2024 +0530 use sample subnets for data availability commit fee7c08 Author: harkamal <[email protected]> Date: Tue Sep 17 16:42:45 2024 +0530 validate inclusion proof commit 20ef4c6 Author: Matthew Keil <[email protected]> Date: Tue Sep 17 05:33:40 2024 -0400 feat: validate data column sidecars (#7073) * feat: update c-kzg to final DAS version * refactor: use trusted-setup from c-kzg package * feat: implement validateDataColumnsSidecars * feat: check block and column commitments match * test: add unit test for validateDataColumnsSidecars * fix: invalid build and update validity condition of validateDataColumnsSidecars * fix: make error messages better * fix: electra vs peerdas type conflict commit b1940ee Author: Matthew Keil <[email protected]> Date: Tue Sep 17 05:26:05 2024 -0400 fix: remove ckzg build script (#7089) * fix: remove unused ckzg build script * fix: remove unused rsync dep from Dockerfile commit bd4f7f9 Author: Matthew Keil <[email protected]> Date: Mon Sep 16 06:31:52 2024 -0400 feat: update ckzg to final DAS version (#7050) * feat: update c-kzg to final DAS version * refactor: use trusted-setup from c-kzg package commit a33303f Author: Matthew Keil <[email protected]> Date: Mon Sep 16 04:08:29 2024 -0400 feat: refactor and unit test getDataColumnSidecars (#7072) * refactor: getDataColumnSidecars * test: unit test getDataColumnSidecars with mocks from c-kzg library * refactor: use fromHex util * chore: update numbering on mocks * chore: update c-kzg to latest version * chore: fix type export syntax * test: add verification for cells from sidecars * test: add verification to DataColumnSidecars tests * refactor: getDataColumnSidecars for PR comments * feat: narrow type and remove unnecessary conditional * fix: getDataColumnSidecars param type * refactor: rename to computeDataColumnSidecars commit 4ec7aff Author: harkamal <[email protected]> Date: Fri Sep 13 18:19:45 2024 +0530 edge case optimization commit 3470076 Author: harkamal <[email protected]> Date: Fri Sep 13 17:31:52 2024 +0530 more debug log commit c4d04ee Author: harkamal <[email protected]> Date: Fri Sep 13 15:35:32 2024 +0530 fix the column id compute commit cdd9bae Author: harkamal <[email protected]> Date: Thu Sep 12 17:04:07 2024 +0530 update compute spec tests commit 2b10e4d Author: harkamal <[email protected]> Date: Thu Sep 12 15:25:00 2024 +0530 datacolumns retrival fix commit 56c8c6e Author: harkamal <[email protected]> Date: Thu Sep 12 13:57:51 2024 +0530 custodied column fetch debugging log commit af933fb Author: harkamal <[email protected]> Date: Wed Sep 11 22:11:16 2024 +0530 some fixes commit 74d8122 Author: harkamal <[email protected]> Date: Wed Sep 11 21:57:41 2024 +0530 add some log for debugging inbound data columns request commit f7571f4 Author: harkamal <[email protected]> Date: Wed Sep 11 17:07:52 2024 +0530 add some more loggig and availaibility tracking commit d35873e Author: harkamal <[email protected]> Date: Wed Sep 11 15:02:31 2024 +0530 further wait till cutoff for all data to be available commit 8c21168 Author: harkamal <[email protected]> Date: Wed Sep 11 00:02:09 2024 +0530 make pull a little less agressive commit de341b5 Author: harkamal <[email protected]> Date: Tue Sep 10 22:21:37 2024 +0530 add send more log commit bd84892 Author: harkamal <[email protected]> Date: Tue Sep 10 22:01:43 2024 +0530 more log commit d7721f8 Author: harkamal <[email protected]> Date: Tue Sep 10 21:19:11 2024 +0530 fix bug commit 5e1de6f Author: harkamal <[email protected]> Date: Tue Sep 10 20:45:05 2024 +0530 trying some fix commit 2bc1a0d Author: harkamal <[email protected]> Date: Tue Sep 10 20:11:05 2024 +0530 add cache tracking commit 387da88 Author: harkamal <[email protected]> Date: Tue Sep 10 19:27:05 2024 +0530 add more log commit aece0ab Author: harkamal <[email protected]> Date: Tue Sep 10 17:46:52 2024 +0530 fix add missing data availability resolutions commit 006e781 Author: harkamal <[email protected]> Date: Sat Sep 7 20:35:00 2024 +0530 add debug log commit bf08852 Author: harkamal <[email protected]> Date: Sat Sep 7 20:08:10 2024 +0530 resolve availability when datacolumns are downloaded and matched commit 2833ac0 Author: harkamal <[email protected]> Date: Thu Sep 5 20:17:04 2024 +0530 make the csc encoding updates as per latest spec commit 585165e Author: harkamal <[email protected]> Date: Wed Aug 28 17:35:31 2024 +0530 remove banning unknown block, addmore log commit a33a72f Author: harkamal <[email protected]> Date: Tue Aug 27 21:59:03 2024 +0530 subnet count 128 commit ae7678e Author: harkamal <[email protected]> Date: Tue Aug 27 21:29:50 2024 +0530 fx commit 4b6f167 Author: harkamal <[email protected]> Date: Tue Aug 27 19:37:37 2024 +0530 fix bug commit 180f7d8 Author: harkamal <[email protected]> Date: Tue Aug 27 18:58:26 2024 +0530 fix log commit 54579b0 Author: harkamal <[email protected]> Date: Tue Aug 27 17:21:07 2024 +0530 add more info for debugging commit a3533f8 Author: harkamal <[email protected]> Date: Tue Aug 27 17:13:41 2024 +0530 add supernode flag to configure node custody requirement and make it not required for validator commit e6c613f Author: harkamal <[email protected]> Date: Tue Aug 27 15:51:20 2024 +0530 rename electra fork to peerdas for rebase and make csc in metadata uint8 commit 81aaeb5 Author: harkamal <[email protected]> Date: Mon Aug 12 15:43:39 2024 +0530 feat: add and use metadatav3 for peer custody subnet fixes for metadata, working locally change the condition to update metadata csc change commit c7f6341 Author: harkamal <[email protected]> Date: Fri Aug 9 17:06:52 2024 +0530 fix the types/test rebase fixes commit a0c5d27 Author: harkamal <[email protected]> Date: Tue Jul 16 18:54:18 2024 +0530 fix: refactor to add and use nodeid computation and clear out nodeid tracking nodeid cleanup for network commit d423004 Author: harkamal <[email protected]> Date: Mon Jul 15 03:12:52 2024 +0530 feat: add the modifications to work with devnet2 some network options to control peering behavior allow setting node custody capability via --params use eip754 names for the peerdas config commit 47eedae Author: harkamal <[email protected]> Date: Sun Jul 14 17:56:59 2024 +0530 feat: get various sync mechanisms working with/without sharded data commit 156ef53 Author: matthewkeil <[email protected]> Date: Fri Jun 21 17:09:44 2024 +0200 fix: docker build issue for c-kzg wip: REPLACE THIS COMMIT commit yarn lock rebase fixes fix: update c-zkg install workflow feat: add trustedSetupPrecompute cli flag fix: update trusted-setup for testing fix: update c-zkg install workflow to remove sudo fix: add rsync to apk deps commit 499d93c Author: harkamal <[email protected]> Date: Wed Jan 24 18:40:25 2024 +0530 feat: implement peerDAS on electra add some presets add further params and types add data column to types repo and network move to max request data columns to preset add the datacolumns data in blockinput and fix breaking errors in seen gossip blockinput handle data columns in gossip and the seengossip further propagate forkaware blockdata and resolve build/type issues further handle datacolumns sync by range by root and forkaware data handling fix issues chore: update c-kzg to peerDas version feat: add peerDas ckzg functions to interface fix the lookups handle the publishing flow various sync try fixes fixes compute blob side car various misl debuggings and fixes debug and apply fixes and get range and by root sync to work will full custody enable syncing with lower custody requirement use node peerid rather than a dummy string get and use the nodeid from enr and correctly compute subnets and column indexes filterout and connect to peers only matching out custody requiremnt try adding custody requirement add protection for subnet calc get the sync working with devnet 0 correctly set the enr with custody subnet info rebase fixes small refactor commit 4805a2e Author: harkamal <[email protected]> Date: Wed Jan 24 17:38:11 2024 +0530 feat: placeholder PR for electra add types stub and epoch config fix types
**Motivation** - we want to have a single CustodyConfig as a preparation for validator custody config work see #7607 (review) - but since we need data on both, I designed to have CustodyConfig created on BeaconChain (main thread) and NetworkCore (network thread) - when we have a change on number of connected validators, need to update both **Description** - on main thread store CustodyConfig on BeaconChain - on network thread, create a wrapped NetworkGlobal to store CustodyConfig and node id there. In the future we can consider storing more data there - add more data to CustodyConfig: sampleGroups, sampledSubnets - use that CustodyConfig everywhere --------- Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** Get a lot of errors like this when running devnet-6 in our nodes ``` debug: Block error slot=640, code=BLOCK_ERROR_BEACON_CHAIN_ERROR, error=blobKzgCommitmentsLen exceeds limit=9 | -- | -- | | 2025-04-13 16:03:35.062 | Error: blobKzgCommitmentsLen exceeds limit=9 ``` **Description** - also log the blobKzgCommitmentsLen to give us more information of the error Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - lodestar does not work on peerdas-devnet-6 ``` verbose: Batch process error id=Finalized, startEpoch=20, status=Processing, code=BLOCK_ERROR_BEACON_CHAIN_ERROR, error=blobKzgCommitmentsLen of 12 exceeds limit=9 ``` **Description** - add and use MAX_BLOBS_PER_BLOCK_FULU Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** add `engine_getBlobsV2` to the execution API in preparation for implementation of [distributed blob publishing](https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#distributed-blob-publishing-using-blobs-retrieved-from-local-execution-layer-client) @dguenther and I wanted to get early feedback on the API change before moving forward with the rest of the implementation **Description** upcoming spec changes will add `engine_getBlobsV2` to the execution API to fetch blobs and cell proofs from the execution layer (ethereum/execution-apis#630) * add `engine_getBlobsV2` to execution API * add type definition for `BlobAndProofV2` **Not included** We'll follow up with additional PR(s) for these as we move forward with distributed blob publishing: * fetch blobs from the EL in two places: on first seen block input gossip and on unknown blocks during syncing * reconstruct blobs from cell proofs * publish data column sidecars on subscribed topics after Relates to #7638 --------- Co-authored-by: Derek Guenther <[email protected]>
**Motivation** @hughy and I have a basic implementation of [validator custody](https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/validator.md) for peerDAS. We're planning to do more testing on this, but would appreciate a review on the architecture since we're still pretty new! This relates to #7632 - If it merges, we'll update our PR to account for it. **Description** * Centralizes custody values like `sampledGroups` and `custodyGroups` into `CustodyConfig`. `CustodyConfig` is now treated as a singleton. * Creates a new `advertisedGroupCount` in `CustodyConfig`, used for the custody group count in the node's metadata/ENR. * Adds `setSamplingGroupCount` and `setAdvertisedGroupCount` to NetworkCore API. Updated by an `EventEmitter` on `CustodyConfig`. * Adds LocalValidatorRegistry to track connected validators. * Updates custody requirement in `chain.onForkChoiceFinalized`. **Not Included** I'll open separate issues for these if we're okay merging this PR without them. * Backfilling groups when the target custody group count increases * Handling changes in other peers' custody group counts * Race conditions around group count changing during syncing <!-- A clear and concise general description of the changes of this PR commits --> <!-- If applicable, add screenshots to help explain your solution --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #7619 --------- Co-authored-by: Hugh Cunningham <[email protected]>
**Motivation** Adds some of the peerDAS beacon metrics from ethereum/beacon-metrics#14. We don't do reconstruction or single-proof verification yet, so not able to add those. cc @KatyaRyazantseva
**Motivation** Running a cluster of three nodes in Kurtosis, was seeing this error before the Fulu fork: ``` [cl-1-lodestar-geth] Error: Request to send to protocol /eth2/beacon_chain/req/metadata/3/ssz_snappy but it has not been declared [cl-1-lodestar-geth] at ReqRespBeaconNode.sendRequest (file:///usr/app/packages/reqresp/lib/ReqResp.js:104:23) ``` The error is because the client is attempting to send Metadatav3 requests. There's a check in the sender that prevents sending messages to versions that the client hasn't registered, and Metadatav3 is not registered until the fork. [The Fulu spec](https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#getmetadata-v3) says to follow the same semantics as Altair, which allows registering the new metadata endpoint before the fork. I think that's a good idea anyway, to allow clients to prioritize peers pre-fork based on their expected custody groups. **Description** * Updates MetadataV3 to always be registered * Updates MetadataV2 to unregister at Fulu fork, like MetadataV1 does at Altair
**Motivation** Add support for [distributed blob publishing](https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#distributed-blob-publishing-using-blobs-retrieved-from-local-execution-layer-client) (When a block or first data column for a block is received, fetch blobs from EL to reconstruct columns, then publish columns to the network). Depends on #7675 -- the last commit contains changes from this branch. Fixes #7638 **Description** * Adds a ColumnReconstructor to Sync that takes a chain and a network * Adds new chain events for dataColumnGossip and blockGossip * When either event is fired and it's the first time a block root is seen, call engine_getBlobsV2 to fetch all blobs/cell proofs in the block. * If received, add them to `seenGossipBlockInput`. Still TODO: Figure out metrics tracking for this. --------- Co-authored-by: matthewkeil <[email protected]>
**Motivation** <!-- Why is this PR exists? What are the goals of the pull request? --> **Description** Configure a CI workflow to automatically publish npm packages and Docker images on push events to any nextfork branches, including the currently active `peerDAS` branch. Closes #issue_number **Steps to test or reproduce** <!--Steps to reproduce the behavior: ```sh git checkout <feature_branch> lodestar beacon --new-flag option1 ``` -->
**Motivation** - we're using noble on peerDAS, need to merge unstable to fix this but got libp2p dial issue there (see #7698) so cherry-pick #7621 to unblock peerDAS **Description** - use the latest `persistent-merkle-tree` and `as-sha256` everywhere Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** <!-- Why is this PR exists? What are the goals of the pull request? --> **Description** <!-- A clear and concise general description of the changes of this PR commits --> <!-- If applicable, add screenshots to help explain your solution --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number **Steps to test or reproduce** <!--Steps to reproduce the behavior: ```sh git checkout <feature_branch> lodestar beacon --new-flag option1 ``` --> --------- Co-authored-by: Derek Guenther <[email protected]>
**Motivation** Not able to sync due to the following errors: ``` Apr-18 07:57:45.931[sync] ^[[36mverbose^[[39m: Batch download error id=Head, startEpoch=1798, status=Downloading, peer=16...YqJeis - Cannot read properties of undefined (reading 'type') TypeError: Cannot read properties of undefined (reading 'type') at matchBlockWithDataColumns (file:///usr/src/lodestar/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRange.ts:330:28) at beaconBlocksMaybeBlobsByRange (file:///usr/src/lodestar/packages/beacon-node/src/network/reqresp/beaconBlocksMaybeBlobsByRange.ts:127:20) at wrapError (file:///usr/src/lodestar/packages/beacon-node/src/util/wrapError.ts:18:32) at SyncChain.sendBatch (file:///usr/src/lodestar/packages/beacon-node/src/sync/range/chain.ts:410:19) ``` ``` Apr-18 08:13:42.983[sync] verbose: Batch download error id=Head, startEpoch=1800, status=Downloading, peer=16...T4qw69 - Unmatched blobSidecars, blocks=0, blobs=96 lastMatchedSlot=-1, pending blobSidecars slots=57602 57602 57602 57602 57602 57602 57602 57602 57608 57608 57608 57608 57608 57608 57608 57608 57609 57609 57609 57609 57609 57609 57609 57609 57610 57610 57610 57610 57610 57610 57610 57610 57612 57612 57612 57612 57612 57612 57612 57612 57615 57615 57615 57615 57615 57615 57615 57615 57616 57616 57616 57616 57616 57616 57616 57616 57617 57617 57617 57617 57617 57617 57617 57617 57620 57620 57620 57620 57620 57620 57620 57620 57625 57625 57625 57625 57625 57625 57625 57625 57627 57627 57627 57627 57627 57627 57627 57627 57631 57631 57631 57631 57631 57631 57631 57631 ``` it happens so many times that prevent my node to sync ``` grep -e "Batch download error id=Head" -rn beacon-2025-04-18.log | grep "blocks=0" | wc -l 9408 ``` **Description** - handle `partialDownload` containing 0 blocks --------- Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - it's not a good idea to track peer count per sampling group because when the node is restarted we have different sampling groups, then the metric will also track sampling groups of prior times. It looks like: <img width="1262" alt="Screenshot 2025-04-18 at 15 42 20" src="https://github.com/user-attachments/assets/da816d46-d8be-4d55-9222-22c2d6b3935a" /> **Description** - track by group index instead so it's consistently from 0 to 7. If we want to know specific groups, it's available in the log, just search for `requestedColumns`, for example Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - fix fetchUnknownBlockRoot **Description** - as confirmed by @g11tech : "probably a debugging artifact, should be restored" Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** implement the same pruning logic used for blob sidecars for data column sidecars **Description** update archiveBlocks to delete data column sidecar data the the node has stored longer than the minimum required epochs add config field MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS
**Motivation** We're currently fetching blobs from the EL as soon as the first block/data column is received, per spec. However, we also should fetch blobs in `unavailableBeaconBlobsByRoot`, like we do in deneb/electra (this gets called about 2.5s into the slot). I added that in this PR, as well as a test. Note that getBlobsV2 will be called prior to every peer reqresp attempted -- as far as I can tell, the behavior is the same behavior with getBlobsV1. **Description** * Made `reconstructColumns` a generalized function: `getDataColumnsFromExecution` * Added a test that mocks blobs returned from the EL
**Motivation** The MetadataController currently sets CGC on the ENR in two cases: * When the node is first started after the Fulu epoch * Any time `setAdvertisedGroupCount` is called We should at least ensure CGC is set when crossing the Fulu fork boundary so that nodes are aware of our CGC (for example, if we're set as a supernode, nodes would currently assume we only custody 4 columns). Additionally, I think we should have CGC available prior to the fork boundary in case nodes want to use it to prioritize peers before the fork. We already do this for Metadata by making the MetadataV3 endpoint available prior to the fork. <!-- Why is this PR exists? What are the goals of the pull request? --> **Description** * Removes the condition around CGC in the upstreamValues function so that CGC is sent to ENR regardless of the epoch at node start. * Adds a test to make sure CGC is always set by upstreamValues
**Motivation** The data column sidecar gossip validation didn't match the spec, so updated it to cover all cases: https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#data_column_sidecar_subnet_id **Description** * Also renamed `index` to `subnet` when used for gossip topics, to distinguish between that and column indexes. --------- Co-authored-by: matthewkeil <[email protected]>
**Motivation** When the CGC was changed in MetadataController, `onSetValue` was being called with the previous CGC rather than the new one. **Description** * Breaks out CGC serialization into a util and adds tests * Adds test for updating metadatacontroller CGC * Updates MetadataController CGC setter to call onSetValue with new CGC instead of existing value --------- Co-authored-by: matthewkeil <[email protected]>
**Motivation** Updates the minimum epoch check in `dataColumnSidecarsByRoot` to match the spec. Co-authored-by: matthewkeil <[email protected]>
**Motivation** Uses cell proofs from EL `getPayloadsV5` to offload cell proof construction Refer to [EIP-7594 spec](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7594.md#networking) for more on requiring blob transaction senders to compute cell proofs. [Pending spec changes](https://github.com/ethereum/execution-apis/blob/cad4194e3fa37359a1be95e4aad2752d69691077/src/engine/osaka.md#engine_getpayloadv5) define updates for `getPayloadsV5` in the execution engine API **Description** * add engine_getPayloadV5 to engine API * avoid computing cell proofs in computeDataColumnSidecars * rename CELLS_PER_BLOB to CELLS_PER_EXT_BLOB to match spec * update sszTypes for Fulu BlockContents, SignedBlockContents Closes #7669 **Other notes** * implement blobsBundle validation I've added a validation function for validating `BlobsBundleV2` by computing cells and batch verifying the cell proofs, but don't currently call this function. We could validate this data on receiving responses from the EL or when producing the block body, but we might consider data from the EL trustworthy and skip costly verification. --------- Co-authored-by: Matthew Keil <[email protected]> Co-authored-by: matthewkeil <[email protected]>
**Motivation** we should not update advertised CGC until we have backfilled groups. backfill not yet implemented
) **Motivation** I was updating the beacon API to include custody group count when I noticed that the metadata field should be named `custody_group_count`, not `cgc` (unlike the ENR). * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#metadata * https://github.com/ethereum/beacon-APIs/blob/2b1d7b5ac4756881bd29e7adacc9b7032343d981/types/p2p.yaml#L39 <!-- Why is this PR exists? What are the goals of the pull request? --> **Description** * Updated `/eth/v1/node/identity` to return Fulu metadata * Renamed `cgc` to `custodyGroupCount` in Metadata --------- Co-authored-by: Nico Flaig <[email protected]>
**Motivation** phase0 spec states that `seq_number` should be incremented by 1 whenever any other field in metadata changes: https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#metadata **Description** increment seq_number when the metadata cgc field changes
…on (#7733) **Motivation** fix validator custody computation for supernodes **Description** if a node has set NODE_CUSTODy_REQUIREMENT to a higher value than validator custody requires then the node should use NODE_CUSTODY_REQUIREMENT to determine the number of groups to custody. for example, if a node is running as a supernode, then it should require all groups even if its validator balances don't require it compute validators custody requirement as the max of NODE_CUSTODY_REQUIREMENT and the requirement computed from validator balances **Steps to test or reproduce** run added unit test in `packages/beacon-node/test/unit/util/dataColumn.test.ts`
**Motivation** - right now we cannot sync hoodi using `peerDAS`, this PR fixes it **Description** - when `archiveBlocks` if data is out of `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS`, no need to archive blobs/data columns Closes #7754 <img width="1677" alt="Screenshot 2025-04-29 at 09 19 09" src="https://github.com/user-attachments/assets/93b8cb5c-f8ca-42ec-99c2-c81aae3e3004" /> --------- Co-authored-by: Tuyen Nguyen <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
implement :
lighthouse impl for reference: