Summary
This is a low-priority update. It primarily contains optimizations which reduce the impact of the Beacon Node on RAM, CPU, disk I/O and Eth1 nodes.
Whilst we suggest all users update to this release at their convenience, there is no pressing reason to do so unless they are concerned that the resource requirements of Lighthouse are outpacing their hardware.
Notable features in this release are:
- A reduction in memory footprint. On mainnet, this reduces memory usage from ~6 GB to ~1.5 GB. (#2299)
- Improvements to avoid disk and memory intensive operations. (#2289, #2376)
- An 80% reduction in Eth1 queries. (#2340)
- Beta Windows support, not presently recommended for production. (#2333)
As mentioned in the "Memory Allocator Tuning" section, some users running Linux without glibc
may need to apply the --disable-malloc-tuning
CLI flag to lighthouse bn
(the Beacon Node) in order to avoid a panic at startup. We expect this scenario to be very rare and have not encountered it during internal testing or during external release candidate testing. We only recommend using this flag if you experience a failure as it will substantially increase memory usage. We only expect to see this issue on obscure Linux installations; MacOS, Ubuntu, Amazon Linux and other common operating systems are unaffected.
Breaking Changes
- #2272 changes the behaviour of the HTTP API when retrieving blocks/block-roots on a slot that was skipped. Previously, Lighthouse returned the value for the block at the previous slot. Now, to keep in-line with other clients, Lighthouse will return a
404
. - #2299 automatically configures the GNU memory allocator (see "Memory Allocator Tuning" section for more detail).
- #2251 adds additional fields to the
lighthouse/health
HTTP API endpoint. - #2392 ensures that using the
--eth1-endpoints
flag enables syncing the Eth1 chain. This fixes a regression in a previous release.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Beacon Node | Validator Client |
---|---|---|
Staking Users | Low Priority | Low Priority |
Non-Staking Users | Low Priority | --- |
Users Classes and Priorities
Staking users are those who use lighthouse bn
and lighthouse vc
to stake on the Beacon Chain. Non-staking users are those who run a lighthouse bn
for non-staking purposes (e.g., data analysis or applications).
High priority updates should be completed as soon as possible (e.g., hours or days). Medium priority updates should be completed at the next convenience (e.g., days or a week). Low priority updates should be completed in the next routine update cycle (e.g., two weeks).
Notes
Memory Allocator Tuning
With #2299, Lighthouse now automatically configures the GNU Memory Allocator at startup to provide a more optimal memory footprint.
This alone reduces the memory consumption of Lighthouse by at least 50%. However, some Linux systems may have an incompatible memory allocator. This will cause Lighthouse to panic and exit at startup (only at startup, never after it has begun operation).
If users experience a panic and instant exit during startup, do not fear. Simply provide the --disable-malloc-tuning
flag to completely disable this new feature.
For example:
lighthouse --disable-malloc-tuning bn --staking
If you do experience this error, please raise an issue. We are eager to ensure Lighthouse runs on all platforms by default.
We have never seen this panic during our testing or on the release candidate, but we are aware it is possible on some obscure platforms.
Changes to Announced Features
Since Lighthouse Update #36 announced a list of features and a timeline for v1.4.0
, the development team has decided to split the features into two, separate releases:
v1.4.0
: to be released approximately one week earlier than scheduled, but only containing:- Beta Windows support, not presently recommended for production.
- An 80% reduction in Eth1 queries. (Note: this does not reduce the time required to sync the Eth1 cache).
- A reduction in memory footprint (on mainnet, this reduces memory usage from ~6 GB to ~1.5 GB).
v1.5.0
: to be release late June, containing:- Altair testnet support.
- Doppelganger protection.
- Support for remote signing in the validator client.
All Changes
- v1.4.0 (#2402)
- Modify Malloc Tuning (#2398)
- Only perform malloc tuning for beacon node (#2397)
- Make less logs for attn with unknown head (#2395)
- Fix options for
--eth1-endpoints
flag (#2392) - v1.4.0-rc.0 (#2379)
- Revert "Network protocol upgrades (#2345)" (#2388)
- Add early check for RPC block relevancy (#2289)
- Return a specific error for frozen attn states (#2384)
- Return more detail in Eth1 HTTP errors (#2383)
- Use the forwards iterator more often (#2376)
- Minimum Outbound-Only Peers Requirement (#2356)
- Reduce outbound requests to eth1 endpoints (#2340)
- Correct issue with dialing peers (#2375)
- Network protocol upgrades (#2345)
- Tune GNU malloc (#2299)
- Monitoring service api (#2251)
- More stringent dialing (#2363)
- Add Windows to Bors config (#2358)
- Enable Compatibility with Windows (#2333)
- Write validator definitions atomically (#2338)
- Add NETWORK_ID variable (#2330)
- Updated to comply with new clippy formatting rules (#2336)
- Add testing for beacon node and validator client CLI flags (#2311)
- Add
SensitiveUrl
to redact user secrets from endpoints (#2326) - cargo audit fix (#2331)
- Filter Disconnected Peers from Discv5 DHT (#2219)
- Fix typos in redundancy docs (#2320)
- 404's on API requests for slots that have been skipped or orphaned (#2272)
- Allow specifying alternative url for deposit_contract (#2295)
- Add a no-wait flag for voluntary exits (#2292)
- Fix readme typo (#2312)
Binaries
See pre-built binaries documentation.
The binaries are signed with Sigma Prime's PGP key: 15E66D941F697E28F49381F426416DC3F30674B0
Windows for Lighthouse is still in beta and binaries are not yet provided.
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | lighthouse-v1.4.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
x86_64 | lighthouse-v1.4.0-x86_64-apple-darwin-portable.tar.gz | PGP Signature | |
x86_64 | lighthouse-v1.4.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | lighthouse-v1.4.0-x86_64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
aarch64 | lighthouse-v1.4.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | lighthouse-v1.4.0-aarch64-unknown-linux-gnu-portable.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v1.4.0 | sigp/lighthouse |