Skip to content

lighthouse 7.0.0 #220922

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

Closed
wants to merge 1 commit into from
Closed

lighthouse 7.0.0 #220922

wants to merge 1 commit into from

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
## Summary

This releases includes the fork epoch for Electra :zap: on Mainnet :tada:

All mainnet users must upgrade to v7.0.0 by the time of the fork on 7 May 2025. You must also update your execution client (Geth, Nethermind, Erigon, Besu or Reth).

This release also includes several new features, bug fixes and optimisations.

:warning: Breaking Changes :warning:

You can upgrade to v7.0.0 from any v5 or v6 release. If you are upgrading from v5 you should make sure to read the v6 release notes to account for breaking changes between v5 and v6.

Upgrading to Lighthouse v7.0.0 should require no manual intervention aside from updating the binary or Docker image, as there are no changes to CLI flags that will prevent the node from starting. Mainnet users must upgrade before the Electra fork. Failure to upgrade in time will require a re-sync.

Once you upgrade to Lighthouse v7.0.0, you can downgrade to v6, but only prior to the Electra fork.

See the sections below for details on other backwards-incompatible changes:

  • Deprecated CLI flags
  • Minimum supported Rust version
  • IPv6 by default
  • Gas limit enforcement

:warning: Deprecated CLI Flags :warning:

The following beacon node flags have been deprecated. You should remove them, but the beacon node will still start if they are provided.

  • --light-client-server

:crab: Minimum Supported Rust Version :crab:

We have updated the Minimum Supported Rust Version (MSRV) for this release from 1.80.0 to 1.83.0.

This is only relevant to users compiling Lighthouse from source.

You can update your Rust compiler using:

rustup update stable

IPv6 by Default

Lighthouse will now automatically listen on IPv6 if it detects a globally-routable address. We expect for the majority of users with IPv4-only setups that this change will have no effect, but that it will benefit users with correctly configured IPv6 stacks.

The default IPv6 listening port has been changed from port 9090 to port 9000 (same as IPv4) to make firewalling easier. The IPv6 port can be adjusted using the flag --port6.

You can opt-out of IPv6 using the flag --disable-ipv6.

For more information, see the Lighthouse blog:

Gas Limit Enforcement

Lighthouse BN now enforces gas limit preferences when validating execution payloads from external builders (e.g. mev-boost relays). You can configure the gas limit for all validators connected to a VC using --gas-limit, or set individual limits in the validator_definitions.yml, or using the VC HTTP API.

:zap: Electra :zap:

The Electra hard fork, paired with the Prague hard fork on the execution layer – together known as Pectra – brings several new features to Ethereum.

The headline change is known as Max EB, and raises the maximum effective balance a single validator may wield from 32 ETH to 2048 ETH. Once adopted, this will allow the network to run more efficiently with a lower validator count, while retaining the same level of security. Max EB even removes some centralisation vectors from staking incentives so that solo validators are able to tap into the compounding rewards previously enjoyed exclusively by large operators.

The process of switching a validator's max effective balance is a consolidation, which transfers stake from one validator to another. Consolidations are triggered via a smart contract call, and are fully opt-in and voluntary. If you are a solo operator with a small number of validators, there is no need to consolidate, although you may choose to do so.

Information about consolidation tooling has been added to the Lighthouse book:

Bug Fixes

  • Bugfix for a regression in attestation subscription logic, resolving InsufficientPeers errors.

