Summary
Lighthouse v8.3.0 is a mainnet-ready release with support for the Gloas hard fork on Hoodi 🎉. It also introduces the Fast Confirmation Rule (FCR), enables partial data columns by default on all networks, and adds new builder configuration and validator features, along with security fixes and many other improvements since v8.2.3.
Hoodi operators must upgrade before 26 October 2026 at 17:42:48 UTC. Update both the beacon node and validator client, together with a compatible execution client.
This release is suitable for mainnet, and we recommend that all mainnet users upgrade. The Gloas fork is not yet scheduled on mainnet, so another release (v9.0.0) will be required for Gloas.
This release fixes several security issues. We will publish the details at a later date.
If you are upgrading from v8.2.x, please read the upgrade notes below. In particular:
- The database is migrated automatically to schema v32.
- Pre-built Linux binaries now require glibc 2.34 or later (e.g. Ubuntu 22.04, Debian 12, RHEL 9 or newer). Docker users are not affected.
- Building from source now requires Rust 1.91.0 or later and
clang. - Partial data columns are now enabled by default on mainnet.
🐻❄️ Gloas on Hoodi
This release includes the fork epoch for Hoodi's Gloas upgrade, the consensus-layer half of Glamsterdam, paired with Amsterdam on the execution layer.
| Network | Fork epoch | Fork slot | Activation time |
|---|---|---|---|
| Sepolia | 353024 | 11296768 | 6 October 2026, 13:53:36 UTC (activated) |
| Hoodi | 132352 | 4235264 | 26 October 2026, 17:42:48 UTC |
| Mainnet | --- | --- | Not yet scheduled |
See the Glamsterdam Hoodi announcement for compatible execution-client releases. The Sepolia announcement has the Sepolia details.
Gloas introduces enshrined proposer-builder separation (ePBS). Lighthouse supports the associated block-production and builder workflows, including external builder bid selection, payload timeliness committee (PTC) duties, optimistic sync, and historical backfill.
Hoodi validators should review their builder configuration before the fork:
- External builders are configured in
builder_definitions.ymlin the validator directory. This supports multiple builders, minimum bids, builder boost factors, and limits on trusted execution payments. - Per-validator builder settings can be managed through the keymanager API without restarting the validator client.
- Gas limits follow the network's gas-limit schedule unless explicitly overridden. On Hoodi (as on Sepolia), the scheduled default becomes 200 million gas at Gloas. Existing per-validator settings and an explicit
--gas-limittake precedence. Mainnet has no gas-limit schedule, so its default remains 60 million. - Builder circuit breaker: After Gloas, the beacon node's builder circuit breaker counts blocks whose payloads were never revealed, rather than missed slots. A builder that fails to reveal its payload is also temporarily banned. The new
--builder-fallback-ban-slotsbeacon node flag (default: 32) controls how long a ban lasts. See the builder documentation (#10162).
See the builder configuration guide for details. builder_definitions.yml only applies from the Gloas fork onwards. Mainnet validators using mev-boost via --builder do not need to change anything for this release.
Since v8.3.0-rc.0, Gloas support has also gained:
- Web3Signer compatibility: Gloas signing requests now follow
remote-signing-apiv1.4.0. Validators using Web3Signer must run Web3Signer 26.9.0 or newer before the fork (#10207). - Spec updates to consensus-specs
v1.7.0-beta.3andv1.7.0-beta.4(#10212, #10307). - Subscription to the next fork's gossip topics one epoch before the fork, for a smoother fork transition (#10204).
- Fixes for PTC duties at the fork boundary, data-column pruning, and payload attribute preparation (#10193, #10286, #10234).
- New standard Beacon API endpoints for Gloas (see the API changes below).
⚡ Fast Confirmation Rule
Lighthouse now supports the Fast Confirmation Rule (FCR), which typically confirms blocks within 1–2 slots of the head (12–24 seconds) under normal network conditions. Without FCR, confirmation takes about two epochs (~13 minutes).
When enabled, Lighthouse supplies the FCR-confirmed execution block as the execution layer's safe_block_hash. Applications using the execution API's safe block tag therefore see confirmations much sooner. Ethereum's finalization process is unchanged. Unlike finality, fast confirmations rely on network synchrony assumptions, so applications that need the strongest guarantees should keep using the finalized tag.
FCR is disabled by default. Enable it by adding the following flag to your beacon node:
--enable-fast-confirmation
Important
We currently recommend enabling FCR only on non-validating beacon nodes, such as nodes that serve RPC providers, wallets, bridges, indexers and other applications that read the safe block. FCR is a new feature, so please leave it disabled on beacon nodes that serve validators while we gain operational experience with it on mainnet.
FCR works before and after Gloas and can be enabled independently of the fork.
This release also includes:
- A
fast_confirmationevent on/eth/v1/events. - Prometheus metrics for confirmation delay, errors, and fallbacks, plus a Grafana dashboard in lighthouse-metrics.
- Persistence of confirmed roots across restarts, with restart behaviour updated to match the latest spec (#10224).
See the Fast Confirmation Rule page in the Lighthouse Book for the expected logs, SSE events and metrics. The implementation is in #8951 and #10160.
⚠️ Upgrade Notes
💾 Database schema upgrade
The beacon node automatically upgrades its database to schema v32 on startup. This includes:
- Fixes to light-client update storage.
- Support for pruning finalized Gloas payload bodies.
- A single tracker for the oldest stored blob and data-column data, which fixes pruning on freshly synced nodes (#9957).
Nodes running v8.3.0-rc.0 are migrated from schema v31 to v32 automatically.
To downgrade to v8.2.x, stop the beacon node and use the v8.3.0 binary to migrate the database back to schema v29 before switching binaries. Downgrading is supported only before Gloas. It is not possible on Sepolia, and on Hoodi it is only possible before the fork. Follow the database downgrade instructions.
🐧 Linux binary requirements
Pre-built Linux binaries are now built natively on Debian Bookworm and require glibc 2.34 or later (previously 2.18) (#10283):
- Supported: Ubuntu 22.04+, Debian 12+, RHEL 9+ and other distributions with glibc ≥ 2.34. Docker users are not affected.
- No longer supported by the pre-built binaries: Ubuntu 20.04, Debian 11, RHEL 8 and other distributions with older glibc versions.
You can check your glibc version with ldd --version. Users on older distributions should switch to the Docker image, build from source, or upgrade their operating system.
🦀 Building from source
If you build Lighthouse from source:
- The minimum supported Rust version (MSRV) is now 1.91.0 (previously 1.88.0). Update with
rustup update stable. clangis now required, as it is used to compile C++ dependencies. Install it with your package manager (e.g.sudo apt install clang) if it is not already present. See the build-from-source instructions.
💻 API changes
Users maintaining validator middleware, builder/relay infrastructure or API integrations should review these changes:
- Builder API: Lighthouse no longer falls back to the deprecated
submitBlindedBlockv1 endpoint, and now uses onlysubmitBlindedBlockV2(#10213). Mainnet users ofmev-boostor other builder sidecars should make sure they run an up-to-date release. - Gloas block production uses
POST /eth/v4/validator/blocks/{slot}, with builder configuration in the request body and a requiredinclude_payloadquery parameter. TheEth-Builder-Urlresponse header must be forwarded when publishing the block. - The non-standard
late_headSSE event has been removed. - The
data_column_sidecarSSE event no longer includeskzg_commitmentsorversioned_hashes. - The keymanager API's
GET /eth/v1/validator/{pubkey}/graffitireturns a plain string instead of a hex-encoded string. GET /eth/v1/beacon/blobs/{block_id}now returns blobs in the order of the block's KZG commitments, regardless of the order of the requestedversioned_hashes(#9944).- New Gloas endpoints:
GET /eth/v1/beacon/proposer_preferences,GET /eth/v1/beacon/states/{state_id}/ptc,GET /eth/v1/beacon/states/{state_id}/builder_pending_withdrawalsandGET /eth/v1/beacon/states/{state_id}/builder_pending_payments. All of them support JSON and SSZ (#10268, #10256, #10285). - After Gloas, the
blockSSE event includesbuilder_indexandblock_hash, and thepayload_attributesSSE event includessafe_block_hashandfinalized_block_hash(#10333, #10244).
🧩 Partial Data Columns
Partial data columns are now enabled by default on all networks, including mainnet, following their deployment on Hoodi and Sepolia. Mainnet nodes upgrading from v8.2.x will start using them automatically.
This reduces data-column propagation bandwidth by using data already available from the execution client. This release also adds partial-column support for Gloas, and hardens validation of partial-column headers (#10334).
To opt out, use:
--enable-partial-columns false
See #9896.
🖥️ CLI Changes
The following CLI flags were added or changed since v8.2.3. No flags were removed, so existing configurations continue to work.
Beacon node
- Changed
--builder-fallback-skipsand--builder-fallback-skips-per-epoch: After Gloas, these count blocks whose payloads were not revealed. External bids are then only used if the local build fails.
Validator client
- New
--stateless-block-production: Publishes self-built Gloas payload envelopes through any configured beacon node (#10036). - Changed
--gas-limit: If unset, the network's gas-limit schedule is used, falling back to 60,000,000. This makes no difference on mainnet.
Validator manager
- New
lighthouse validator_manager create --compounding: Creates validators with0x02(compounding) withdrawal credentials (#9702).
Other Notable Changes
- Data column backfill OOM fixed: Fixed the data column backfill memory blow-up listed as a known issue in v8.2.x, which particularly affected Gnosis chain. Excessive data-column requests and custody-backfill request accumulation are also fixed (#9665, #10048).
- System CA certificates trusted again: Outbound HTTPS connections (e.g. to Web3Signer, checkpoint sync servers or remote beacon nodes) once again trust certificate authorities installed in the system trust store, as well as the bundled public roots. This fixes a regression in v8.2.0 (#10110).
- Distributed validator aggregation fix: Fixed a bug where the VC in
--distributedmode with middleware such as Charon always sentis_aggregator: falsein beacon committee subscriptions (#9947). - Stateless Gloas block production: The validator client's new
--stateless-block-productionflag allows a locally built payload envelope to be published through any configured beacon node, improving compatibility with fallback and distributed-validator setups (#10036). - More timely validator messages: Sync committee messages are signed on head events, and payload timeliness votes are published when payload data becomes available (#9675, #9434).
- Sync and peer scoring fixes: Fixed Gloas sync failing to resume after restart, and fixed honest peers being banned after a failed sync of the canonical chain. Peers that report a conflicting finalized root are now rejected (#9940, #10346, #10288).
- Light-client fixes: Corrected update range queries and update streaming (#9668, #9643).
- Gnosis proposer re-org fix: Fixed rounding of the proposer re-org cutoff on networks with 5-second slots (#10102).
- ENR fork advertisement fix: The ENR now advertises the correct
next_fork_versionwhen a BPO fork is scheduled before the next regular fork, so other clients can still discover Lighthouse peers during that window (#10161). /lighthouse/natfix: The discv5 NAT status is now reported correctly without first scraping the metrics endpoint (#9303).- Mplex: Mplex remains enabled by default. The removal announced in v8.2.0 has been postponed.
- Experimental execution proofs: Experimental support for EIP-8025 execution proofs via
--proof-engine-endpointandPOST /eth/v1/beacon/execution_proofs. Not intended for production use (#10198, #10210, #10262).
Known Issues
There is an incompatibility between LH v8.3.0 and Besu versions prior to 26.10.0. Regardless of network, Besu users must upgrade to Besu 26.10.0 prior to updating the Lighthouse BN. See #10186.
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users (Hoodi & Sepolia) | High | High |
| Non-Staking Users (Hoodi & Sepolia) | High | --- |
| Staking Users (mainnet & other networks) | High | Medium |
| Non-Staking Users (mainnet & other networks) | High | --- |
See Update Priorities for more information about this table.
Hoodi users must update both the beacon node and validator client before the fork, together with their execution client. Mainnet users should prioritise updating the beacon node to receive the security fixes. Updating the validator client is recommended, especially for distributed-validator setups, but less urgent.
All Changes
- Release v8.3.0
- Update
zipcrate to fix CI audit failure (#10378) - Bump libp2p to patched version
- Skip unslashable proposer slashings
- Processor limits
- Limit requests at request time instead of response time
- Fix validator is not aggregator when VC is in DVT mode involving middleware (#9947)
- Implement
GET beacon/proposer_preferencesendpoint (#10268) - Gloas builder circuit breaker (#10162)
- Convert
networkandlighthouse_networktests to Spec (#10290) - fix(network): reject conflicting finalized roots at the same epoch (#10288)
- Update
rustlsto fix CI (#10355) - Don't ban peers whose finalized root is in failed_chains (#10346)
- Implement
builder_pending_withdrawalsandbuilder_pending_paymentsstate getter endpoints (#10285) - Implement PTC state getter endpoint (#10256)
- refactor(network): group peer_manager RPC protocol match arms (#10297)
- Remove the Router and dispatch network events directly (#10122)
- Drop PayloadVerificationStatus::is_optimistic (#10335)
- Propagate error for
import_execution_payload_envelope(#10332) - Add builder bid identity to the block event (#10333)
- Limit commitments in partial data column header (#10334)
- Reject future-slot blocks before writing to the
block_times_cache(#10331) - Reject
SingleAttestationwith large index earlier (#10330) - Remove unused return value and rename
ingoingtoincomingin peer manager (#9973) - Build Linux binaries natively instead of with cross (#10283)
- Validate the slot of Gloas RPC data columns against the bid (#10327)
- Pass ChainSpec to get_proposer_head instead of three threshold args (#10324)
- Prune Gloas data columns past withheld payloads and on abandoned forks (#10286)
- Gloas spec v1.7.0-beta.4 (#10307)
- Implement gossip verification of inclusion lists (#10182)
- Use should_build_on_full when preparing Gloas payload attributes (#10234)
- Schedule Gloas on Hoodi (#10304)
- Fix proposer re-org cutoff rounding on 5s slots (#10102)
- Propagate optimistic head errors (#10296)
- Fix lcli http-sync --known-common-ancestor argument parsing (#10245)
- Fix incorrect discv5 NAT status in /lighthouse/nat (#9303)
- Enable Gloas in the simulator tests (#10292)
- Move release builds to GitHub-hosted runners (#10282)
- Gloas spec v1.7.0-beta.3 (#10212)
- Tweak FCR restart logic to match latest spec (#10224)
- Resolve the fork from the block slot when loading the http-sync cache (#10276)
- Unify
BlobInfoandDataColumnInfointoDataInfo(#9957) - Fix cross builds after cc bump (#10278)
- Split
http_apitests by preset (#10284) - Gloas progressive merkle proofs (#9790)
- Fix empty BlocksByRoot responses during Gloas column publish (#9976)
- Split
beacon_chaintests by preset (#10246) - Add POST /eth/v1/beacon/execution_proofs (#10210)
- Make the execution layer optional with proof engine (#10262)
- Implement optional proofs with fork-choice optimistic (#10198)
- update libp2p (#10229)
- Add
safe_block_hashandfinalized_block_hashto Payload Attributes event (#10244) - Add inclusion_list_bits to ExecutionPayloadBid (#9729)
- Align the EIP-8025 proof types and gossip rules with the spec (#10236)
- Fix blob ordering when filtering blobs by versioned hash (#9944)
- Fix PTC duties at the Gloas fork boundary (#10193)
- Bump PTC SSE queue (#10239)
- Split up EF tests to run each preset separately (#10237)
- Fix Web3Signer Gloas request types for remote-signing-api v1.4.0 (#10207)
- Revert the execution proof availability gate (#10233)
- Add compile-time Spec alias and migrate types tests (#10158)
- Add documentation for fast confirmation rule (#10183)
- Use payload envelope summary in head snapshot and block production (#10187)
- Remove deprecated builder
submitBlindedBlockv1 (#10213) - Propagate beacon chain database read errors (#10217)
- Subscribe to next fork topics an epoch early (#10204)
- Fix nightly tests failing on phase0 and altair (#10200)
- Trust the system CA store for outbound HTTPS (#10110)
- Remove redundant todo (#10195)
- Keep ENR next_fork_version at a BPO fork (#10161)
- Add IL committee duties polling to the VC (#9799)
- Simplify fork boilerplate (#10164)
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.3.0-aarch64-apple-darwin.tar.gz | PGP Signature |
| | x86_64 | lighthouse-v8.3.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature |
| | aarch64 | lighthouse-v8.3.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature |
| System | Option | - | Resource |
| | Docker | v8.3.0 | sigp/lighthouse |