Summary
Lighthouse v8.3.0-rc.0 is a release candidate with support for the upcoming Gloas hard fork on Sepolia. 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.
Mainnet users should stick to v8.2.3 until v8.3.0 proper is released.
Sepolia operators must upgrade before 6 October 2026 at 13:53:36 UTC. Update both the beacon node and validator client, together with a compatible execution client.
This release is primarily intended for Sepolia and testing new features. The Gloas fork is not yet scheduled on Hoodi or mainnet.
🐻❄️ Gloas on Sepolia
This release includes the Sepolia activation configuration for Gloas, 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 |
See the Glamsterdam testnet announcement for the fork schedule and compatible execution-client releases.
Gloas introduces enshrined proposer-builder separation (ePBS). This release completes the associated block-production and builder workflows, including external builder bid selection, payload timeliness committee duties, optimistic sync, and historical backfill.
Sepolia validator operators 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 Sepolia, the scheduled default becomes 200 million gas at Gloas. Existing per-validator settings and an explicit
--gas-limittake precedence.
See the builder configuration guide for details.
⚡ Fast Confirmation Rule
Lighthouse now supports the Fast Confirmation Rule (FCR), which typically confirms blocks within 1–2 slots of the head under normal network conditions.
When enabled, Lighthouse supplies the FCR-confirmed execution block as the execution layer’s safe_block_hash. Applications consuming the execution API’s safe block tag can therefore observe confirmations much sooner. Ethereum’s finalization process remains unchanged.
FCR is disabled by default. Enable it by adding the following flag to your beacon node:
--enable-fast-confirmation
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.
- Persistence of confirmed roots across restarts.
⚠️ Upgrade Notes
💾 Database schema upgrade
The beacon node automatically upgrades its database to schema v31 on startup. This includes fixes to light-client update storage and support for pruning finalized Gloas payload bodies.
To downgrade to v8.2.x, stop the beacon node and use the v8.3.0-rc.0 binary to migrate the database back to schema v29 before switching binaries. Downgrading is supported only before Gloas. Follow the database downgrade instructions.
Nodes already running Gloas on older development builds require a fresh sync because the persisted Gloas fork-choice format has changed (#9934). Sepolia nodes upgrading before the fork migrate automatically.
💻 API changes
Users maintaining validator middleware or API integrations should review these changes:
- 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.
🧩 Partial Data Columns
Partial data columns are now enabled by default on all networks, including mainnet, following their deployment on Hoodi and Sepolia.
This reduces data-column propagation bandwidth by using data already available from the execution client. This release also adds partial-column support for Gloas.
To opt out, use:
--enable-partial-columns false
See #9896.
Other Notable Changes
- 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). - Compounding validator creation:
lighthouse validator_manager create --compoundingcreates validators with0x02withdrawal credentials (#9702). - 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 backfill fixes: Fixed custody-backfill request accumulation, excessive data-column requests, and Gloas sync failing to resume after restart (#9665, #10048, #9940).
- Light-client fixes: Corrected update range queries and update streaming (#9668, #9643).
Update Priority
This table provides priorities for which classes of users should update particular components.
| User Class | Beacon Node | Validator Client |
|---|---|---|
| Staking Users (Sepolia) | High | High |
| Non-Staking Users (Sepolia) | High | --- |
| Staking Users (other networks) | Low | Low |
| Non-Staking Users (other networks) | Low | --- |
See Update Priorities more information about this table.
We do not recommend this release for mainnet, unless you are specifically interested in testing new features.
All Changes
- Release v8.3.0-rc.0
- Merge branch 'release-v8.2.3' into unstable
- Fix FCR restart UX bug (#10160)
- Restore transitive schema migration code (#10170)
- Wire the inclusion_list gossip topic (#9846)
- Keep fork choice finalized checkpoint consistent with split (#10165)
- Prune finalised payload envelopes (#10015)
- Update tests to be spec agnostic (#10051)
- Re-enable optimistic sync for Gloas payload envelopes (#9934)
- Work around libp2p derive warning on Rust 1.100 (#10153)
- Progressive list type-level limits (#10106)
- Enable partial data columns by default on all networks (#9896)
- GET
/eth/v1/validator/{pubkey}/graffitito return String instead of hex string (#10117) - Use block hash in payload invalidation tests (#10137)
- Notify reprocessing queue after RPC custody column imports (#10128)
- Eagerly sign sync committee messages on head events (#9675)
- Apply Beacon API amendments to payload attestation data endpoint (#9959)
- Replay votes through compute_deltas when resetting to optimistic (#10133)
- Name invalidated payloads by execution block hash, not by block root (#10130)
- Mark the forkchoiceUpdated head hash valid, not the head block (#10131)
- Remove ExecutionStatus predicates with no production callers (#10129)
- Remove perfidious fn ExecutionStatus::block_hash (#10126)
- Introduce ParentPayloadStatus for the parent payload edge (#10121)
- Add gas limit schedule (#9878)
- Add stateless Gloas block production to the VC (#10036)
- Route fork-choice execution status through fork choice nodes (#10100)
- Gloas spec v1.7.0-beta.2 (#10114)
- Fix gossip bid rejection at epoch boundaries and on the head's parent (#10061)
- Document won't-fix vote slot reset in V28 to V29 migration (#10108)
- Fix custody backfill N× DataColumnsByRange amplification (#10048)
- update: chiado bootnodes enrs (#9923)
- engine_forkchoiceUpdatedV4: provide custody columns to the EL (#9547)
- enable mplex by default (#10070)
- Add license/cla check in mergify (#10049)
- Replace EF bootnodes with NodeOps fleet (#10025)
- Add per-validator builder configuration API (#9864)
- Migrate the validator client to the Gloas builder API (Gloas builder API 5/5) (#9807)
- Add support for engine_newPayloadV6 (#10017)
- Wire the inclusion list store into BeaconChain (#9960)
- Fix Gloas nodes failing to resume sync after restart (#9940)
- Add support for engine_forkchoiceUpdatedV5 (#9935)
- Cache slashed justified balances (#9830)
- Add base support for Heze block production (#9714)
- fork choice compliance tests (#9710)
- Revert "Move
SlotAssignmentcache toCanonicalHead(#9661)" (#10047) - Bump
rustlsto fix cargo audit failure (#10052) - Avoid copying unchanged justified balances (#10023)
- broadcast PTC votes early on payload availability (#9434)
- Enable FCR test cases (#9964)
- Standardise FCR metrics (#9987)
- Add 0x02 support to validator creation (#9702)
engine_getBlobsV4(#9438)- Convert produceBlockV4 to POST and round-trip Eth-Builder-Url (Gloas builder API 4/5) (#9806)
- Gloas spec beta 0 (#10014)
- Fix flaky unknown block test (#10001)
- Don't return Pending node when fork choice reverts to justified block (#9962)
- Add attestations test with
payload_presentin op pool (#9531) - Ignore exits for all withdrawing validators in Gloas block prod (#9983)
- Remove buggy parent_root calculations from Gloas block production (#9997)
- Avoid walking already indexed validators in the monitor (#9995)
- Enable partials by default on custom networks (#9773)
- Delete unused
engine_getPayloadBodiesByRangeclient code (#10007) - Initiate a shutdown if the node cannot recover from a diverged fork choice (#9819)
- Fix order of fields in
PartialDataColumnGroupId(#9977) - Add tests to check for divergence between fork choice and the store (#9818)
- make historical backfill DB writes crash-safe (#9776)
- Add
engine_getPayloadBodiesByHashV2support (#9980) - disable mplex by default (#9522)
- Update Docker builder to Debian Bookworm (#9984)
- Add Gloas bid selection, block production, and bid gossip processing (Gloas builder API 3/5) (#9805)
- Reject bids whose block hash equals the parent block hash (#9970)
- Add support for engine_getInclusionListV1 (#9749)
- Fix false peer penalties during Gloas custody backfill (#9953)
- Fix quadratic pending-validator scan in Gloas builder onboarding (#9954)
- Gate payload import on optional execution proofs (#9808)
- Count peers after registering the connection, not before (#9787)
- Validator client publishes legacy registrations after Gloas (#9939)
- Add check for
--disable-proposer-reorgflag (#9926) - Fix blob retrieval for Gloas blocks (#9937)
- Cache pending deposit signatures for builder onboarding at the gloas fork (#9817)
- Fix valid Gloas bids rejected with InvalidGasLimit after an empty parent (#9905)
- Add in-memory inclusion list store (#9744)
- Add inclusion list committee derivation (#9742)
- Deduplicate execution payload envelopes on gossip (#9775)
- Check withdrawals consistency between block prod and payload attributes (#9920)
- Set all ptc bits for validators appearing multiple times in ptc (#9899)
- Round floating-point values before logging (#9904)
- Send out status message to peers after a CGC change (#9877)
- Attempt to fix flaky fallback simulator test (#9908)
- Test all Gloas proposer preparation payload attributes (#9914)
- Set parent payload availability bit for attestation packing and the attestation simulator (#9828)
- Enable Gloas FCR ef-tests and use parent-first safe hash (#9910)
- Gloas payload attributes use the wrong withdrawals after an empty parent (#9894)
- Add Gloas Builder API client and adapt execution layer (Gloas builder API 2/5) (#9804)
- Add builder API types, request-auth domain, and eth2 client methods (Gloas builder API 1/5) (#9803)
- Fix clippy lints for Rust 1.98 (#9897)
- Explicitly set bid fields when upgrading to Gloas (#9876)
- Gloas alpha 14 EF tests (#9884)
- Sign payload attestations concurrently in the VC (#9756)
- Delete stream_blocks_fallback and unused eth_getBlockByHash reconstru… (#9813)
- fix: remove parenthesis for historical backfill (#9814)
- Fix builder payment weight double count under target equivocation (#9879)
- Do not fatally ban peers for DataColumnsByRange ResourceUnavailable (#9874)
- Use Gloas timings for aggregate attestations and sync committee messages (#9823)
- Update blst to 0.3.17 (#9869)
- Bump EF tests to v1.7.0-alpha.13 (#9764)
- Allow multiple bids compatible with the head view (alpha.13) (#9763)
- Fix payload availability lookup using the parent block's slot (alpha.13) (#9761)
- Update h2 to fix RUSTSEC-2026-0258 (#9850)
- Merge remote-tracking branch 'origin/stable' into back-merge-8.2.2
- Add dependent root check to proposer preferences validation (alpha.13) (#9760)
- Remove the non-standard
late_headSSE event (#9827) - Use branchless swaps in swap-or-not shuffling (#9630)
- Expose Gloas timing values and MAX_REQUEST_PAYLOADS on the config/spec API (#9812)
- Add SSZ response to HTTP API endpoints (#8907)
- Propagate EIP-8025 execution proofs on gossip behind a flag (#9659)
- Gloas partial data columns (#9325)
- Fix issue with atttester slashing (#9793)
- Use ProgressiveTransactions type for the IL transactions field (#9747)
- Rename max IL transactions bytes constant per spec change (#9741)
- Tolerate empty sync aggregates in the basic simulator (#9781)
- Add inclusion list signature verification (#9743)
- Fix Phase0 nightly beacon chain tests (#9777)
- Add full epoch transition test to the EF tests (#9275)
- Rename inclusion_list_committee_root to dependent_root per spec change (#9774)
- beacon_node/execution_layer: add traceparent header to engine API requests (#9402)
- Fix flaky
import_gossip_block_at_current_slottest (#9767) - Gloas alpha spec 12 changes (#9596)
- Add RangeSyncBlock test that involves the envelope (#9717)
- Gloas backfill (#9575)
- Add gossip validation spec tests for remaining topics (#9713)
- Update VC
--monitoring-endpointhelp text (#9748) - Pin geth image in gloas genesis-sync CI (#9750)
- EIP-7688: Forward Compatible Consensus Data Structures (#9450)
- Move
SlotAssignmentcache toCanonicalHead(#9661) - Export canonical process metrics via prometheus ProcessCollector (#9736)
- Fix light client updates stream (#9643)
- Implement Gloas builder state endpoint (#9682)
- Implement gloas stateless block building api (#9568)
- Add FOCIL types and constants (#9708)
- Ignore ruint advisory check (#9723)
- Add execution payload value to block v4 (#9715)
- Fix PTC blob_data_available voting to be independent of payload import (#9695)
- Add
head_v2event in beacon API and remove some fields indata_column_sidecarevent (#9597) - Use fork-aware attestation deadlines in the VC (#9704)
- Update blobs storage requirement in Lighthouse book (#9694)
- Avoid taking write lock when shuffling is cached (#9615)
- Ensure we emit SSE attestation events when batch processing (#9707)
- Skip ENRs with no dialable address when dialing peers (#9580)
- Heze fork boilerplate (#9573)
- Add metrics for fork choice lock hold times (#9614)
- DataColumnsByRange decodes pre-fork sidecar with wrong fork at a skip-slot boundary (#9640)
- Add early payload envelopes to the reprocess queue (#9683)
- Ensure we always use fcu v4 post gloas (#9685)
- construct single attestation directly in the VC (#9578)
- Fix light client update DB range queries (#9668)
- Fix nightly deneb tests and move electra fork tests to nightly (#9384)
- Add proposer lookahead tests for slashed proposers at the Gloas fork boundary (#9674)
- Refactor
proposer_preferences_serviceand add add VC test (#9500) - Merge remote-tracking branch 'origin/stable' into unstable
- Gloas fix proposer preferences for validators added mid-epoch (#9660)
- Ensure disk reads for gloas payload bid fetching are always in a bloc… (#9634)
- Clean up custody backfill requests after peer failures (#9665)
- chore: make post envelope beacon api spec compliant (#9276)
- Add gossip validation spec tests for beacon block (#9372)
- Add test to VC block production and payload envelope (#9453)
- Merge remote-tracking branch 'origin/release-v8.2.1' into unstable
- Narrow payload bid cache generics to EthSpec (#9645)
- Downgrade log on data column <-> finalization race condition (#9635)
- Dump local testnet logs after startup failure (#9613)
- Retrieve gloas execution payload envelope by beacon block root (#9594)
- Fix Gloas sync tests by adding supernode config (#9628)
- Implement Fast Confirmation Rule (#8951)
- Pin genesis generator to devnet-6 (#9608)
- Implement PTC reprocess queue (#9458)
- Fix rust 1.97 lints (#9607)
- Replace electra sync tests with gloas sync tests on CI (#9228)
- Update
crossbeam-epochto fix cargo audit (#9581) - Remove attestation to convert work event (#9576)
- Gloas fix proposer preferences gossip verification (#9337)
- fix(monitoring_api): redact reqwest error URLs (#9555)
- Improve banning logic by grouping Ipv6 /56 prefixes (#8199)
- Gloas ensure we emit payload attributes SSE event (#9348)
- Optimisations relating to
get_expected_withdrawals(#9314) - Gloas alpha spec 11 (#9511)
- Fix Gloas range sync issue where a batch cannot be re-fetched if the blocks were already imported (#9477)
- Fix checkpoint sync 401 with trailing-slash path-embedded API keys (#9548)
- Bump
igd-nextto remove duplicated version (#9543) - De-prioritize failed peers in block and payload lookups (#9542)
- Range sync: fetch data columns via custody-by-root (#9496)
- Bump
warpand beginaxummigration (#9001) - Refactor Custody Context Availability Checks (#9515)
- Fix transient bug in
dequeue_attestationand optimization (#9524) - Remove redundant
is_gloaschecks in reorg tests (#9529) - Fix peerless lookup getting stuck while awaiting download (#9516)
- Remove seen_timestamp tracking from sync (#9454)
- Run Gloas sync tests instead of skipping them (#9446)
- Forbid removed
execution_payload_envelope.rsfile (#9506) - Fix ci issues (#9514)
- Merge branch 'stable' into unstable
- Gate sync peer selection on per-protocol concurrent-request limit (#9456)
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-rc.0-aarch64-apple-darwin.tar.gz | PGP Signature |
| | x86_64 | lighthouse-v8.3.0-rc.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature |
| | aarch64 | lighthouse-v8.3.0-rc.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature |
| System | Option | - | Resource |
| | Docker | v8.3.0-rc.0 | sigp/lighthouse |