github sigp/lighthouse v8.1.0
Squanchy

7 hours ago

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_proposer API (#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_selections is 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_choice including justified/finalized roots and unrealized checkpoints.
  • Earlier SSE events (#8718): NewHead SSE 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.

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_SLOT with explicit slot component times (#7944)
  • Emit NewHead SSE event earlier in block import (#8718)
  • Call beacon_committee_selections only once per epoch (#8699)
  • Disable sqlite by 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 data dependency from from core module 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 execution dependency from core module in consensus/types (#8666)
  • More consensus/types re-export cleanup (#8665)
  • Update chainspec p2p and etc (#8601)
  • Cleanup consensus/types re-exports (#8643)
  • Remove state dependency from core module in consensus/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 unstable by 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 crypto dependencies (#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 syn to 2.0.110 (#8563)
  • Update strum to 0.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/types re-exports (#8540)
  • Clarify alloy dependencies (#8550)
  • Reduce eth2 dependency 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 (#8465)
  • feat: Add reproducible builds release workflows and push images to DockerHub (#7614)
  • Remove context_deserialize and import from crates.io (#8172)
  • Integration tests ergonomics (#7836)
  • Remove quickcheck in favour of proptest (#8471)
  • Update docs on Siren port and other small updates (#8399)
  • Allow manual checkpoint sync without blobs (#8470)
  • Dockerfile with cargo artifacts caching (#8455)
  • Consolidate reqwest versions (#8452)
  • chore: Add Dockerfile.dev for local development (#8295)
  • Optimise out block header calculation (#8446)
  • Cargo Update (#8443)
  • Merge remote-tracking branch 'origin/stable' into unstable
  • Add nightly tests workflow to test prior forks (#8319)
  • Gracefully handle deleting states prior to anchor_slot (#8409)
  • Add extra data in /eth/v1/debug/fork_choice (#7845)
  • Add optimistic_sync metric (#8059)
  • Migrate execution_engine_integration to alloy (#8140)
  • Remove duplicate state in ProtoArray (#8324)
  • Migrate the deposit_contract crate to alloy (#8139)
  • fix: clarify bb vs bl variable names in BeaconProcessorQueue (#8315)
  • Include block root in publish block logs (#8111)
  • Remove ethers-core from execution_layer (#8149)
  • Fix flaky reconstruction test (#8321)
  • Migrate derivative to educe (#8125)
  • Remove sensitive_url and import from crates.io (#8377)
  • CI workflows to use warpbuild ci runner (#8343)
  • Remove ecdsa feature of libp2p (#8374)
  • Prepare sensitive_url for crates.io (#8223)
  • Downgrade and remove unnecessary logs (#8367)
  • Fix unaggregated delay metric (#8366)
  • Update proposer-only section in the documentation (#8358)
  • Remove Windows CI jobs (#8362)
  • Optimise state_root_at_slot for finalized slot (#8353)
  • Merge remote-tracking branch 'origin/stable' into unstable-merge-v8
  • Reduce number of blobs used in tests to speed up CI (#8194)
  • Rework lighthouse_version to reduce spurious recompilation (#8336)
  • Merge remote-tracking branch 'origin/release-v8.0' into unstable
  • Add version to the response of beacon API client side (#8326)
  • Remove redundant subscribe_all_data_column_subnets field from network (#8259)
  • Update spec tests to v1.6.0-beta.1 (#8263)
  • Run CI tests only recent forks (#8271)
  • Merge remote-tracking branch 'origin/release-v8.0' into unstable
  • Extracting the Error impl from the monolith eth2 (#7878)
  • Remove compare_fields and import from crates.io (#8189)
  • Bump ssz_types to v0.12.2 (#8032)
  • Add /lighthouse/custody/info to Lighthouse book (#8305)
  • chore: fix typo (#8292)

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.1.0-aarch64-apple-darwin.tar.gz PGP Signature
Linux logo x86_64 lighthouse-v8.1.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
Raspberrypi logo aarch64 lighthouse-v8.1.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
System Option - Resource
Docker logo Docker v8.1.0 sigp/lighthouse

Don't miss a new lighthouse release

NewReleases is sending notifications on new releases.