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, <150GB 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 just a handful of changes compared to the previous v4.4.111-exp release:
- Better state caching, resulting in lower memory usage and less cache misses (#4762)
- Holesky 2.0 testnet support (from v4.5.0 upstream)
- QUIC support (from v4.5.0 upstream)
Compared to the v4.2.990-exp release the main changes are:
- Updates to the freezer database schema. There are now less reads required per historic state, at the cost of greater disk usage. A mainnet archive node with the default configuration is now ~140GB. Historic state loads are around 5x faster in testing: 400ms instead of 2s in the worst case. A re-sync is required due to this change.
- Configurable storage hierarchy. Diffs can now be stored on a per-slot basis, or less frequently than every epoch. We recommend using the default configuration, and haven't done enough testing of other configurations to provide space/speed estimates. See
--hierarchy-exponents
inlighthouse bn --help
. - No historic states stored by default (same as v4.4.1). Please use
--reconstruct-historic-states
to store historic states, even when syncing from genesis. For more information see the section of the v4.4.1 release notes on State Pruning. - Lots of optimisations, particularly to epoch-processing, block-processing and the underlying state library (
milhouse
). This release should now be on-par or faster thanstable
Lighthouse when it comes to importing blocks.
This release is based on v4.5.0, and also includes the other features from v4.5.0 (and v4.4.1, and v4.3.0). Please see the v4.5.0 release notes for details of breaking changes: https://github.com/sigp/lighthouse/releases/tag/v4.5.0.
⚠️ Backwards Compatibility ⚠️
This release is backwards compatible with 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 as upstream).
Known Issues
Expect a few sharp edges. Some things you may run into:
aarch64
(ARM) support is currently broken. As a result there are no binaries or Docker images for ARM.WARN Parent state is not advanced
is logged excessively during sync. This is harmless, albeit annoying.
If you observe any panics, crashes or major performance regressions, please open an issue!
Building from source
Build the v4.5.222-exp
tag.
All Changes
- Tree states release v4.5.222-exp (#4782)
- Merge tag 'v4.5.0' into tree-states
- Release v4.5.0 (#4768)
- Fix cli options (#4772)
- Fix release CI for self-hosted runners (#4770)
- Move dependencies to workspace (#4650)
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.5.222-exp-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-windows.tar.gz | PGP Signature | |
x86_64 | lighthouse-v4.5.222-exp-x86_64-windows-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v4.5.222-exp | sigp/lighthouse |