Skip to content

Releases: sigp/lighthouse

Rick Sanchez

24 Nov 16:30
c6baa0e
Compare
Choose a tag to compare

This release marks Lighthouse transitioning into a production/stable development phase.

We recommend all users to upgrade to v1.0.0, especially if they're intending to stake with a genesis validator.

Summary

  • The mainnet genesis state has been included in the lighthouse binary.
  • The --testnet flag has been replaced with --network
    • The default network has been changed from medalla to mainnet
  • The slasher has been added (see the docs)
  • Many other bug-fixes and improvements

All Changes

  • Bump to v1.0.0, run cargo update
  • Add mainnet genesis state (#1959)
  • Remove experimental software warning (#1957)
  • Update security details in README (#1956)
  • Refine and test slashing protection semantics (#1885)
  • Add Prysm and Teku boot nodes (#1953)
  • Update validator guide for mainnet (#1951)
  • check if the slashing protection database is locked before creating keys (#1949)
  • Sync Bug fixes (#1950)
  • Change --testnet flag to --network (#1751)
  • Tweak slasher DB schema and pruning (#1948)
  • Implement slasher (#1567)
  • Improve UX whilst VC is waiting for genesis (#1915)
  • Add flag to import all attestations (#1941)
  • move sync state to the chains KV (#1940)
  • Fix race condition in seen caches (#1937)
  • Fix metrics http server error messages (#1946)
  • Expand eth1 block cache, add more logs (#1938)
  • Ensure deposit signatures do not use aggregate functions (#1935)
  • Move some rpc processing to the beacon_processor (#1936)
  • Add additional libp2p tests (#1867)
  • Document system requirements (#1934)
  • Add validation to kdf parameters (#1930)
  • [Remote signer] Add signer consumer lib (#1763)
  • Reject invalid utf-8 characters during encryption (#1928)
  • Update pool/attestations and committees endpoints (#1899)
  • Avoid string initialization in network metrics and replace by &str where possible (#1898)
  • Add new flag to set blocks per eth1 query (#1931)
  • Add lighthouse bootnodes (#1929)

DockerHub

Binaries

See pre-built binaries documentation.

Ants in my Eyes Johnson

18 Nov 05:48
Compare
Choose a tag to compare
Pre-release

This release is recommended for all users. Due to API updates, it's essential that you restart both the beacon node and validator client after updating.

Summary

  • The --testnet pyrmont flag has been added, providing full support for the Prymont testnet.
  • A memory leak has been fixed in #1923.
  • Two PRs (#1922, #1921) reduce memory footprint by reducing allocations likely to cause fragmentation.
  • Database compaction is run less frequently in #1916, reducing disk I/O and therefore prolonging disk life.

All Changes

  • Address queue congestion in migrator (#1923)
  • Refine compaction (#1916)
  • Avoid some allocations in BlockSignatureVerifier (#1922)
  • Avoid allocations on VariableList (#1921)
  • router: drop requests from peers that have dc'd (#1919)
  • Validate eth1 chain id (#1877)
  • Added fn to count unicode characters (#1903)
  • Performance improvement for db reads (#1909)
  • Add link to Lighthouse mailing list (#1913)
  • Check whistle-blower index (#1911)
  • Add Pyrmont testnet (#1904)
  • Update logs + do not downscore peers if WE time out (#1901)
  • add slot validation to attestation_data endpoint (#1888)
  • Misc Peer sync info adjustments (#1896)

DockerHub

Binaries

See pre-built binaries documentation.

Mar-Sha

13 Nov 07:17
Compare
Choose a tag to compare
Mar-Sha Pre-release
Pre-release

This release provides many incremental improvements to networking, storage and the HTTP API as we prepare for mainnet.

It is recommended for all users running on the Medalla testnet. Due to API updates, it's essential that you restart both the beacon node and validator client after updating.

Summary

  • The pruning of the database has been improved through the use of a compaction pass. If you've noticed your Medalla datadir grow beyond 80-90GB, this release will reduce it back down to a comfortable level around 10-15GB. No resync is required (#1871).
  • We have merged Gossipsub scoring, which hardens the networking layer against malicious peers. This has been the result of many weeks of research, and will be essential for network stability once mainnet launches (#1668).
  • We have updated the HTTP API to align more closely with the evolving standard. The revised standard allowed us to fix a regression in validator client performance with large numbers of validators (100+) (#1831, #1828).
  • Lighthouse now includes a --testnet mainnet flag, for monitoring of the deposit contract before genesis. With your beacon node connected to a mainnet Eth1 node you can watch the deposits stream in 🎉 Although this is our first release with some mainnet compatibility, it is not intended for making mainnet deposits or running a validator on mainnet. We will ship a v1.0.0 release closer to genesis, as described in our v1.0.0 release schedule here: https://lighthouse.sigmaprime.io/update-32.html

All Changes

  • handle peer state transitions on gossipsub score changes + refactoring (#1892)
  • Peer endpoint updates (#1893)
  • do subnet discoveries until we have MESH_N_LOW many peers (#1886)
  • Update EF tests to 1.0.0 (#1875)
  • Gossipsub scoring (#1668)
  • Update tiny-bip39 dependency (#1887)
  • Add toledo support (#1874)
  • Update vc testnet script (#1859)
  • Standard beacon api updates (#1831)
  • Compact database on finalization (#1871)
  • Improve validator key cache lock handling (#1837)
  • Add --testnet mainnet and start HTTP server before genesis (#1862)
  • Update slashing protection interchange to v5 (#1816)
  • Seen addresses store port (#1841)
  • Remove mention of OpenSSL from documentation (#1844)
  • Changed http:// to https:// on some links (#1869)
  • Update remote signer README (#1870)
  • Update README.md (#1868)
  • [Remote signer] Fold signer into Lighthouse repository (#1852)
  • Update libp2p (#1865)
  • Fix fn documentation
  • Add warnings for deposits (#1858)
  • Ignore RPC messages of disconnected peers and remove old peers based on disconnection time (#1854)
  • Prevent errors for stream termination race (#1853)

DockerHub

Binaries

See pre-built binaries documentation.

Glootie

03 Nov 06:53
Compare
Choose a tag to compare
Glootie Pre-release
Pre-release

This release includes numerous networking stability improvements and fixes, and new HTTP API features.

Critically, it fixes an issue with the included bootnode addresses that prevented nodes from finding peers when starting a beacon node from scratch on v0.3.2 (#1849).

It also adds a long-awaited command for submitting voluntary exits, documented here: https://lighthouse-book.sigmaprime.io/voluntary-exit.html

Finally, if you run on a VPS and had trouble with the optimized v0.3.2 build, it might be worth trying again, as we've fixed a false positive in our detection of CPU features (#1846).

Due to the API changes, it is essential to restart both the validator client and beacon node after upgrading.

Changes: Summary

  • fix unbanning of peers (#1838)
  • More sync edge cases + prettify range (#1834)
  • Beacon state validator id filter (#1803)
  • Only run http_api tests in release (#1827)
  • Add cli option for voluntary exits (#1781)
  • add quoted serialization util for FixedVector and VariableList (#1794)
  • Tweak head syncing (#1845)
  • Return eth1-related data via the API (#1797)
  • Update to discv5 bootnodes (#1849)
  • Downgrade ADX check to a warning (#1846)

DockerHub

Binaries

See pre-built binaries documentation.

Zeep Xanflorp

29 Oct 01:16
Compare
Choose a tag to compare
Zeep Xanflorp Pre-release
Pre-release

We recommend that all users upgrade their software to this latest release as it contains important interoperability improvements.

Changes: Summary

  • Update to spec v1.0.0-rc.0 (#1765)
  • Inform peers of requests that exceed the maximum rate limit + log downgrade (#1830)
  • Ensure eth1 deposit/chain IDs are used from YamlConfig (#1829)
  • Address clippy lints, panic in ssz_derive on overflow (#1714)
  • Update testnet configs, change on-disk format (#1799)

DockerHub

Binaries

See pre-built binaries documentation.

Beta VII

24 Oct 07:14
Compare
Choose a tag to compare
Beta VII Pre-release
Pre-release

This release provides breaking changes in the networking layer and in the db schema.

This version upgrades the discovery mechanism of Lighthouse to Discovery v5.1. This means Lighthouse will not be able to discover peers with previous versions of Lighthouse. There has also been a DB schema update. Running v0.3.1 on an older database will cause Lighthouse to migrate the older db to the new version. Users will not be able to downgrade their db after this.

We encourage all Medalla users to upgrade to this version to participate in the new networking changes and to improve peer discovery.

Changes: Summary

  • Improved RPC validation (#1117)
  • Improved docs and various bug fixes (#1756, #1759, #1761, #1760, #1762, #1747, #1800)
  • Update the gossipsub message-id to latest specification (#1752)
  • Add gossipsub topic filters (#1767)
  • Correct issues and improve sync logic (#1791, #1804, #1796)
  • Allow the Validator Client to start without validators (#1779)
  • Implement further node endpoints (#1778)
  • Reduce memory usage (#1798)
  • Optimise attester slashing (#1745)
  • Update to discv5.1 (#1786)
  • Update libp2p (#1819)

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.

King Flippy Nips

09 Oct 09:41
b185d7b
Compare
Choose a tag to compare
King Flippy Nips Pre-release
Pre-release

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.

Scary Terry

29 Sep 09:43
c0e76d2
Compare
Choose a tag to compare
Scary Terry Pre-release
Pre-release

This release updates Lighthouse for the upcoming Spadina testnet launch.

  • Adds the Spadina genesis state and associated boot nodes.
  • Updates discovery (improves NAT filtering in the DHT).
  • Network bug fixes related to peer management.

Changes

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.

Running Bird

26 Sep 11:54
Compare
Choose a tag to compare
Running Bird Pre-release
Pre-release

This release contains new features and a fix to an error introduced in the previous release (v0.2.11).

  • Adds support for the --testnet spadina flag.
  • Reverts a change that caused "Illegal instruction" on ARM processors.
  • Adds a --staking flag to the beacon node which enables the API and Eth1 syncing.
  • Allow for interactive password entry on all account manager flows.

Changes

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.

Stair Goblins

22 Sep 08:13
Compare
Choose a tag to compare
Stair Goblins Pre-release
Pre-release

Solves an issue which caused the beacon node to resume from the database using a canonical head that is no longer consistent with fork choice. The canonical head is now derived from fork choice when resuming from DB.

Also adds the new "trusted peers" feature (#1640).

Changes

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.