Releases: sigp/lighthouse
Release list
Mr. Goldenfold
Summary
All beacon node users should upgrade as soon as practical. Validator client users should review the fee-recipient and graffiti changes below before upgrading.
This release also contains substantial Gloas preparation, Fulu data-availability networking improvements, and new standard API support.
Upgrade Notes
- Mandatory fee recipient: Validator clients now refuse to startup when an enabled validator has no
suggested_fee_recipientfield invalidator_definitions.ymland no global--suggested-fee-recipientfallback is configured. This prevents validator income from being lost accidentally. - Validator graffiti: Lighthouse beacon nodes now append client version information to user graffiti by default. To opt-out use the
--graffiti-append falseflag with Lighthouse VC or set graffiti that is between 30-32 bytes long. There is no change in behaviour if you are already using the--privateflag for the beacon node. - 💾 Database schema v29: Lighthouse beacon nodes will automatically migrate the database from schema v28 to v29 on startup. A downgrade back to v28 is available prior to the Gloas hard fork, follow the instructions in the Lighthouse Book.
⚠️ Breaking Changes ⚠️
- Validator fee recipient: Validator clients now refuse to startup when an enabled validator has no
suggested_fee_recipientand no global--suggested-fee-recipientfallback is configured. This prevents validator income from being lost accidentally. - Proposer duties: The VC uses the
proposer_dutiesv2 endpoint now by default. This is incompatible with beacon nodes that do not support this API. If you are running Nimbus BN or getERROR Failed to download proposer duties, add--disable-proposer-duties-v2to your VC flags.
💻 Breaking Changes for Devs
- Mplex will be disabled by default in the next release.
- Removed non-standard Lighthouse APIs:
/lighthouse/analysis/block_rewards,/lighthouse/analysis/attestation_performance/{index}, and/lighthouse/analysis/block_packing_efficiency. - Updated
/eth/v1/beacon/rewards/*responses to match the beacon API spec wrappers, including execution optimistic/finalized metadata. - Pre-Fulu devnet support has been removed.
- Merge transition support has been removed.
🗑️ Deprecated CLI Flags
The follow CLI flags for the beacon node have been deprecated:
--libp2p-addressesis deprecated in favour of--boot-nodes.--reconstruct-historic-statesis deprecated in favour of--archive.--proposer-reorg-*flags are deprecated. We do not recommend changing these values.
🧩 Partial Data Columns
Lighthouse now supports partial data columns (EIP-8136). Partial columns reduce the bandwidth used to propagate blob data, utilizing data already present in the EL client. While partial data columns do not require a hard fork, the benefits scale as more of the network upgrades.
For now, Lighthouse only enables partial data columns by default on Hoodi and Sepolia. To opt out, use --enable-partial-columns false.
Notable Changes
- Added extensive Gloas/ePBS support: payload envelopes, payload bids, payload attestations, PTC duties, proposer preferences, fork-choice changes, gossip verification, lookup/range sync, HTTP APIs, and validator-client duties.
- Added standard API support for proposer lookahead, v2 proposer duties, payload bids, payload envelopes, PTC duties, proposer preferences, and new SSE topics including
execution_payload,execution_payload_gossip, andproposer_preferences. - Improved validator-client behaviour for proposer preferences, payload attestation duties, per-validator fee-recipient validation, graffiti defaults, and validator-manager imports.
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | High | Low |
| Non-Staking Users | High | --- |
See Update Priorities for more information about this table.
Security Content
This section will be updated with security advisories as they are made public. We are not disclosing the complete security content of this release in order to give users time to upgrade.
- Fix for a fork choice bug which could cause incorrect justification and finalization: #9471.
- Fix for a fork choice bug resulting in #9364.
- Fix for a slasher OOM: #9141.
All Changes
- Release v8.2.0
- Update deps
- Add proposer preferences SSE event (#9308)
- Fix race condition between validator duties service and proposer preferences (#9309)
- Fix and improve handling of empty columns after getBlobs response (#9361)
- Enable late re-org and re-org interactive tests (#9405)
- Update DB docs for v8.2.0/schema v29 (#9489)
- Refactor payload attestation service (#9492)
- Correct unrealized justification for blocks with slashings (#9471)
- Gloas attestation payload reprocess (#9440)
- SSZ fallback to JSON in
proposer_preferences(#9475) - fix(http_api): ignore committee_index in attestation data endpoint (#9437)
- Remove --disable-partial-columns in favour of bool argument to
--enable...(#9478) - Make single block lookup respect
earliest_available_slotfor column requests (#9447) - Use
hashlinkoverlruforLruCache(#8911) - Enable mplex by default and change --enable-mplex to take bool (#9476)
- Gloas alpha spec 9 (#9393)
- Append client version info to user graffiti by default (#9313)
- Allow release branches to target stable in target-branch-check (#9457)
- deprecate
disallowed-offsetsconfig for re-orgs (#9449) - Only bake warpbuild snapshot from stable (#9462)
- Bump discv5 (#9394)
- Update warp snapshot build job (#9459)
- Better partial diagnosics (#9436)
- Gloas range sync (#9362)
- Refactor
payload_attestation_serviceand add payload attestation test to validator client (#9357) - Gloas lookup sync (#9155)
- Fix sending partials from immediately complete columns (#9433)
- Simplify lookup sync da_checker oracle (#9428)
- Optimise slow block verification tests (#9274)
- fix(network): clear ENR
nfdfield when no next fork is scheduled during runtime transitions (#9131) - Update gloas api routes to match updated spec (#9418)
- Update libp2p (#9331)
- Improve error types for envelopes (#9414)
- Fix O(n²) find_head and stack overflow in filter_block_tree (#9090)
- Ensure PTC votes accurately reflect data availability (#9412)
- Remove unused spec field from AvailableBlock (#9411)
- Reject importing Gloas block until parent's payload is imported (#9382)
- Regression test for range sync CGC race condition (#8039)
- Gloas data column reprocess queue (#9339)
- Remove RequestState trait from lookup sync (#9391)
- Disable Mplex by default (#9365)
- Delete unnecessary SyncMessage variants (#9379)
- Move BlockProcessingResult match out of block lookups (#9327)
- Deprecate blob lookup sync (#9383)
- Add
POST beacon/bidendpoint (#9347) - Make proposer_score_boost non-optional in ChainSpec (#9386)
- Use correct slot in custody request (#9380)
- Delete bogus
InvalidBestNodeerror (#9364) - Deprecate gossip blobs (#9126)
- Rust 1.96 lints (#9368)
- Add gossip validation spec tests for proposer/attester slashings (#9323)
- Ensure we can serve blocks and columns after
headevent is emitted (#9338) - Fix non-canonical payload attestation processing (#9305)
- Deprecate some
reorg-related CLI flags and read from spec (#9177) - Enable partial data columns by default on Hoodi and Sepolia (#9343)
- Add macro to simplify
into_full_blockimplementations (#9294) - Add support for jemalloc memory profiling (#9326)
- Gloas dont enforce peer column custody on block import (#9341)
- Custody backfill sync only penalize peers once per batch (#9340)
- Ensure we use the right fork when calculating payload attestation sig domain (#9342)
- Gloas alpha spec 8 (#9315)
- Add getBlobsV3 to
LIGHTHOUSE_CAPABILITIES(#9330) - Drop unused EthSpec generic from Stores (#9281)
- Partial columns cleanup (#9321)
- Gloas lookup sync boilerplate (#9322)
- Use dedicated cache for HTTP API route (#9318)
- Remove outdated SPRP hint (#9312)
- Gloas payload cache (#9209)
ignore-ws-checkflag doesnt allow the node to start outside the weak subjectivity period (#9290)- Fix stale
beacon_state_rootin test helpers (#9289) - Dont penalize payload envelope peers after gossip verification (#9283)
- chore: remove builder_index from produce_block_v4 (#9267)
- Fix execution integration test CI failure (#9277)
- Implement beacon_blocks_by_head (#9237)
- Generalise reconstruct_historic_states for ranged replay (#9222)
- Remove
TestRandom(#9006) - Remove libssl dependency for cargo udeps (#9263)
- fix: payload_attestation_data when no block received for slot (#9225)
- Implement gloas proposer preference vc duty (#9208)
- Unblock CI by temporarily ignoring
hickory-protoaudit failures (#9257) - fix: prevent duplicate column reconstruction dispatch (#9250)
- Avoid 0x00 block hashes in fcU (#9233)
- Update CI: warp runnner to use snapshot and use warm (#9217)
- Gloas proposer preferences alpha 7 (#9239)
- Gloas HTTP API tests passing (#9154)
- Submit ptc votes that we produce to the ptc op pool (#9231)
- Remove
test_loggerfeature (#9125) - Import exec...
Noob-Noob
Summary
This is a mandatory upgrade for all users running any prior version. All prior Lighthouse releases including v8.1.2 are affected by vulnerabilities. All Lighthouse beacon nodes should be upgraded as soon as possible. The vulnerabilities patched in this release are now publicly disclosed, see the Security Advisories section later in these release notes.
We greatly appreciate your diligence in keeping Ethereum secure.
Other Changes
- 🎉 Set the Fulu fork epoch for Gnosis Chain. Slot 27435008, Tue Apr 14 2026 12:06:20 UTC. All Gnosis users must update BN+VC before this time.
- Optimised state root computation to address a performance regression causing 10x slowdowns: #9017. Block processing times are a lot smoother in v8.1.3, which helps with attestation performance.
Breaking Changes
There are no breaking changes in this release. If you are upgrading from prior to v8.1.0 we recommend reading the release notes for v8.1.0, v8.1.1 and v8.1.2.
Update Priority
This release contains several security fixes. All users running prior versions of Lighthouse BN should upgrade immediately.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | High | High for Gnosis, Low otherwise |
| Non-Staking Users | High | --- |
See Update Priorities for more information about this table.
Security Advisories
We can now reveal the vulnerabilities that were patched in Lighthouse v8.1.1, v8.1.2 and v8.1.3:
rust-yamux(v8.1.1): GHSA-4w32-2493-32g7rust-yamux(v8.1.2): GHSA-vxx9-2994-q338rust-libp2p(v8.1.2): GHSA-gc42-3jg7-rxr2quinn-proto(v8.1.2): GHSA-6xvm-j4wr-6v98rust-libp2p(v8.1.3): GHSA-xqmp-fxgv-xvq5
All Changes
- Release v8.1.3
- Bump c-kzg
- Bump libp2p
- Bump yamux
- Bump quinn
- Schedule Fulu fork for Gnosis mainnet (#9007)
- Use BTreeMap for state.validators pending updates (#9017)
- Scrap redundant docker builds on releases (#8999)
- Bump rustls and ignore unpatched version due to Warp (#9010)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.1.3-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.1.3-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | lighthouse-v8.1.3-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v8.1.3 | sigp/lighthouse |
Krombopulos Michael
Summary
This is a mandatory upgrade for all users running any prior version. All prior Lighthouse releases including v8.1.1 are affected by vulnerabilities. All Lighthouse beacon nodes should be upgraded as soon as possible. There will be CVEs announced for these vulnerabilities in the coming days.
We greatly appreciate your diligence in keeping Ethereum secure, and your patience.
Breaking Changes
There are no breaking changes in this release. If you are upgrading from prior to v8.1.0 we recommend reading the release notes for v8.1.0 and v8.1.1.
Update Priority
This release contains several security fixes. All users running prior versions of Lighthouse BN should upgrade immediately.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | High | Low |
| Non-Staking Users | High | --- |
See Update Priorities for more information about this table.
All Changes
- Release v8.1.2
- Fix cargo-sort errors (#8945)
- Fix lints for Rust v1.94.0 (#8939)
- update cargo-sort (#8933)
- Bump deps
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.1.2-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.1.2-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | lighthouse-v8.1.2-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v8.1.2 | sigp/lighthouse |
Scary Terry
Summary
Lighthouse v8.1.1 is a patch release that includes an important security fix, along with several networking and validator client bug fixes, sync observability metrics, and dependency updates.
This is a mandatory upgrade for all users running any prior versions. All prior Lighthouse releases are affected by a security vulnerability. Users should upgrade as soon as possible. Further details to come in the following days.
Bug Fixes
-
Validator client head monitor timeout fix (#8846): Fixes a bug in v8.1.0 where the VC head monitoring stream would continuously time out, logging repeated
Head service failedwarnings. The SSE events API client now uses an appropriate timeout that prevents premature disconnections. -
Fix duplicate data columns in DataColumnsByRange responses (#8843): Fixes a regression where skip slots caused duplicate data columns in
DataColumnsByRangeresponses. Peers receiving these duplicates would downscore the node withDuplicatedDataerrors, degrading peering. -
Return correct variant for snappy errors (#8841): Snappy decoding errors are now correctly classified as
InvalidDatarather thanIoError, ensuring proper error handling in RPC message decoding. -
Add pruning of observed_column_sidecars (#8531): Fixes a slow memory leak on long-running nodes caused by missing prune calls for the
observed_column_sidecarscache during finalization. -
Process head_chains in descending order of number of peers (#8859): Fixes head chain processing to sort by peer count in descending order as originally intended, improving sync peer selection.
Networking Improvements
- Penalize peers that send an invalid RPC request (#6986): Peers sending invalid RPC requests that result in decoding errors are now penalized and disconnected, consistent with the handling of other invalid request types.
Update Priority
This release contains a security fix. All users running prior versions of Lighthouse should upgrade immediately.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | High | High |
| Non-Staking Users | High | --- |
See Update Priorities
more information about this table.
All Changes
- Bump version to v8.1.1 (#8853)
- Update yanked keccak 0.1.5 to 0.1.6 (#8900)
- Add sync batch state metrics (#8847)
- Process head_chains in descending order of number of peers (#8859)
- Validator client head monitor timeout fix (#8846)
- Return correct variant for snappy errors (#8841)
- Fix duplicate data columns in DataColumnsByRange responses (#8843)
- Penalize peers that send an invalid rpc request (#6986)
- Update
timeto fixcargo auditfailure (#8764) - fix(beacon_node): add pruning of observed_column_sidecars (#8531)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.1.1-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.1.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | lighthouse-v8.1.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v8.1.1 | sigp/lighthouse |
Squanchy
Summary
Lighthouse v8.1.0 includes performance optimizations, validator client improvements, and bug fixes.
This is a recommended upgrade for users experiencing performance issues, particularly those running large numbers of validators.
Performance Improvements
- Batch attestation slashability checks (#8516): Attestations are now checked for slashability in batches instead of sequentially. This fixes slashing protection database timeouts for users running large numbers of validators under heavy disk congestion.
- Faster
/eth/v1/beacon/blocks/head/root(#8729): Head block root is now served without waiting for the full block import, improving sync committee performance at epoch boundaries. - Faster beacon node startup (#8451): Parallelized pubkey cache initialization during checkpoint sync, significantly reducing startup time on large networks.
- Faster block processing (#8446): Removed unnecessary block header calculations, saving 10-20ms per block.
- Faster
prepare_beacon_proposerAPI (#8353): Fixed slow API calls that could take 5-10 seconds during non-finality.
Validator Client Improvements
- Earlier attestation broadcasting (#7892): Attestations are now sent as soon as a new head is computed, rather than always waiting until 4 seconds into the slot. This brings Lighthouse into spec compliance and helps spread attestation load throughout the slot.
- Reduced API calls for DVT users (#8699):
beacon_committee_selectionsis now called only once per epoch instead of every slot. - Skip empty attestation duties (#8559): Attestation data is no longer requested when attestation duty is empty.
- Reduced attestation data API calls (#8171): VC now fetches attestation data once per slot instead of once per committee, reducing API calls from 64 to 1 on mainnet.
Other Notable Changes
- Manual checkpoint sync without blobs (#8470): Checkpoint sync now works when blobs are unavailable.
- Fork choice debug endpoint (#7845): Added extra data to
/eth/v1/debug/fork_choiceincluding justified/finalized roots and unrealized checkpoints. - Earlier SSE events (#8718):
NewHeadSSE event is now emitted earlier in block import. - Optimistic sync metric (#8059): New metric to track optimistic sync status.
CLI Changes
Validator Client
- New flag
--graffiti-append(#7558): Append client version info to user-defined graffiti. - New flag
--disable-beacon-head-monitor(#7892): Revert to the previous behavior of always attesting at the 4 second mark, instead of attesting as soon as a new head is received. This can reduce bandwidth and provide more predictable BN usage, but leaving it enabled is recommended.
Update Priority
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | Medium | Medium |
| Non-Staking Users | Low | --- |
See Update Priorities for more information.
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.1.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.1.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | lighthouse-v8.1.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v8.1.0 | sigp/lighthouse |
All Changes
- Release v8.1.0 (#8749)
- fix bootnode entry (#8748)
- Use events API to eager send attestations (#7892)
- Bump bytes to 1.11.1 to fix RUSTSEC-2026-0007 (#8743)
- Merge remote-tracking branch 'origin/stable' into unstable
- Fast path for
/eth/v1/beacon/blocks/head/root(#8729) - Replace
INTERVALS_PER_SLOTwith explicit slot component times (#7944) - Emit
NewHeadSSE event earlier in block import (#8718) - Call beacon_committee_selections only once per epoch (#8699)
- Disable
sqliteby default (#8708) - Gloas gossip boilerplate (#8700)
- Convert RpcBlock to an enum that indicates availability (#8424)
- Remove unused anvil references (#8710)
- Add Gloas data column support (#8682)
- Check slashability of attestations in batches to avoid sequential bottleneck (#8516)
- Remove
datadependency from fromcoremodule in `consensus/types (#8694) - Implement custom OpenTelemetry sampler to filter uninstrumented traces (#8647)
- Updated consensus types for Gloas
1.7.0-alpha.1(#8688) - update libp2p dependency to upstream (#8200)
- Revised log when all validators have exited (#8623)
- Remove remaining facade module re-exports from
consensus/types(#8672) - Remove
executiondependency fromcoremodule inconsensus/types(#8666) - More
consensus/typesre-export cleanup (#8665) - Update chainspec p2p and etc (#8601)
- Cleanup
consensus/typesre-exports (#8643) - Remove
statedependency fromcoremodule inconsensus/types(#8653) - chore(validator_client): Read genesis time and genesis validators root from eth2_network_config (#8638)
- Get blobs v2 metrics (#8641)
- Update buckets for metric (#8651)
- Re-introduce clearer variable names in beacon processor work queue (#8649)
- Remove http-api tests, and test on
unstableby default, with option to override. (#8646) - Move beacon processor work queue implementation to its own file (#8141)
- Replace tracing::debug! with debug! same for other levels (#8300)
- Add nightly tests workflow to test prior forks (#8319) (#8636)
- fix(peerdb): use start_slot instead of end_slot for safer actions (#8498)
- Remove Windows in the documentation (#8628)
- Tweak a log message for mock-el (#8599)
- Remove duplicated
cryptodependencies (#8605) - Gloas add off protocol payment field to bid (#8596)
- Delete attester cache (#8469)
- fix: improve error for insufficient blob data columns (#8595)
- perf: remove allocations from merkle tree proof verification logic (#8614)
- refactor: remove
service_name(#8606) - update ruint dependency (#8617)
- Update
procfs(#8608) - Refine cargo-deny rules (#8602)
- Add cargo deny on CI (#8580)
- Delete
PartialBeaconState(#8591) - Gloas(EIP-7732): Containers / Constants (#7923)
- Append client version info to graffiti (#7558)
- fix visual bug on visualize_batch_state leading to a non-wanted comma (#8499)
- Fix Makefile to avoid git describe error in CI (#8513)
- Update
synto2.0.110(#8563) - Update
strumto0.27(#8564) - Add regression test for unaligned checkpoint sync with payload pruning (#8458)
- fix(bls): fix is_infinity when aggregating onto empty AggregateSignature (#8496)
- Rust 1.92 lints (#8567)
- Do not request attestation data when attestation duty is empty (#8559)
- Fix testnet script (#8557)
- Remove
consensus/typesre-exports (#8540) - Clarify
alloydependencies (#8550) - Reduce
eth2dependency space (#8524) - Move beacon pool http api to its own separate module (#8543)
- Move validator http endpoints to a separate module (#8536)
- Refactor
consensus/types(#7827) - Move beacon state endpoints to a separate module. (#8529)
- Move deposit contract artifacts to /target (#8518)
- Always use committee index 0 when getting attestation data (#8171)
- Instrument attestation signing. (#8508)
- Fix data columns sorting when reconstructing blobs (#8510)
- Update local testnet scripts for the fulu fork (#8489)
- Refactor get_validator_blocks_v3 fallback (#8186)
- Add tracing spans to validator client duty cycles (#8482)
- Optimise pubkey cache initialisation during beacon node startup (#8451)
- fix: compare bls changes in op-pool (#84...
BugAnne
Summary
This is a hotfix release addressing several bugs and performance issues discovered in v8.0.0.
Notable changes:
- From the Fulu fork, checkpoint blobs will no longer be downloaded from the checkpoint server and instead they will be fetched from p2p peers. The getBlobSidcars Beacon API is deprecated from Fulu and clients may drop support in future releases. (#8413, #8417)
- Prevent unnecessary state advances pre-Fulu. This improves beacon node performance prior to the Fulu fork. (#8388)
- Fix rare custody context initialization race condition that could cause panics. (#8391)
As a reminder, all mainnet users must upgrade to either v8.0.0 or v8.0.1 prior to the Fulu fork at epoch 411,392 (2025-12-03, 21:49 UTC). You must also update your execution client (e.g. Geth, Nethermind, Erigon, Besu or Reth).
For users upgrading from v7.x.x, please see v8.0.0 release notes here.
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | Medium | Low |
| Non-Staking Users | Low | --- |
See Update Priorities for more information about this table.
All Changes
- Release v8.0.1 (#8414)
- Reimport the checkpoint sync block (#8417)
- Fix md format (#8434)
- Compute missing_columns correctly (#8425)
- Fix custody context initialization race condition that caused panic (#8391)
- Do not require blobs from checkpoint servers from Fulu epochs. (#8413)
- Fix tracing span for execution payload verif (#8419)
- re-targeting of
remove-windows-ciagainstrelease-v8.0(#8406) - Prevent unnecessary state advances pre-Fulu (#8388)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.0.1-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.0.1-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | lighthouse-v8.0.1-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| System | Option | - | Resource |
| Docker | v8.0.1 | sigp/lighthouse |
Brosephamons
Summary
This release includes the mainnet fork epoch for the upcoming Fulu-Osaka (Fusaka) fork and subsequent blob-parameter-only (BPO) forks. 🎉
Upgrading to v8.0.0 is mandatory for all mainnet users prior to the Fulu fork at epoch 411,392 (2025-12-03, 21:49 UTC).
This version also includes configurations for the following BPO forks (no additional action required):
- BPO 1: Epoch 412,672 (2025-12-09, 14:21 UTC) - increases blob count to target/max 10/15
- BPO 2: Epoch 419,072 (2026-01-07, 01:01 UTC) - increases blob count to target/max 14/21
Operators should expect bandwidth increases as the blob count rises with each fork.
Learn more:
- What's included in the Fusaka fork
- How Fusaka affects bandwidth requirements
- Understanding BPO forks
There are also other important changes in v8.0.0:
- This is the last Lighthouse release supporting Windows.
- Users requiring full blobs (e.g. for L2 sync) must add either the
--supernodeor--semi-supernodebeacon node flag. - It is recommended to remove the
block-cache-sizeflag if it is being used. - Default gas limit increases from 45M to 60M.
⚠️ Breaking Changes ⚠️
🍎 🪟 Platform Support Changes
This will be the last Lighthouse release supporting Windows. We have made this decision carefully after considering the low level of Windows adoption, and the difficulty of maintaining a high-quality build of Lighthouse for Windows. We recommend Windows users to switch to using Docker, WSL, Linux or another solution of their choice.
Pre-built macOS x86_64 binaries are no longer provided (#7862). Apple, GitHub runners, and Rust are dropping x86_64 macOS support, so we have made the decision to phase out support. macOS x86 users should use the Linux Docker image, the homebrew package, or build Lighthouse from source.
💾 Database Schema Upgrade
Lighthouse v8.0.0 includes a database schema upgrade to schema v28. This upgrade greatly reduces the size of fork choice on disk, leading to reduced I/O.
No action is required upon upgrading, Lighthouse will automatically upgrade your database to the new version.
If you would like to downgrade to a prior release (e.g. v7.1.0), then you must follow the instructions in the Lighthouse book for downgrading the database schema before switching your binary to the old version.
🐡 Changes to Blob Retrieval Beacon APIs
Once PeerDAS is activated from the Fulu fork:
- Users will no longer be able to retrieve blobs via the Beacon APIs by default. This is because each full node will only sample and store a small portion of blob data.
- To opt-in to full blob access, users must meet one of the following conditions:
- Run the beacon node with either the
--supernodeor--semi-supernodeflag. - Custody at least 50% of all columns by having at least 2,048 ETH in validator stake attached to the beacon node.
- Run the beacon node with either the
- Deprecated API
/eth/v1/beacon/blob_sidecars/{block_id}: This endpoint will return empty blob proofs in post-Fulu blob sidecars. This is because consensus clients will use cell proofs instead of blob proofs for blob verification. This endpoint will be removed in a future release. - New API
/eth/v1/beacon/blobs/{block_id}(#8103): This is the successor to the deprecated blob sidecars endpoint. It supports querying blobs by block ID and versioned hashes. Users are encouraged to switch to using this API ahead of the deprecation of the blob sidecars endpoint.
🦀 Rust Version Requirements (MSRV)
If you build Lighthouse from source you need to upgrade your Rust compiler to v1.88.0 or later. Usually this can be accomplished with the command rustup update.
🧠 Jemalloc
When compiling Lighthouse from source, the jemalloc feature no longer exists. It is enabled by default and can be disabled by a new feature called sysmalloc.
🔑 Network Key Format Migration
Lighthouse BN's private key that it uses for networking cryptography has been changed from binary to hex string format. This is only relevant for users who are manually manipulating these keys, or downgrading to an older version of Lighthouse after running v8.0.0.
Lighthouse will automatically change the format of the key from binary to hex upon upgrading. Because the new key format is not supported by previous versions of Lighthouse, the key must be manually deleted if you would like to downgrade. The key can be found at $datadir/network/key.
🖥️ CLI Flag Changes
- Changed: The default
--block-cache-sizeis now 0 (#8066). To re-enable, use--block-cache-size Nwith a non-zero argument. We recommend leaving the cache disabled, as its absence improves performance for block persistence and RPC responses. - New flag
--supernode: Subscribe to all data column subnets and run as a PeerDAS supernode (#8083). The old name--subscribe-all-data-column-subnetsis aliased for now but will eventually be removed.
- New flag
--semi-supernode: Subscribe to half of the data column subnets. This flag enables blob retrieval via the Beacon API without running a supernode. Semi-supernodes only download and store 50% of all erasure coded blob data which is just sufficient for recovering the blobs, therefore it uses significantly less resources and bandwidth compared to supernodes. (#8254 & #8265)
🔧 Memory & Performance Fixes
- Fixed reprocess queue memory leak (#8065): Resolves gradual memory consumption increase during normal operation.
- Block cache optimization (#8066): Cache now disabled by default, eliminating contention issues.
- Reduced KZG verification overhead: Removed unnecessary verification from local block production (#7713, #7771).
📊 Add OpenTelemetry support
Lighthouse now includes built-in OpenTelemetry support for advanced monitoring and performance analysis. OpenTelemetry provides detailed traces showing exactly how your node processes blocks, handles network requests, and performs validator duties - breaking down operations into individual steps with precise timing data. This helps developers and operators identify bottlenecks, troubleshoot performance issues, and optimize their setup.
To collect telemetry data, you'll need to run an OpenTelemetry collector (such as Grafana Tempo) and run Lighthouse beacon node with the following flags:
--telemetry-collector-url: Connect to an OpenTelemetry gRPC backend (e.g. opentelemetry-collector, Tempo) to export traces (#7816)--telemetry-service-name: Override the service name to distinguish between traces when running multiple nodes
For example:
lighthouse bn --telemetry-collector-url http://localhost:4317 --telemetry-service-name lighthouse-bnThere will be an upcoming blog post that explains the traces available in Lighthouse and how they've been used to analyse and optimise Lighthouse performance.
Other Notable Changes
- Fix builder
get_headerJSON deserialisation: This impacts users running a builder middleware that uses JSON, e.g. vouch (#8228)
- SSZ default: Validator client now uses SSZ by default for
/eth/v3/validator/blocksendpoint (#7727) - Selection Beacon API endpoints: Implement selections Beacon API endpoints to support DVT middleware (#7016)
- New experimental beacon node flag:
--complete-blob-backfillflag enables backfilling all blobs beyond the 18-day window (#7751)
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users | High | High |
| Non-Staking Users | High | --- |
See Update Priorities for more information about this table.
Users should update both the Lighthouse VC and BN to v8.0.0 if using separate binaries. The execution layer client (e.g. Geth, Reth, Besu, Nethermind, Erigon) must also be updated prior to the Fulu fork.
All Changes
- Release v8.0.0 (#8352)
- Ensure custody backfill sync couples all responses before importing (#8339)
- Proposer duties backwards compat (#8335)
- Add mainnet configs (#8344)
- Fix CGC backfill race condition (#8267)
- Rust 1.91 lints (#8340)
- Bump gas limit to 60M (#8331)
- Fix: custody backfill sync display incorrect time estimation (#8291)
- Fix failing CI for
compile-with-beta-compiler(#8317) - Downgrade gossip logs set to INFO level (#8288)
- chore!: remove pub visibility on
OVERFLOW_LRU_CAPACITYandSTATE_LRU_CAPACITY_NON_ZERO(#8234) - Update Lighthouse book (#8284)
- Implement
/lighthouse/custody/infoAPI (#8276) - Revise logging in BlobsByRoot requests (#8296)
- Prevent dropping large binary data to logs (#8290)
- Remove deprecated flag --disable-deposit-contract-sync from doc (#8124)
- Release v8.0.0 rc.2 (#8255)
- New design for blob/column pruning (#8266)
- Only publish reconstructed columns that we need to sample (#8269)
- Trigger backfill on startup if user switches to a supernode or semi-supernode (#8265)
- Add
--semi-supernodesupport (#8254) - Custody backfill sync (#7907)
- Fix data column rpc request (#8247)
- Improve block header signature handling (#8253)
- Add
versionto the response ...
Gene
Summary
Lighthouse v8.0.0-rc.2 is a release candidate for the upcoming Fulu-Osaka (Fusaka) hard fork, targeting the Holesky, Hoodi, and Sepolia testnets. Upgrading to v8.0.0-rc.2 or any earlier v8.0.0-rc.x version is mandatory prior to the Fulu forks on Hoodi:
- Fulu on Hoodi: 2025-10-28 18:53:12 UTC. Slot 1622016.
This release brings full Fusaka support (including PeerDAS), enhanced networking capabilities, and other optimisations.
We strongly recommend users already running earlier v8.0.0-rc.x versions on testnets to upgrade, as this release fixes a peer disconnection regression introduced in v8.0.0-rc.1 and it will help us test prior to the mainnet fork (scheduled in December 2025).
This release is not recommended for mainnet, although mainnet users experiencing memory leaks are encouraged to upgrade to v8.0.0-rc.0 (not this rc.2).
Changes Since v8.0.0-rc.1
The main changes since v8.0.0-rc.1 are listed below. The rest of the release notes describe the changes since v7.1.0.
- Add
--semi-supernodeflag to enable blob retrieval via the Beacon API without running a supernode. Semi-supernodes only download and store 50% of all erasure coded blob data which is just sufficient for recovering the blobs, therefore it uses significantly less resources and bandwidth compared to supernodes. (#8254 & #8265) - Add support for custody data column backfill, this will improve historical data availability across the network. (#7907)
- Improve blob and data column pruning performance (#8266).
- Fix a gossip validation regression introduced in in v8.0.0-rc.1 that could cause Lighthouse to incorrectly disconnect peers (#8215)
- Fix builder
get_headerJSON deserialisation. This impacts users running a builder middleware that uses JSON, e.g. vouch. (#8228) - Other various performance and bug fixes.
⚠️ Breaking Changes ⚠️
💾 Database Schema Upgrade
Lighthouse v8.0.0-rc.1 includes a database schema upgrade to schema v28. This upgrade greatly reduces the size of fork choice on disk, leading to reduced I/O.
No action is required upon upgrading, Lighthouse will automatically upgrade your database to the new version.
If you would like to downgrade to a prior release (e.g. v7.1.0), then you must follow the instructions in the Lighthouse book for downgrading the database schema before switching your binary to the old version.
Changes to Blob Retrieval and the existing /eth/v1/beacon/blob_sidecars API
Once PeerDAS is activated from the Fulu fork:
- Users will no longer be able to retrive blobs via the Beacon APIs. This is because each full node will only sample and store a small portion of blob data. (See PeerDAS)
- The existing
/eth/v1/beacon/blob_sidecars/{block_id}endpoint will return empty blob proofs in post-Fulu blob sidecars. This is because consensus clients will use cell proofs instead of blob proofs for blob verification. This endpoint will be removed in a future release.
🦀 Rust Version Requirements (MSRV)
If you build Lighthouse from source you need to upgrade your Rust compiler to v1.88.0 or later. Usually this can be accomplished with the command rustup update.
Jemalloc
When compiling Lighthouse from source, the jemalloc feature no longer exists. It is enabled by default and can be disabled by a new feature called sysmalloc.
🔑 Network Key Format Migration
Lighthouse BN's private key that it uses for networking cryptography has been changed from binary to hex string format. This is only relevant for users who are manually manipulating these keys, or downgrading to an older version of Lighthouse after running v8.0.0-rc.1.
Lighthouse will automatically change the format of the key from binary to hex upon upgrading. Because the new key format is not supported by previous versions of Lighthouse, the key must be manually deleted if you would like to downgrade. The key can be found at $datadir/network/key.
🍎 Platform Support Changes
Pre-built macOS x86_64 binaries are no longer provided (#7862). Apple, GitHub runners, and Rust are dropping x86_64 macOS support, so we have made the decision to phase out support.
macOS x86 users should use the Linux Docker image, the homebrew package, or build Lighthouse from source.
🖥️ CLI Flag Changes
- Changed: The default
--block-cache-sizeis now 0 (#8066). To re-enable, use--block-cache-size Nwith a non-zero argument. We recommend leaving the cache disabled, as its absence improves performance for block persistence and RPC responses.
🦓 Fulu
This release candidate introduces full support for the Fulu hard fork, paired with the Osaka hard fork on the execution layer - together known as Fusaka - brings PeerDAS (Data Availability Sampling) and several new features to Ethereum. See this post for details.
New CLI Flags
--supernode: Subscribe to all data column subnets and run as a PeerDAS supernode (#8083). The old name--subscribe-all-data-column-subnetsis aliased for now but will eventually be removed.
🔧 Memory & Performance Fixes
- Fixed reprocess queue memory leak (#8065): Resolves gradual memory consumption increase during normal operation
- Block cache optimization (#8066): Cache now disabled by default, eliminating contention issues
- Reduced KZG verification overhead: Removed unnecessary verification from local block production (#7713, #7771)
📊 Add OpenTelemetry support
Lighthouse now includes built-in OpenTelemetry support for advanced monitoring and performance analysis. OpenTelemetry provides detailed traces showing exactly how your node processes blocks, handles network requests, and performs validator duties - breaking down operations into individual steps with precise timing data. This helps developers and operators identify bottlenecks, troubleshoot performance issues, and potentially optimize their setup.
New /eth/v1/beacon/blobs API for Blob Retrieval
Lighthouse now implements the /eth/v1/beacon/blobs/{block_id} API (#8103). L2s are encouraged to switch to using this API ahead of the deprecation of the blob sidecars API.
New CLI Flags
--telemetry-collector-url: Connect to an OpenTelemetry GRPC backend (e.g. opentelemetry-collector, Tempo) to export traces (#7816)--telemetry-service-name: Override the service name differentiating traces when running multiple nodes
Getting Started: Set up an OpenTelemetry collector (such as Grafana Tempo) and run Lighthouse beacon node with the following flags:
--telemetry-collector-url http://localhost:4317 --telemetry-service-name lighthouse-bn
Other Notable Changes
- SSZ default: Validator client now uses SSZ by default for
/eth/v3/validator/blocksendpoint (#7727) - Selection Beacon API endpoints: Implement selections Beacon API endpoints to support DVT middleware (#7016)
- New experimental beacon node flag:
--complete-blob-backfillflag enables backfilling all blobs beyond the 18-day window (#7751)
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users (testnet) | High | High |
| Non-Staking Users (testnet) | High | --- |
| Staking Users (mainnet) | N/A | N/A |
| Non-Staking Users (mainnet) | N/A | --- |
See Update Priorities for more information about this table.
Testnet users should update both the Lighthouse VC and BN to v8.0.0-rc.2 if using separate binaries. The execution layer client (e.g. Geth, Reth, Besu, Nethermind, Erigon) must also be updated prior to the Fulu fork.
All Changes
- Release v8.0.0 rc.2 (#8255)
- New design for blob/column pruning (#8266)
- Only publish reconstructed columns that we need to sample (#8269)
- Trigger backfill on startup if user switches to a supernode or semi-supernode (#8265)
- Add
--semi-supernodesupport (#8254) - Custody backfill sync (#7907)
- Fix data column rpc request (#8247)
- Improve block header signature handling (#8253)
- Add
versionto the response of beacon APIgetPendingConsolidations(#8251) - Use
millis_from_slot_startwhen comparing against reconstruction deadline (#8246) - Sync cleanups (#8230)
- Fix
get_headerJSON deserialization. (#8228) - Avoid attempting to serve blobs after Fulu fork (#7756)
- Feature gate test CLI flags (#8231)
- More proposer shuffling cleanup (#8130)
- Max reconstruction delay as a function of slot time (#8067)
- Revert incorrect fix made in #8179 (#8215)
- Add
eip_3076crate (#8206) - #6853 Adding store tests for data column pruning (#7228)
- Ignore extra columns in da cache (#8201)
- Remove
safe_arithand import from crates.io (#8191) - Add
max_blobs_per_blockcheck to data column gossip validation (#8198) - Downgrade light client error logs (#8196)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: `15E66D941F69...
Mr. Frundles
Summary
Lighthouse v8.0.0-rc.1 is a release candidate for the upcoming Fulu-Osaka (Fusaka) hard fork, targeting the Holesky, Hoodi, and Sepolia testnets. Upgrading to v8.0.0-rc.1 or the previously released v8.0.0-rc.0 is mandatory prior to the Fulu forks on Sepolia and Hoodi:
- Fulu on Sepolia: 2025-10-14 07:36:00 UTC. Slot 8724480.
- Fulu on Hoodi: 2025-10-28 18:53:12 UTC. Slot 1622016.
This release brings full Fusaka support (including PeerDAS), enhanced networking capabilities, and other optimisations.
Users already running v8.0.0-rc.0 on testnets are encouraged to upgrade to help us test prior to the mainnet fork.
This release is not recommended for mainnet, although mainnet users experiencing memory leaks are encouraged to upgrade to v8.0.0-rc.0.
Changes Since v8.0.0-rc.0
The main changes since v8.0.0-rc.0 are listed below. The rest of the release notes describe the changes since v7.1.0.
- Lighthouse now implements the
/eth/v1/beacon/blobs/{block_id}API (#8103). L2s are encouraged to switch to using this API ahead of the deprecation of the blob sidecars API. - Block proposal times have been greatly reduced on Holesky (#8156), with reductions expected on other networks as well.
- Fewer data columns are now stored on full nodes (#8188). This reduces the disk usage of most nodes on Fulu-enabled networks.
⚠️ Breaking Changes ⚠️
💾 Database Schema Upgrade
Lighthouse v8.0.0-rc.1 includes a database schema upgrade to schema v28. This upgrade greatly reduces the size of fork choice on disk, leading to reduced I/O.
No action is required upon upgrading, Lighthouse will automatically upgrade your database to the new version.
If you would like to downgrade to a prior release (e.g. v7.1.0), then you must follow the instructions in the Lighthouse book for downgrading the database schema before switching your binary to the old version.
🦀 Rust Version Requirements (MSRV)
If you build Lighthouse from source you need to upgrade your Rust compiler to v1.88.0 or later. Usually this can be accomplished with the command rustup update.
Jemalloc
When compiling Lighthouse from source, the jemalloc feature no longer exists. It is enabled by default and can be disabled by a new feature called sysmalloc.
🔑 Network Key Format Migration
Lighthouse BN's private key that it uses for networking cryptography has been changed from binary to hex string format. This is only relevant for users who are manually manipulating these keys, or downgrading to an older version of Lighthouse after running v8.0.0-rc.1.
Lighthouse will automatically change the format of the key from binary to hex upon upgrading. Because the new key format is not supported by previous versions of Lighthouse, the key must be manually deleted if you would like to downgrade. The key can be found at $datadir/network/key.
🍎 Platform Support Changes
Pre-built macOS x86_64 binaries are no longer provided (#7862). Apple, GitHub runners, and Rust are dropping x86_64 macOS support, so we have made the decision to phase out support.
macOS x86 users should use the Linux Docker image, the homebrew package, or build Lighthouse from source.
🖥️ CLI Flag Changes
- Changed: The default
--block-cache-sizeis now 0 (#8066). To re-enable, use--block-cache-size Nwith a non-zero argument. We recommend leaving the cache disabled, as its absence improves performance for block persistence and RPC responses.
🦓 Fulu
This release candidate introduces full support for the Fulu hard fork, paired with the Osaka hard fork on the execution layer - together known as Fusaka - brings PeerDAS (Data Availability Sampling) and several new features to Ethereum. See this post for details.
New CLI Flags
--supernode: Subscribe to all data column subnets and run as a PeerDAS supernode (renamed from--subscribe-all-data-column-subnets) (#8083). The old name is aliased for now but will eventually be removed.
🔧 Memory & Performance Fixes
- Fixed reprocess queue memory leak (#8065): Resolves gradual memory consumption increase during normal operation
- Block cache optimization (#8066): Cache now disabled by default, eliminating contention issues
- Reduced KZG verification overhead: Removed unnecessary verification from local block production (#7713, #7771)
📊 Add OpenTelemetry support
Lighthouse now includes built-in OpenTelemetry support for advanced monitoring and performance analysis. OpenTelemetry provides detailed traces showing exactly how your node processes blocks, handles network requests, and performs validator duties - breaking down operations into individual steps with precise timing data. This helps devlopers and operators identify bottlenecks, troubleshoot performance issues, and potentially optimize their setup.
New CLI Flags
--telemetry-collector-url: Connect to an OpenTelemetry GRPC backend (e.g. opentelemetry-collector, Tempo) to export traces (#7816)--telemetry-service-name: Override the service name differentiating traces when running multiple nodes
Getting Started: Set up an OpenTelemetry collector (such as Grafana Tempo) and run Lighthouse beacon node with the following flags:
--telemetry-collector-url http://localhost:4317 --telemetry-service-name lighthouse-bn
Other Notable Changes
- SSZ default: Validator client now uses SSZ by default for
/eth/v3/validator/blocksendpoint (#7727) - Selection Beacon API endpoints: Implement selections Beacon API endpoints to support DVT middleware (#7016)
- New experimental beacon node flag:
--complete-blob-backfillflag enables backfilling all blobs beyond the 18-day window (#7751)
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users (testnet) | High | High |
| Non-Staking Users (testnet) | High | --- |
| Staking Users (mainnet) | N/A | N/A |
| Non-Staking Users (mainnet) | N/A | --- |
See Update Priorities for more information about this table.
Testnet users should update both the Lighthouse VC and BN to v8.0.0-rc.1 if using separate binaries. The execution layer client (e.g. Geth, Reth, Besu, Nethermind, Erigon) must also be updated prior to the Fulu fork.
Mainnet users may consider upgrading if experiencing high memory usage. However this release candidate does NOT have mainnet Fulu fork baked in yet, as the fork schedule has not been finalised. Users will have to upgrade to the v8.0.0 mainnet release before the mainnet Fulu fork.
All Changes
- Release v8.0.0-rc.1 (#8185)
- Persist only custody columns in db (#8188)
- Fix duplicate fields being logged when the field exists in both the span and the event (#8183)
- Update
ForkName::latest_stableto Fulu for tests (#8181) - Reject data columns that does not descend from finalize root instead of ignoring it (#8179)
- Implement
/eth/v1/beacon/blobsendpoint (#8103) - Bump kzg library versions (#8174)
- Block proposal optimisations (#8156)
- Remove deprecated CLI flags and references for v8.0.0 (#8142)
- Quote
BeaconState::proposer_lookaheadin JSON repr (#8167) - Fallback to getPayload v1 if v2 fails (#8163)
- Fulu ASCII art (#8151)
- Remove unnecessary warning logs and update logging levels (#8145)
- Improve spec compliance for
/eth/v1/config/specAPI (#8144) - Bump superstruct to
0.10.0(#8133) - Update book for DB schema v28 (#8132)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| aarch64 | lighthouse-v8.0.0-rc.1-aarch64-apple-darwin.tar.gz | PGP Signature | |
| x86_64 | lighthouse-v8.0.0-rc.1-x86_64-unknown-linux-gnu.tar.gz | [PGP Signature](https://github.com/sigp/lighthou... |
Memory Rick
Summary
Lighthouse v8.0.0-rc.0 is a release candidate for the upcoming Fulu-Osaka (Fusaka) hard fork, targeting the Holesky, Hoodi, and Sepolia testnets. It is a required upgrade for the upcoming Fusaka hard forks on these testnets.
- Fulu on Holesky: 2025-10-01 08:48:00 UTC. Slot 5283840.
- Fulu on Sepolia: 2025-10-14 07:36:00 UTC. Slot 8724480.
- Fulu on Hoodi: 2025-10-28 18:53:12 UTC. Slot 1622016.
This release brings full Fusaka support (including PeerDAS), enhanced networking capabilities, and other optimisations.
While primarily intended for testnets, this release includes a memory leak fix and several performance improvements that may be useful to some mainnet users. However, the Fusaka upgrade has not yet been scheduled on mainnet, so mainnet users who choose to upgrade will still need to upgrade again to the official v8.0.0 mainnet release (scheduled for November 2025) before the mainnet fork.
⚠️ Breaking Changes ⚠️
💾 Database Schema Upgrade
Lighthouse v8.0.0-rc.0 includes a database schema upgrade to schema v28. This upgrade greatly reduces the size of fork choice on disk, leading to reduced I/O.
No action is required upon upgrading, Lighthouse will automatically upgrade your database to the new version.
If you would like to downgrade to a prior release (e.g. v7.1.0), then you must follow the instructions in the Lighthouse book for downgrading the database schema before switching your binary to the old version.
🦀 Rust Version Requirements (MSRV)
If you build Lighthouse from source you need to upgrade your Rust compiler to v1.88.0 or later. Usually this can be accomplished with the command rustup update.
Jemalloc
When compiling Lighthouse from source, the jemalloc feature no longer exists. It is enabled by default and can be disabled by a new feature called sysmalloc.
🔑 Network Key Format Migration
Lighthouse BN's private key that it uses for networking cryptography has been changed from binary to hex string format. This is only relevant for users who are manually manipulating these keys, or downgrading to an older version of Lighthouse after running v8.0.0-rc.0.
Lighthouse will automatically change the format of the key from binary to hex upon upgrading. Because the new key format is not supported by previous versions of Lighthouse, the key must be manually deleted if you would like to downgrade. The key can be found at $datadir/network/key.
🍎 Platform Support Changes
Pre-built macOS x86_64 binaries are no longer provided (#7862). Apple, GitHub runners, and Rust are dropping x86_64 macOS support, so we have made the decision to phase out support.
macOS x86 users should use the Linux Docker image, the homebrew package, or build Lighthouse from source.
🖥️ CLI Flag Changes
- Changed: The default
--block-cache-sizeis now 0 (#8066). To re-enable, use--block-cache-size Nwith a non-zero argument. We recommend leaving the cache disabled, as its absence improves performance for block persistence and RPC responses.
🦓 Fulu
This release candidate introduces full support for the Fulu hard fork, paired with the Osaka hard fork on the execution layer - together known as Fusaka - brings PeerDAS (Data Availability Sampling) and several new features to Ethereum. See this post for details.
New CLI Flags
--supernode: Subscribe to all data column subnets and run as a PeerDAS supernode (renamed from--subscribe-all-data-column-subnets) (#8083). The old name is aliased for now but will eventually be removed.
🔧 Memory & Performance Fixes
- Fixed reprocess queue memory leak (#8065): Resolves gradual memory consumption increase during normal operation
- Block cache optimization (#8066): Cache now disabled by default, eliminating contention issues
- Reduced KZG verification overhead: Removed unnecessary verification from local block production (#7713, #7771)
📊 Add OpenTelemetry support
Lighthouse now includes built-in OpenTelemetry support for advanced monitoring and performance analysis. OpenTelemetry provides detailed traces showing exactly how your node processes blocks, handles network requests, and performs validator duties - breaking down operations into individual steps with precise timing data. This helps devlopers and operators identify bottlenecks, troubleshoot performance issues, and potentially optimize their setup.
New CLI Flags
--telemetry-collector-url: Connect to an OpenTelemetry GRPC backend (e.g. opentelemetry-collector, Tempo) to export traces (#7816)--telemetry-service-name: Override the service name differentiating traces when running multiple nodes
Getting Started: Set up an OpenTelemetry collector (such as Grafana Tempo) and run Lighthouse beacon node with the following flags:
--telemetry-collector-url http://localhost:4317 --telemetry-service-name lighthouse-bn
Other Notable Changes
- SSZ default: Validator client now uses SSZ by default for
/eth/v3/validator/blocksendpoint (#7727) - Selection Beacon API endpoints: Implement selections Beacon API endpoints to support DVT middleware (#7016)
- New experimental beacon node flag:
--complete-blob-backfillflag enables backfilling all blobs beyond the 18-day window (#7751)
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users (testnet) | High | High |
| Non-Staking Users (testnet) | High | --- |
| Staking Users (mainnet) | Low | Low |
| Non-Staking Users (mainnet) | Low | --- |
See Update Priorities for more information about this table.
Testnet users should update both the Lighthouse VC and BN to v8.0.0-rc.0 if using separate binaries. The execution layer client (e.g. Geth, Reth, Besu, Nethermind, Erigon) must also be updated prior to the Fulu fork.
Mainnet users may consider upgrading if experiencing high memory usage. However this release candidate does NOT have mainnet Fulu fork baked in yet, as the fork schedule has not been finalised. Users will have to upgrade to the v8.0.0 mainnet release before the mainnet Fulu fork.
All Changes
- Release v8.0.0 rc.0 (#8127)
- Fix proposer shuffling decision slot at boundary (#8128)
- Fix bug in fork calculation at fork boundaries (#8121)
- Fix bugs in proposer calculation post-Fulu (#8101)
- Fulu testnet configs (#8117)
- Only mark block lookups as pending if block is importing from gossip (#8112)
- Only send data coumn subnet discovery requests after peerdas is scheduled (#8109)
- Run reconstruction inside a scoped rayon pool (#8075)
- Use HTTPS for xdelta3 in Cargo.toml (#8094)
- Reduce
TARGET_BACKFILL_SLOTSin checkpoint sync test (#8102) - Refine HTTP status logs (#8098)
- Merge remote-tracking branch 'origin/stable' into unstable
- Always upload sim test logs (#8082)
- Rename
--subscribe-all-data-column-subnetsto--supernodeand make it visible in help (#8083) - Consolidate
reqresp_pre_import_cacheintodata_availability_checker(#8045) - Use scoped rayon pool for backfill chain segment processing (#7924)
- Make the block cache optional (#8066)
- Add release helper script to list PRs and breaking changes (#7737)
- Add experimental complete-blob-backfill flag (#7751)
- Fix reprocess queue memory leak (#8065)
- Prevent silently dropping cell proof chunks (#8023)
- Update issue template (#7938)
- fix(rate_limiter): add missing prune calls for light client protocols (#8058)
- Don't penalize peers for extending ignored chains (#8042)
- chore: Bump discv5 and remove generic DefaultProtocolId in metrics (#8056)
- Enable reconstruction for nodes custodying more than 50% of columns and instrument tracing (#8052)
- Add instrumentation to
recompute_head_at_slot(#8049) - Reduce reconstruction queue capacity (#8053)
- Remove column reconstruction when processing rpc requests (#8051)
- Another check to prevent duplicate block imports (#8050)
- Update engine methods in notifier (#8038)
- Add max delay to reconstruction (#7976)
- Add missing event in
PendingComponentspan and clean up sync logs (#8033) - Remove unused logging metrics (#7997)
- Expose functions to do preliminary slashing checks (#7783)
- Increase HTTP timeouts on CI (#8031)
- Fixed orphaned
verify_cell_proof_chunkspan. (#8026) - Remove cargo test targets, use nextest exclusively (#7874)
- chore: add comment to PendingComponents (#7979)
- Create
network_utilscrate (#7761) - Skip column gossip verification logic during block production (#7973)
- Fix http api tests ci (#7943)
- Reduce noise in
Debugimpl ofRuntimeVariableList(#8007) - Instrument tracing on block production code path (#8017)
- fix: extra fields in logs (#8009)
- Fix stuck data column lookups by improving peer selection and retry logic (#8005)
- Don't penalize peers if locally constructed light...