New Features

  • Electra fork epoch for Gnosis chain.
  • Light client server enabled by default.
  • Support for a new database backend, redb. This is still experimental and only reccommended for expert users.
  • New API to add trusted peers at runtime (Admin add/remove peer sigp/lighthouse#7198).
  • Full Hoodi testnet support (--network hoodi).

Optimisations

  • Smaller default state cache size (32) to keep memory constrained during non-finality.
  • Smarter state cache heuristics.
  • More efficient serving of BlocksByRange/BlobsByRange during non-finality.

Update Priority

This table provides priorities for which classes of users should update particular components.

User Class Beacon Node Validator Client
Mainnet Users Medium Medium
Testnet Users Low Low

See Update Priorities for more information about this table.

All Changes

  • Release v7.0.0 (#7288)
  • Merge remote-tracking branch 'origin/stable' into release-v7.0.0
  • Release v7.0.0-beta.7 (#7333)
  • Update proposer_slashings and attester_slashings amounts for electra. (#7316)
  • Release v7.0.0-beta.6
  • Update withdrawals processing (spec v1.5.0-beta.6)
  • Ensure /eth/v2/beacon/pool/attestations honors committee_index (#7298)
  • Ensure light_client/updates endpoint returns spec compliant SSZ data (#7230)
  • Update crossbeam to fix cargo audit failure (#7313)
  • Gnosis Pectra fork epoch (#7296)
  • Update and cleanup Electra preset (#7303)
  • Downgrade light client errors (#7300)
  • Add pending_consolidations Beacon API endpoint (#7290)
  • Remove/document remaining Electra TODOs (#6982)
  • Clarify network limits (#7175)
  • Fix builder API electra json response (#7285)
  • Mainnet Electra fork epoch (#7275)
  • Return eth1_data early post transition (#7248)
  • Compute roots for unfinalized by_range requests with fork-choice (#7098)
  • Bump openssl to fix cargo audit failure (#7263)
  • Rust 1.86.0 lints (#7254)
  • feat: add more bootnodes for Hoodi and Sepolia (#7222)
  • Consensus spec tests beta4 (#7231)
  • Disable LevelDB snappy feature (#7235)
  • Admin add/remove peer (#7198)
  • Top-up pubkey cache on startup (#7217)
  • Release v7.0.0-beta.5 (#7210)
  • Fix xdelta3 output buffer issue (#7174)
  • Prevent duplicate effective balance processing (#7209)
  • Release v7.0.0-beta.4 (#7162)
  • Update ring to 0.17.14 to fix build compat (#7164)
  • Reject attestations to blocks prior to the split (#7084)
  • Manual compaction endpoint backport (#7104)
  • Pseudo finalization endpoint (#7103)
  • Support Hoodi testnet (#7145)
  • State cache tweaks (#7095)
  • Add block ban flag --invalid-block-roots (#7042)
  • Ensure finalized block is the correct fork variant when constructing light client updates (#7085)
  • feat: implement new beacon APIs(accessors for pending_deposits/pending_partial_withdrawals) (#7006)
  • Address cargo audit failure RUSTSEC-2024-0437 (#7114)
  • Set epochs-per-blob-prune default to 256 (#7113)
  • Change state cache size default to 32 (#7101)
  • Address cargo audit failure RUSTSEC-2025-0009 (#7086)
  • Optimise status processing (#7082)
  • Temporarily ignore cargo audit failures (#7092)
  • Use sync_tolerance_epochs flag to control the proposer prep routines (#7044)
  • Schedule Chiado testnet Electra hard fork (#7074)
  • Make ExecutionBlock::total_difficulty Optional (#7050)
  • Add --long-timeouts-multiplier CLI flag (#7047)
  • Add --disable-attesting flag to validator client (#7046)
  • Add test flag to override SYNC_TOLERANCE_EPOCHS for range sync testing (#7030)
  • Fix builder API headers (#7009)
  • Rust 1.85 lints (#7019)
  • Fix light client merkle proofs (#7007)
  • Update mergify conditions for trivial and ready-for-merge labels to satisfy if base is not stable (#6997)
  • Release v7.0.0-beta.0 (#6962)
  • Fix light client plumbing in beacon processor (#6993)
  • Ensure GET v2/validator/aggregate_attestation is backwards compatible (#6984)
  • Address cargo audit failure RUSTSEC-2025-0006 (#6972)
  • IPv6 By Default (#6808)
  • Update EF tests to spec v1.5.0-beta.2 (#6958)
  • Sync active request byrange ids logs (#6914)
  • Enable Light Client server by default (#6950)
  • Schedule Sepolia and Holesky Electra forks (#6949)
  • Update attestation rewards API for Electra (#6819)
  • Fix aggregate attestation v2 response (#6926)
  • Remove duplicated fork_epoch and fork_version implementation (#6953)
  • Optimise and refine SingleAttestation conversion (#6934)
  • Fix fetch blobs in all-null case (#6940)
  • Keep execution payload during historical backfill when prune-payloads set to false (#6766)
  • Remove un-used batch sync error condition (#6917)
  • Remove unused metrics (#6817)
  • Reduce ForkName boilerplate in fork-context (#6933)
  • Use old geth version due to breaking changes. (#6936)
  • Fix attestation queue length metric (#6924)
  • Update metrics.rs (#6863)
  • Add individual by_range sync requests (#6497)
  • Return error if getBlobs not supported (#6911)
  • Add test to beacon node fallback feature (#6568)
  • Add check to Lockbud CI job (#6898)
  • UX Network Fixes (#6796)
  • chore: update peerDAS KZG library to 0.5.3 (#6906)
  • Migrate validator client to clap derive (#6300)
  • Use data column batch verification consistently (#6851)
  • Add builder SSZ flow (#6859)
  • Subscribe to PeerDAS topics on Fulu fork (#6849)
  • Fix subnet unsubscription time (#6890)
  • Cargo update for openssl vuln (#6901)
  • update libp2p to 0.55 (#6889)
  • update MSRV (#6896)
  • Compute columns in post-PeerDAS checkpoint sync (#6760)
  • Fix mdbook build. (#6891)
  • POST /eth/v2/beacon/pool/attestations bugfixes (#6867)
  • Cargo update without rust_eth_kzg (#6848)
  • Implement PeerDAS Fulu fork activation (#6795)
  • Make range sync chain Id sequential (#6868)
  • Underflow and Typo (#6885)
  • Increase jemalloc aarch64 page size limit (#5244) (#6831)
  • Some sync/backfill format nits (#6861)
  • Fork aware max values in rpc (#6847)
  • More gossipsub metrics (#6873)
  • Fix Redb implementation and add CI checks (#6856)
  • Detect invalid proposer signature on RPC block processing (#6519)
  • Add tests for ExecutionRequests decoding errors (#6832)
  • Update to EF tests v1.5.0-beta.1 (#6871)
  • Improve mergify config (#6852)
  • Modularize beacon node backend (#4718)
  • Electra minor refactorings (#6839)
  • Fix branch/tag names in mergify config (#6842)
  • update script for new mergify syntax (#6597)
  • Update discv5 (#6836)
  • Avoid computing columns from EL blobs if block has already been imported (#6816)
  • Add MetaData V3 support to node/identity API (#6827)
  • Refactor mock builder (#6735)
  • Add EIP-7636 support (#6793)
  • Fix custodial peer assumption on lookup custody requests (#6815)
  • Do not send column requests if there is no blob for the block. (#6814)
  • SingleAttestation implementation (#6488)
  • Misc. dependency cleanup (#6810)
  • Remove ineffectual block RPC limits post merge (#6798)
  • Implement PeerDAS subnet decoupling (aka custody groups) (#6736)
  • Fix data columns not persisting for PeerDAS due to a getBlobs race condition (#6756)
  • Use existing peer count metrics loop to check for open_nat toggle (#6800)
  • Implement changes for EIP 7691 (#6803)
  • Execution requests with prefix (#6801)
  • Electra spec changes for v1.5.0-beta.0 (#6731)
  • Refactor feature testing for spec tests (#6737)
  • Add missing crates to cargo workspace (#6774)
  • Make max_blobs_per_block a config parameter (#6329)
  • Add Fulu boilerplate (#6695)
  • Use oldest_block_slot to break off pruning payloads (#6745)
  • Add libssl install to udeps task (#6777)
  • Rust 1.84 lints (#6781)
  • Fix incorrect VC default HTTP token path when the --datadir flag is present (#6748)
  • Fix incorrect data column metric name (#6761)
  • Implement getBlobSidecars support for PeerDAS (#6755)
  • Add 'beacon_' prefix to PeerDAS metrics names (#6537)
  • add joao CODEOWNERS (#6762)
  • fully lint only explicitly to avoid unnecessary rebuilds (#6753)
  • Make sure we have fanout peers when publish (#6738)
  • Ensure non-zero bits for each committee bitfield comprising an aggregate (#6603)
  • Revise Siren documentation (#6553)
  • Delete OTB verification service (#6631)
  • Enforce alphabetically ordered cargo deps (#6678)
  • Fix anvil 404 link in docs (#6724)
  • Fix Sse client api (#6685)
  • Unsaturate dial negotiation queue (#6711)
  • Add spell check and update Lighthouse book (#6627)
  • Electra alpha8 spec updates (#6496)
  • Enable lints for tests only running optimized (#6664)
  • Fix peer down-scoring behaviour when gossip blobs/columns are received after getBlobs or reconstruction (#6686)
  • Write range sync tests in external event-driven form (#6618)
  • Remove req_id from CustodyId (#6589)
  • Fix web3signer test fails on macOS (#6588)
  • builder gas limit & some refactoring (#6583)
  • Add CLI flag for HTTP API token path (VC) (#6577)
  • Merge remote-tracking branch 'origin/stable' into back-merge-6.0.1
  • Track beacon processor import result metrics (#6541)
  • Remove heading that isn't rendered correctly (#6650)
  • Fix for blank line in graffiti file (#6635)
  • Remove ZeroizeString in favour of Zeroizing<String> (#6661)
  • Merge remote-tracking branch 'origin/release-v6.0.1' into unstable
  • Deprecate futures ticker (#6630)
  • Add a security section to the book (#6581)

Binaries

See pre-built binaries documentation.

The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0

System Architecture Binary PGP Signature
x86_64 lighthouse-v7.0.0-x86_64-apple-darwin.tar.gz PGP Signature
x86_64 lighthouse-v7.0.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 lighthouse-v7.0.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 lighthouse-v7.0.0-x86_64-windows.tar.gz PGP Signature
System Option - Resource
Docker v7.0.0 sigp/lighthouse

@github-actions github-actions bot added rust Rust use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Apr 22, 2025
@chenrui333
Copy link
Member

  warning: [email protected]: clang: error: unsupported option '-mno-avx' for target 'arm64-apple-macosx'
  warning: [email protected]: ToolExecError: Command env -u IPHONEOS_DEPLOYMENT_TARGET LC_ALL="C" "clang" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "--target=arm64-apple-macosx" "-mmacosx-version-min=15.4" "-Wall" "-Wextra" "-mno-avx" "-fno-builtin" "-Wno-unused-function" "-Wno-unused-command-line-argument" "-o" "/private/tmp/lighthouse-20250421-7425-g4o3pm/lighthouse-7.0.0/target/release/build/blst-dcfab1fab63c11dc/out/3ce72ea41a6346fd-server.o" "-c" "/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-1949cf8c6b5b557f/blst-0.3.13/blst/src/server.c" with args clang did not execute successfully (status code exit status: 1).
  error: failed to run custom build command for `blst v0.3.13`

@chenrui333 chenrui333 added the build failure CI fails while building the software label Apr 22, 2025
@michaelsproul
Copy link
Contributor

I'm looking into this. Can't reproduce on my arm64 Mac running macOS 15.3.2

One difference I noticed in the build output is CC = None on my local, vs CC = Some(clang) for the Homebrew build. However setting CC=clang removes this difference, but still doesn't repro the issue.

My clang version locally is:

Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin24.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

I also had a look at the Rust tools for determining whether to supply -mno-avx. The call in blst is:

https://github.com/supranational/blst/blob/52cc60d78591a56abb2f3d0bd1cdafc6ba242997/bindings/rust/build.rs#L219

The cc crate runs a test compilation and tries to parse the compiler's output. This might be what is broken:

https://github.com/rust-lang/cc-rs/blob/5da0787d31b194b2460c0dc7ede10706048bb22c/src/lib.rs#L1281-L1286

@michaelsproul
Copy link
Contributor

Still not able to repro on macOS 15.4.1 with this version of clang:

Apple clang version 17.0.0 (clang-1700.0.13.3)
Target: arm64-apple-darwin24.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Apr 24, 2025
@chenrui333 chenrui333 added the CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. label Apr 24, 2025
@chenrui333 chenrui333 force-pushed the bump-lighthouse-7.0.0 branch from 849ec9d to dfc9853 Compare April 24, 2025 22:13
@github-actions github-actions bot removed the stale No recent activity label Apr 24, 2025
@daeho-ro daeho-ro added the 15-arm64 Sequoia arm64 is specifically affected label Apr 25, 2025
Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Apr 27, 2025
@michaelsproul
Copy link
Contributor

@chenrui333 Can you add the help-wanted label?

I can try to take a look at this today, but it may be easier for someone more familiar with Homebrew's compiler stack

@github-actions github-actions bot removed the stale No recent activity label Apr 27, 2025
@michaelsproul
Copy link
Contributor

I managed to reproduce the failure locally with:

brew install --verbose --formula --build-bottle ./Formula/l/lighthouse.rb

and seemingly I can prevent the failure using

brew install --verbose --formula --build-bottle ./Formula/l/lighthouse.rb --cc llvm_clang

@michaelsproul
Copy link
Contributor

It seems like this might be a problem with Homebrew's clang shim here. When I bypass the shim by setting ENV["CC"] = clangx (where clangx is just a passthrough to /usr/bin/clang) then the flag-detection works correctly and the project builds.

This is the clangx I'm using (installed in /opt/homebrew/opt/rust/bin because I'm a noob and don't know how to modify Homebrew's $PATH):

#!/usr/bin/env bash

echo "clang invoked with args $@"
/usr/bin/clang "$@"
result="$?"
echo "with result $result"
exit "$result"

Copy link
Contributor

github-actions bot commented May 1, 2025

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label May 1, 2025
@daeho-ro daeho-ro removed the stale No recent activity label May 2, 2025
Copy link
Contributor

github-actions bot commented May 5, 2025

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label May 5, 2025
@daeho-ro daeho-ro removed the stale No recent activity label May 5, 2025
Copy link
Contributor

github-actions bot commented May 8, 2025

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label May 8, 2025
@github-actions github-actions bot closed this May 12, 2025
@github-actions github-actions bot deleted the bump-lighthouse-7.0.0 branch May 12, 2025 00:32
@cakevm cakevm mentioned this pull request Jun 6, 2025
6 tasks
@chenrui333 chenrui333 added the superseded PR was replaced by another PR label Jun 9, 2025
@chenrui333
Copy link
Member

#225877

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
15-arm64 Sequoia arm64 is specifically affected build failure CI fails while building the software bump-formula-pr PR was created using `brew bump-formula-pr` CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. rust Rust use is a significant feature of the PR or issue stale No recent activity superseded PR was replaced by another PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants