-
-
Notifications
You must be signed in to change notification settings - Fork 325
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
chore: v1.26.0 release #7423
Merged
Merged
chore: v1.26.0 release #7423
Conversation
This file contains 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
* feat: refactor SeenAttestationDatas for SinlgeAttestation * feat: add SingleAttestation type * feat: ssz utils for SingleAttestation * feat: implement SingleAttestation for network processor and gossip queue * fix: add SingleAttestation for phase0 and altair * fix: define and publish SingleAttestation for all forks * Fix electra SingleAttestation type mapping * Update api and eventstream * Update validator client * Update attestation unit test variables * chore: SeenAttestationDatas unit tests * chore: sszBytes unit tests * Use CommitteeIndex type * refactor: get/set functions of SeenAttestationDatas * Always emit single_attestation event * Validation use new SeenAttDataKey * validateAttestationNoSignatureCheck first draft * Add aggregation and committee bits to cache * AttestationPool accepts SingleAttestation * Update SingleAttestation event stream * Update aggregate validation * Polish * Lint * fix check-types * Remove committee bit cache * Update attestation pool unit tests * Lint * Remove unused committeeBits from attestation data cache * Fix spec reference comment * fix: getSeenAttDataKeyFromSignedAggregateAndProof * Update beacon-api spec tests to run against v3.0.0-alpha.9 --------- Co-authored-by: Nico Flaig <[email protected]> Co-authored-by: NC <[email protected]>
…7256) * fix: select correct gossip type when publishing single attestation * Add SingleAttestation as alias to phase0 ssz types
* fix: remove aggregation bits from seen attestation cache * Allow passing null as aggregationBits to test pre-electra case * Only create aggregationBits once for the first attestation * Avoid second getSingleTrueBit call
…#7261) * fix: return correct type from attestation validation when using cache * Remove type casts * Remove unused import * Use ternary operator instead of if-else * Fix aggregationBits type issue * Add comment
* initial commit * Address comment * Lint
* Rename PartialPendingWithdrawal field * do not change creds type on consolidation * Use validator EB to process pending consolidation * lint
* Fix execution request parsing * lint * Rename type --------- Co-authored-by: Nico Flaig <[email protected]>
…685 (#7330) * test: ensure execution requests are de-/serialized according to EIP-7685 * Fix format * Add test case where deposits, withdrawals and consolidations are all empty * Remove map
* Init * Add reqresp v2 definition * Update validateGossipBlock * Partial commit * Reqresp. Add todos * polish * Fork-aware requestSszTypeByMethod * Fixed minimal constants * Bump config test version * Update blob sidecar subnet computation * Pass proper commitment limit to block gossip error * Update blob sidecar index check * Lint * Update kzg unit test * Subscribe to correct number of blob sidecar subnets * Refactor constants getter to constantsHelper * address comment * Pass fork as first arg * Update packages/state-transition/src/block/processExecutionPayload.ts * refactor: move helper to get max blobs per block to fork config (#7322) * Simplify type cast --------- Co-authored-by: Nico Flaig <[email protected]>
fix: use Bigint for deposit index
chore: skip fulu spec tests
* fix: revert BlobSidecarsByRoot/Range version bump * Remove version check from handler * Remove unused imports
* feat: include reason in block production selection logs * Update comment
* chore: update lighthouse to latest unstable version * Remove unsupported CLI flags * Update to deposit_contract_block.txt * Update to deposit_contract_block.txt for validator
* Remove stale todo * some refactoring * Readd comment, seems somewhat useful * Add alias for getSlotFromOffset * Use parseInt instead of Number * Update return type
* feat: check gas limit in header received from builder * Add constant for gas limit adjustment factor * Relax header gas limit check to lower / upper bound * Include parent and target gas limit in warning log * Add note on why validator pubkey used as key instead of index
…nt (#7368) * fix: use correct fork constants to limit max request blocks/blobs count * Add helper to get max request blob sidecars by fork * Add a more generic getter to fork config * Formatting * Revert "Formatting" This reverts commit 28af071. * Revert "Add a more generic getter to fork config" This reverts commit 40b51d2.
**Motivation** We dropped CJS support 🎉 fixed some file resolution issues causing wrong hasher to be loaded and got some clean named imports for hasher instead of having to dig it out of the libs folder. **Description** Update ssz and accompanying packages to v1.0.0
**Motivation** Loading an incorrect hasher can cause strange regressions in performance which might not be immediately obvious, best to catch this at startup and exit as there is no reason for the beacon node to use any other hasher besides as-sha256 (at least right now). **Description** Assert as-sha256 is used as hasher by ssz
**Motivation** E2E tests are failing due to this **Description** Correctly set ssz hasher in prover CLI
This avoids an issue we had previously where configs that extend mainnet preset would inherit wrong parameters. This just ensures this cannot happen in case we those will be forked after mainnet.
The network is based on devnet-4 specs and it's no longer possible to join it using our latest unstable since we merged devnet-5 changes. For users that still wanna experiment on Mekong it's possible to use our [1.25.0](https://github.com/ChainSafe/lodestar/releases/tag/v1.25.0) release.
Just some cleanup to use multi fork type for `IndexedAttestation` if a function should handle both phase0 and electra.
Run against latest spec, there are a bunch of good new test cases (eg. ethereum/consensus-specs#4090)
**Motivation** We've seen a lot of batch download errors when trying to sync a node from far back on devnet-5 ``` Jan-27 16:07:08.044[sync] verbose: Batch download error id=Finalized, startEpoch=97, status=Downloading - Missing blobSidecars for blockSlot=3104 with blobKzgCommitmentsLen=9 blobSidecars=6 Error: Missing blobSidecars for blockSlot=3104 with blobKzgCommitmentsLen=9 blobSidecars=6 ``` but from the logs it's hard to tell which peer actually sent the invalid response and logs might get mixed up if we request data from multiple peers at the same time. **Description** Include peer id in batch download logs. I opted to only include short peer id (eg. `peer=16...UNpy88`) as this should be sufficient to see to which request it belongs and based on that determine the client.
…st-electra (#7405) **Motivation** The by peer rate limiting needs to be increased post-electra from 768 to 1152 as otherwise we might incorrectly rate limit our peers. **Description** Use correct fork constants to apply by peer rate limiting on BlobSidecarsByRoot/Range - makes `rateLimitQuotas` fork-aware, it will apply the new rate limiting during protocol registration of the next fork - pass fork from protocol registration down to rate limiter quotas to allow accessing the fork for which it is registered - always apply new rate limits during registration even if protocol is already registered
**Motivation** See ethereum/beacon-APIs#405 and ethereum/beacon-APIs#349 for further details and rationale for why we want two different block events. **Description** Emit `block_gossip` SSE event when receiving a block through gossip or api that passes validation rules of the `beacon_block` topic. On the api the validation might be skipped if the block was produced locally or a different broadcast validation is requested by the client but by default it will use gossip validation rules. Closes #6470
Update various places to handle electra attester slashing type: - AttesterSlashingRepository - submitPoolAttesterSlashingsV2 - opPool - GossipType - processAttesterSlashing --------- Co-authored-by: Nico Flaig <[email protected]>
We need to consistently pass fork info to `requestSszTypeByMethod` as otherwise it might use the incorrect type, eg. in case of Electra we would use wrong list limit for `BlobSidecarsByRoot` method in some places. This addresses last outstanding item from #7309.
**Motivation** - Part of an effort to begin simplifying our block import process - Investigating the code, it appears we are storing serialized data alongside the deserialized data. - We do this so that we don't pay for reserialization - This cached serialized data is currently only used for blocks, to avoid reserializatoin when storing to disk - Passing optional serialized data everywhere is cumbersome and introduces cognitive burden - It can be accomplished via a WeakMap instead **Description** - Use WeakMap to store block serialized bytes - add to cache after gossip validation - blobBytes were not used anywhere before, this PR doesn't reintroduce them
**Motivation** - the dependency we use (`@node-rs/crc32`) was very out of date and still relied explicitly on `Buffer` rather than allowing `Uint8Array`. **Description** - bump dependency version to latest
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nodejs/undici/releases">undici's releases</a>.</em></p> <blockquote> <h2>v5.28.5</h2> <h1>⚠️ Security Release⚠️ </h1> <p>Fixes CVE CVE-2025-22150 <a href="https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975">https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975</a> (embargoed until 22-01-2025).</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5">https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/nodejs/undici/commit/6139ed2e0c787853243de58ef7c4301b26ca66f2"><code>6139ed2</code></a> Bumped v5.28.5</li> <li><a href="https://github.com/nodejs/undici/commit/711e20772764c29f6622ddc937c63b6eefdf07d0"><code>711e207</code></a> Backport of c2d78cd</li> <li>See full diff in <a href="https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=undici&package-manager=npm_and_yarn&previous-version=5.28.4&new-version=5.28.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ChainSafe/lodestar/network/alerts). </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…oard (#7416) Further update and improve getBlobs metrics collection and dashboard based on review of the generated metrics and discussions with @philknows on them example dash ![image](https://github.com/user-attachments/assets/9afff12e-4287-4ce6-9eee-d58857f7e8ca)
**Motivation** Revert changes to the benchmark, so all tests are included. **Description** - Revert changes to the benchmark skip **Steps to test or reproduce** - Run all tests Closes #7380
Closed
…#7420) **Motivation** Based on observations from mainnet nodes, it seems like we reject builder blocks in some cases either due to not being sent within cutoff time or due to timeout on the api call but looking at the response times these have been timely. The reason why those were rejected is either we started the block production race too late into the slot, which is mostly due to the fact that we take too much time to produce the common block body or the timeout was handled by the node with a delay, both of these cases are likely caused by event loop lag either due to GC or processing something else. See [discord](https://discord.com/channels/593655374469660673/1331991458152058991/1335576180815958088) for details. **Description** Increase block production timeouts to account for event loop lag
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## stable #7423 +/- ##
==========================================
+ Coverage 48.81% 50.26% +1.44%
==========================================
Files 601 602 +1
Lines 40243 40376 +133
Branches 2066 2206 +140
==========================================
+ Hits 19646 20293 +647
+ Misses 20560 20043 -517
- Partials 37 40 +3 |
Performance Report✔️ no performance regression detected Full benchmark results
|
nflaig
approved these changes
Feb 4, 2025
🎉 This PR is included in v1.26.0 🎉 |
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.
Motivation
Supersedes #7417 to target correct branch.
Marks the release of v1.26.0