Skip to content

King Flippy Nips

Pre-release
Pre-release
Compare
Choose a tag to compare
@paulhauner paulhauner released this 09 Oct 09:41
b185d7b

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 incompatible v0.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 cause Illegal 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.