Disclaimer
⚠️ You should not run this alpha release supporting mainnet validators ⚠️
If you are looking for the latest Lighthouse release please go to https://github.com/sigp/lighthouse/releases/latest.
Summary
This is an alpha release of upcoming changes to Lighthouse which improve disk usage and state management.
We are making this alpha release so that expert users may help us test these improvements. It is not backwards-compatible and not recommended for mainnet validators. Our current plan is to stabilise these changes shortly after the Deneb hard fork on mainnet.
For the adventurous, the main benefits are:
- Smaller disk footprint for archive nodes, <200GB total. Use checkpoint sync, and set the flag
--reconstruct-historic-states
. - Smaller disk footprint for regular nodes, <30GB.
- Faster handling of re-orgs.
- Faster restarts.
- Less disk I/O.
We hope that this is useful for running block explorers and supporting other beacon chain analytics. We are using it internally at SigP to run some of our analytics.
This release includes all the latest changes from v4.6.0 including Deneb on Sepolia, Holesky and Chiado. Check out the release notes for v4.6.0 for more information.
In terms of tree-states specific changes, we have:
- Support for
lighthouse db prune-states
(#5097). - Support for changing the
hierarchy-exponents
after pruning states. - Support for
hierarchy-exponents
that do diffs within a single epoch (e.g.--hierarchy-exponents "0,2,4,6,8"
). - Bugfix for database corruption during backfill sync (#5144).
⚠️ Backwards Compatibility ⚠️
This release is backwards compatible with v4.6.111-exp, v4.5.444-exp, v4.5.222-exp and v4.4.111-exp.
This release is not backwards compatible with stable Lighthouse or tree-states
releases prior to v4.4.111-exp. It uses a different database schema (v24) for which no automatic upgrade or downgrade is implemented. We intend to implement an automatic upgrade process once the new schema is finalized. A re-sync might be required to run future versions of tree-states
. This release's schema might be the final iteration.
Please only run this release if you are willing to re-sync now, and again in several weeks/months.
There are several breaking changes to CLI flags:
- The secret dummy flag
--unsafe-and-dangerous-mode
must be supplied. This is to prevent accidental upgrades to the release by users who don't know what they're getting themselves into. Unfortunately we found that far too many people accidentally ran previoustree-states
releases on mainnet. - The flags
--slots-per-restore-point
and--historic-state-cache-size
are deprecated and no longer necessary due to the freezer database using hierarchical diffs. - The flag
--db-migration-period
fromtree-states
v4.2.0-999-exp release is gone and has been replaced by--epochs-per-migration
(same name asstable
).
Known Issues
Expect a few sharp edges. Some things you may run into:
WARN Parent state is not advanced
is logged excessively during sync. This is harmless, albeit annoying.- Memory usage may be a bit higher when using the parallel HTTP cache (see #5112).
If you observe any panics, crashes or major performance regressions, please open an issue!
Building from source
Build the v4.6.222-exp
tag.
All Changes
- Tree states v4.6.222-exp (#5147)
- Merge remote-tracking branch 'origin/unstable' into tree-states
fsync
during backfill to prevent DB corruption (#5144)- Fix tree-states sub-epoch diffs (#5097)
- Make lcli docker image portable (#5069)
- Update to the docs (#5106)
- fix: update outdated links to external resources (#5018)
- Remove custom SSZ beacon states route (#5065)
- Fix off-by-one in backfill sig verification (#5120)
- Increase attestation cache sizes (#5135)
- #5102 Fix load_state_for_block_production metric mapping (#5103)
- Fix new CLI tests for tree-states (#5132)
- Update Mergify commit message template (#5126)
- Merge remote-tracking branch 'origin/unstable' into tree-states
- Replace backticks with single quotes (#5121)
- Bump versions (#5123)
- Expose additional builder booster related flags in the vc (#5086)
- Prevent rolling file appender panic (#5117)
- Correct multiple dial bug (#5113)
- Fix indices filter in blobs_sidecar http endpoint (#5118)
- Backfill blob storage fix (#5119)
- Correct discovery logic (#5111)
- Gossipsub fanout correction (#5110)
- Reduce size of futures in HTTP API to prevent stack overflows (#5104)
- Small Readability Improvement in Networking Code (#5098)
- Upgrade shlex to 1.3.0 (#5108)
- Stop Penalizing Peers in Parent SingleBlobLookup (#5096)
- set deneb fork on testnets (#5089)
- Hold HeadTracker lock until persisting to disk (#5084)
- Fix PublishBlockRequest SSZ decoding (#5078)
- Bump h2 (#5085)
- Remove blobs_db when
purge-db
(#5081) - Add Deneb readiness logging (#5074)
- Critical dependency logging (#4988)
- add tracing metrics layer for dependency logging (#4979)
- Fix zero port error (#5021)
- docs: fix typos (#5059)
- Update teku's bootnodes (#5052)
- add content-type octet stream helper fn (#5062)
- Fix asset paths in release CI upload job (#5056)
- Don't error on inactive indices in att. rewards
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-v4.6.222-exp-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.222-exp-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.222-exp-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.222-exp-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.6.222-exp-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v4.6.222-exp-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.222-exp-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.6.222-exp-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.6.222-exp | sigp/lighthouse |