github sigp/lighthouse v8.3.0
Simple Rick

4 hours ago

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.yml in 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-limit take 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-slots beacon 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-api v1.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.3 and v1.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_confirmation event 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.
  • clang is 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 submitBlindedBlock v1 endpoint, and now uses only submitBlindedBlockV2 (#10213). Mainnet users of mev-boost or 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 required include_payload query parameter. The Eth-Builder-Url response header must be forwarded when publishing the block.
  • The non-standard late_head SSE event has been removed.
  • The data_column_sidecar SSE event no longer includes kzg_commitments or versioned_hashes.
  • The keymanager API's GET /eth/v1/validator/{pubkey}/graffiti returns 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 requested versioned_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_withdrawals and GET /eth/v1/beacon/states/{state_id}/builder_pending_payments. All of them support JSON and SSZ (#10268, #10256, #10285).
  • After Gloas, the block SSE event includes builder_index and block_hash, and the payload_attributes SSE event includes safe_block_hash and finalized_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-skips and --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 with 0x02 (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 --distributed mode with middleware such as Charon always sent is_aggregator: false in beacon committee subscriptions (#9947).
  • Stateless Gloas block production: The validator client's new --stateless-block-production flag 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_version when a BPO fork is scheduled before the next regular fork, so other clients can still discover Lighthouse peers during that window (#10161).
  • /lighthouse/nat fix: 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-endpoint and POST /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 zip crate 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_preferences endpoint (#10268)
  • Gloas builder circuit breaker (#10162)
  • Convert network and lighthouse_network tests to Spec (#10290)
  • fix(network): reject conflicting finalized roots at the same epoch (#10288)
  • Update rustls to fix CI (#10355)
  • Don't ban peers whose finalized root is in failed_chains (#10346)
  • Implement builder_pending_withdrawals and builder_pending_payments state 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 SingleAttestation with large index earlier (#10330)
  • Remove unused return value and rename ingoing to incoming in 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 BlobInfo and DataColumnInfo into DataInfo (#9957)
  • Fix cross builds after cc bump (#10278)
  • Split http_api tests by preset (#10284)
  • Gloas progressive merkle proofs (#9790)
  • Fix empty BlocksByRoot responses during Gloas column publish (#9976)
  • Split beacon_chain tests 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_hash and finalized_block_hash to 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 submitBlindedBlock v1 (#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
Apple logo aarch64 lighthouse-v8.3.0-aarch64-apple-darwin.tar.gz PGP Signature
Linux logo x86_64 lighthouse-v8.3.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
Raspberrypi logo aarch64 lighthouse-v8.3.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
System Option - Resource
Docker logo Docker v8.3.0 sigp/lighthouse

Don't miss a new lighthouse release

NewReleases is sending notifications on new releases.