Summary
💡 Mainnet users can ignore this pre-release.
Summary
This is a second hot-fix release for the unsuccessful Electra upgrade on Holesky in February 2025. It contains patches to help reduce memory usage during non-finality, and to help nodes sync.
This release is only for Holesky users. Do not use this version on mainnet, Sepolia, or any other network.
Please see our informational issue for up-to-date advice on the Holesky situation: #7040
Forced Pseudo-Finalization
This release includes an experimental feature to forcefully "finalize" a block in Lighthouse's database so that Lighthouse can prune low-quality sidechains, remove finalized states and reclaim disk space. This feature is not safe in general, and should not be used except in emergencies.
Usage of the endpoint requires an epoch
, block_root
and state_root
to pseudo-finalize, which must be from an epoch boundary. Skipped slots are OK, but the state_root
must be the state_root
of the epoch boundary state.
An example command to force pseudo-finalization on Holesky is:
curl -X POST --data '{"epoch": "117400", "state_root": "0x355fa23c9704fe346362c43a8fe43fba464fe63f20853bd3a87a8f465d52b4f4", "block_root": "0x06d788e593fd2b5b6fb6dcd63dfa4766201f05d948923dff6865d823246dd3c7" }' http://localhost:5052/lighthouse/finalize
If successful you should see a lot of logs of the form Pruning head
, and then after some time (possibly multiple hours if your node knows all of the 800+ Holesky heads), it will complete. Completion is indicated via the debug log DEBG Database consolidation complete
(look in $datadir/beacon/logs/beacon.log
), and an update to the split
field in the /lighthouse/database/info
API.
Compaction will likely run after forced finalization, which is what reclaims the space permanently. If started you will see the log:
INFO Starting database compaction
When it completes (likely after ~1hr), you will see the log:
INFO Database compaction complete
If the finalization completes without compaction, you can trigger a manual compaction using the HTTP API:
curl -X POST http://localhost:5052/lighthouse/compaction
State Cache Tweaks
We've tweaked how old states interact with the state cache, removing several paths for state cache misses, and bad state cache interactions caused by BlocksByRange
requests, sidechains and attestations to ancient blocks.
All of these optimisations are automatic and require no action from users to benefit. If you are feeling adventurous we've also found some benefit from using a new flag --state-cache-headroom 8
, which prunes the state cache more aggressively (removing 8 states) when it gets full.
You may notice backtraces present in the State cache missed
logs. These are harmless and do not indicate a fatal error. We added them to aid in debugging.
New HTTP endpoint lighthouse/add_peer
to add trusted peer
This endpoint allows users to add a trusted peer to the peer database and dials it every heartbeat in case it gracefully disconnects. This is useful if the node struggles to find peers on the canonical chain. This can be used together with the --disable-discovery
flag to limit the peers the node dials to speed up syncing to the right chain.
An example command to add a trusted peer:
curl -X POST -H "Content-Type: application/json" --data '{"enr": "enr:-Le4QLoE1wFHSlGcm48a9ZESb_MRLqPPu6G0vHqu4MaUcQNDHS69tsy-zkN0K6pglyzX8m24mkb-LtBcbjAYdP1uxm4BhGV0aDKQabfZdAQBcAAAAQAAAAAAAIJpZIJ2NIJpcIQ5gR6Wg2lwNpAgAUHQBwEQAAAAAAAAADR-iXNlY3AyNTZrMaEDPMSNdcL92uNIyCsS177Z6KTXlbZakQqxv3aQcWawNXeDdWRwgiMohHVkcDaCI4I"}' http://localhost:5052/lighthouse/add_peer
⚠️ Breaking Changes ⚠️
You should only upgrade to v7.0.0-beta.2 from v7.0.0-beta.{0,1}
on Holesky. This release contains no breaking changes compared to v7.0.0-beta.1
.
Please see the release notes for previous v7 releases for a summary of changes included in those releases:
- https://github.com/sigp/lighthouse/releases/tag/v7.0.0-beta.1
- https://github.com/sigp/lighthouse/releases/tag/v7.0.0-beta.0
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) | DON'T UPDATE | DON'T UPDATE |
Non-Staking Users (mainnet) | DON'T UPDATE | --- |
See Update Priorities for more information about this table.
Testnet users should update both the Lighthouse VC and BN to v7.0.0-beta.2 if using separate binaries. The execution layer client (e.g. Geth, Reth, Besu, Nethermind, Erigon) must also be updated prior to the Electra fork.
All Changes
- Bump version to v7.0.0-beta.2 (#7073)
- Manual compaction endpoint (#7072)
- Add CI fixes to
holesky-rescue
(#7071) - Add http endpoint to add trusted peer (#7068)
- Add backtrace logging. (#7063)
- Prevent writing to state cache when migrating the database (#7067)
- Split block root lookups between fork choice and store on BBR response (#7066)
- Revert "Reuse milhouse subtrees to shrink inactivity_scores in memory (#7062)"
- Reuse milhouse subtrees to shrink inactivity_scores in memory (#7062)
- Manual finalization endpoint (#7059)
- Change state cache size default to 32. (#7055)
- Load block roots from fork choice where possible when serving
BlocksByRange
requests (#7058) - Optimise status processing for holesky-rescue (#7054)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v7.0.0-beta.2-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v7.0.0-beta.2-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v7.0.0-beta.2-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v7.0.0-beta.2-x86_64-windows.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v7.0.0-beta.2 | sigp/lighthouse |