This is a major release which contains breaking features. The breaking features require users to perform:
- A resync of the database, since databases from
v0.2.x
are incompatiblev0.3.0
- Some data directory migration for existing setups (see below)
Data Directory Migration
The directory structure has changed, such that the ~/.lighthouse
dir (AKA "datadir") now contains one sub-directory for each --testnet
value. What was previously ~/.lighthouse/beacon
is now ~/.lighthouse/medalla/beacon
or ~/.lighthouse/altona/beacon
.
If you have an existing ~/.lighthouse
directory you will need to move it into a sub-directory that matches the testnet name.
Example
Assume there is an existing ~/.lighthouse
directory for Medalla:
.lighthouse
|- beacon
|- validators
|- secrets
The directory should be re-arranged as such:
.lighthouse
|- medalla
|- beacon
|- validators
|- secrets
Note: you will likely need to edit the validators/validator_definitions.yml
file to reflect the additional directory nesting.
Changes: Summary
Breaking Features
- The previous HTTP API has been replaced with a partially-complete standard Eth2.0-API implementation. See which endpoints are implemented at #1434.
- Prometheus metrics are no longer served on the same port as the HTTP API (default
5052
). Metrics must be enabled with the--metrics
flag and their address/port/CORS settings are managed separately to the API. - The
~/.lighthouse
directory structure has changed (mentioned earlier in the release notes). - Lockfiles on EIP-2335 keypairs are now strictly enforced. The
--delete-lockfiles
flag can be used to recover from a scenario where the validator client detects existing lockfiles from a previous crash. Use--delete-lockfiles
with caution and read the CLI help first. - The Metamask deposit functionality has been removed from the Lighthouse docs. We direct users to the Eth2 launch pad instead.
- The slashing protection database is now stricter by default. The validator client will refuse to start if it finds validator keys without a corresponding database. When migrating your datadir to the new layout you should ensure you move
slashing_protection.sqlite
to~/.lighthouse/medalla/validators/slashing_protection.sqlite
(or$datadir/validators/slashing_protection.sqlite
). More information here: https://lighthouse-book.sigmaprime.io/slashing-protection.html#misplaced-slashing-database - Use 24-word mnemonics by default, with options for other lengths.
Non-Breaking
- Add the
--testnet zinken
option, with full support for the upcoming testnet. - The
--wss-checkpoint
flag has been added to protect against weak subjectivity attacks. Users are not expected to require this flag until after mainnet launch. - There is now a mechanism for caching BLS keys obtained from EIP-2335 keystores, to prevent long wait times when starting the VC. This cache should be transparent to users in most cases.
- Add a RESTful HTTP API to the VC.
- Add UPnP networking support.
- Support for the slashing interchange format.
- Various security fixes.
- Various stability fixes.
Changes: Detail
- (origin/staging) Strict slashing protection by default (#1750)
- Bump version to v0.3.0 (#1743)
- Update docs for v0.3.0 (#1742)
- Validator dir creation (#1746)
- Add zinken testnet (#1741)
- Improve command help (#1740)
- Implement key cache to reduce keystore loading times for validator_client (#1695)
- Clean up obsolete TODOs (#1734)
- Update external deps (#1711)
- Upgrade discovery and restructure task execution (#1693)
- Improve error handling in network processing (#1654)
- From panic to crit (#1726)
- Document need for port 9000 to be open (fix #730) (#731)
- Increase content-id length (#1725)
- Sync fixes (#1716)
- Use Drop impl to send worker idle message (#1718)
- Update libp2p (#1728)
- Tidy some TODOs (#1721)
- Address a couple of TODOs (#1724)
- Add check for head/target consistency (#1702)
- Add UPnP support for Lighthouse (#1587)
- Wallet creation: Make mnemonic length configurable, default to 24 words. (#1697)
- Update tiny-bip39 dependency to one implementing zeroize (#1701)
- Weak subjectivity start from genesis (#1675)
- Implement VC API (#1657)
- Implement slashing protection interchange format (#1544)
- Add database schema versioning (#1688)
- Implement standard eth2.0 API (#1569)
- Directory restructure (#1532)
- Fix validator lockfiles (#1586)
- Update key derivation to latest EIP-2333 (#1633)
- Update Cargo.lock (#1735)
- Improve error handling in network processing (#1654)
- From panic to crit (#1726)
- Document need for port 9000 to be open (fix #730) (#731)
- Increase content-id length (#1725)
- Allow truncation of pubkey cache on creation (#1686)
- Remove macos tests (#1687)
Dockerhub
Binaries
Binaries are supplied for two platforms:
x86_64-unknown-linux-gnu
: AMD/Intel 64-bit processors (most desktops, laptops, servers)aarch64-unknown-linux-gnu
: 64bit ARM processors (Raspberry Pi 4)
Additionally there is also a -portable
suffix which indicates if the portable
feature is used:
- Without
portable
: uses modern CPU instructions to provide the fastest signature verification times (may causeIllegal instruction
error on older CPUs) - With
portable
: approx. 20% slower, but should work on all modern 64-bit processors.
Note: we do not yet provide binaries for MacOS or Windows native.