Ethereum consensus client in Rust
Go to file
Eitan Seri-Levi e4d4e439cb
Add Capella & Deneb light client support (#4946)
* rebase and add comment

* conditional test

* test

* optimistic chould be working now

* finality should be working now

* try again

* try again

* clippy fix

* add lc bootstrap beacon api

* add lc optimistic/finality update to events

* fmt

* That error isn't occuring on my computer but I think this should fix it

* Merge branch 'unstable' into light_client_beacon_api_1

# Conflicts:
#	beacon_node/beacon_chain/src/events.rs
#	beacon_node/http_api/src/lib.rs
#	beacon_node/http_api/src/test_utils.rs
#	beacon_node/http_api/tests/main.rs
#	beacon_node/lighthouse_network/src/rpc/codec/ssz_snappy.rs
#	beacon_node/lighthouse_network/src/rpc/methods.rs
#	beacon_node/lighthouse_network/src/service/api_types.rs
#	beacon_node/network/src/beacon_processor/worker/rpc_methods.rs
#	beacon_node/tests/test.rs
#	common/eth2/src/types.rs
#	lighthouse/src/main.rs

* Add missing test file

* Update light client types to comply with Altair light client spec.

* Fix test compilation

* Merge branch 'unstable' into light_client_beacon_api_1

* Support deserializing light client structures for the Bellatrix fork

* Move `get_light_client_bootstrap` logic to `BeaconChain`. `LightClientBootstrap` API to return `ForkVersionedResponse`.

* Misc fixes.
- log cleanup
- move http_api config mutation to `config::get_config` for consistency
- fix light client API responses

* Add light client bootstrap API test and fix existing ones.

* Merge branch 'unstable' into light_client_beacon_api_1

* Fix test for `light-client-server` http api config.

* Appease clippy

* Add Altair light client SSZ tests

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into light_client_beacon_api_1

* updates to light client header

* light client header from signed beacon block

* using options

* implement helper functions

* placeholder conversion from vec hash256 to exec branch

* add deneb

* using fixed vector

* remove unwraps

* by epoch

* compute merkle proof

* merkle proof

* update comments

* resolve merge conflicts

* linting

* Merge branch 'unstable' into light-client-ssz-tests

# Conflicts:
#	beacon_node/beacon_chain/src/beacon_chain.rs
#	consensus/types/src/light_client_bootstrap.rs
#	consensus/types/src/light_client_header.rs

* superstruct attempt

* superstruct changes

* lint

* altair

* update

* update

* changes to light_client_optimistic_ and finality

* merge unstable

* refactor

* resolved merge conflicts

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into capella_deneb_light_client_types

* block_to_light_client_header fork aware

* fmt

* comment fix

* comment fix

* include merge fork, update deserialize_by_fork, refactor

* fmt

* pass by ref to prevent clone

* rename merkle proof fn

* add FIXME

* LightClientHeader TestRandom

* fix comments

* fork version deserialize

* merge unstable

* move fn arguments, fork name calc

* use task executor

* remove unneeded fns

* remove dead code

* add manual ssz decoding/encoding and add ssz_tests_by_fork macro

* merge deneb types with tests

* merge ssz tests, revert code deletion, cleanup

* move chainspec

* update ssz tests

* fmt

* light client ssz tests

* change to superstruct

* changes from feedback

* linting

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into capella_deneb_light_client_types

* test fix

* cleanup

* Remove unused `derive`.

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into capella_deneb_light_client_types

* beta compiler fix

* merge
2024-03-25 11:01:56 +00:00
.cargo Switch allocator to jemalloc (#3697) 2023-01-20 04:19:29 +00:00
.config Reduce nextest threads to 8 (#4846) 2023-10-18 14:19:41 +00:00
.github Update CI actions to alleviate deprecation warnings (#5321) 2024-03-07 12:32:24 +00:00
account_manager Improvements and Fixes in Documentation, Including Corrected Command Usage (#4998) 2024-03-20 06:44:44 +00:00
beacon_node Add Capella & Deneb light client support (#4946) 2024-03-25 11:01:56 +00:00
book Built-in documentation text width in Lighthouse book (#5394) 2024-03-23 20:52:09 +00:00
boot_node Release v5.1.2 (#5453) 2024-03-21 18:04:00 +00:00
common Release v5.1.2 (#5453) 2024-03-21 18:04:00 +00:00
consensus Add Capella & Deneb light client support (#4946) 2024-03-25 11:01:56 +00:00
crypto Fix Rust beta compiler errors 1.78.0-beta.1 (#5439) 2024-03-20 05:17:02 +00:00
database_manager Improve database compaction and prune-states (#5142) 2024-02-08 10:05:08 +00:00
lcli Release v5.1.2 (#5453) 2024-03-21 18:04:00 +00:00
lighthouse Release v5.1.2 (#5453) 2024-03-21 18:04:00 +00:00
scripts Built-in documentation text width in Lighthouse book (#5394) 2024-03-23 20:52:09 +00:00
slasher Fix Rust beta compiler errors 1.78.0-beta.1 (#5439) 2024-03-20 05:17:02 +00:00
testing Add Capella & Deneb light client support (#4946) 2024-03-25 11:01:56 +00:00
validator_client Fix Rust beta compiler errors 1.78.0-beta.1 (#5439) 2024-03-20 05:17:02 +00:00
validator_manager Expose additional builder booster related flags in the vc (#5086) 2024-01-25 09:09:47 +11:00
watch Fix Rust beta compiler errors 1.78.0-beta.1 (#5439) 2024-03-20 05:17:02 +00:00
.dockerignore Exclude EE build dirs from Docker context (#3174) 2022-05-09 23:43:31 +00:00
.editorconfig align editorconfig with rustfmt (#4600) 2023-08-14 00:29:44 +00:00
.gitignore Add vendor directory to .gitignore (#4819) 2023-10-18 06:52:51 +00:00
.gitmodules Replace EF tests submodule with a makefile 2019-09-08 04:19:54 +10:00
Cargo.lock Release v5.1.2 (#5453) 2024-03-21 18:04:00 +00:00
Cargo.toml bump ethereum_serde_utils (#5341) 2024-03-02 19:14:03 +00:00
CONTRIBUTING.md Add branching instructions to the contribution guide (#4272) 2023-05-08 12:20:19 +00:00
Cross.toml bump clang in cross.toml (#4602) 2023-08-10 10:58:57 -04:00
Dockerfile Verify Versioned Hashes During Optimistic Sync (#4832) 2024-02-18 12:40:45 +00:00
Dockerfile.cross Use a stable tag for ubuntu in dockerfile (#3231) 2022-05-31 06:09:12 +00:00
LICENSE Update License to Apache 2.0 2019-04-15 16:47:35 +10:00
Makefile Delete milagro library (#5298) 2024-03-06 23:17:42 +00:00
README.md Improvements and Fixes in Documentation, Including Corrected Command Usage (#4998) 2024-03-20 06:44:44 +00:00
SECURITY.md Add how users should report security vulnerabilities for this repository (#2562) 2021-09-07 01:54:05 +00:00

Lighthouse: Ethereum consensus client

An open-source Ethereum consensus client, written in Rust and maintained by Sigma Prime.

Book Status Chat Badge

Documentation

Banner

Overview

Lighthouse is:

  • Ready for use on Ethereum consensus mainnet.
  • Fully open-source, licensed under Apache 2.0.
  • Security-focused. Fuzzing techniques have been continuously applied and several external security reviews have been performed.
  • Built in Rust, a modern language providing unique safety guarantees and excellent performance (comparable to C++).
  • Funded by various organisations, including Sigma Prime, the Ethereum Foundation, ConsenSys, the Decentralization Foundation and private individuals.
  • Actively involved in the specification and security analysis of the Ethereum proof-of-stake consensus specification.

Staking Deposit Contract

The Lighthouse team acknowledges 0x00000000219ab540356cBB839Cbe05303d7705Fa as the canonical staking deposit contract address.

Documentation

The Lighthouse Book contains information for users and developers.

The Lighthouse team maintains a blog at lighthouse-blog.sigmaprime.io which contains periodic progress updates, roadmap insights and interesting findings.

Branches

Lighthouse maintains two permanent branches:

  • stable: Always points to the latest stable release.
    • This is ideal for most users.
  • unstable: Used for development, contains the latest PRs.
    • Developers should base their PRs on this branch.

Contributing

Lighthouse welcomes contributors.

If you are looking to contribute, please head to the Contributing section of the Lighthouse book.

Contact

The best place for discussion is the Lighthouse Discord server.

Sign up to the Lighthouse Development Updates mailing list for email notifications about releases, network status and other important information.

Encrypt sensitive messages using our PGP key.

Donations

Lighthouse is an open-source project and a public good. Funding public goods is hard and we're grateful for the donations we receive from the community via:

  • Gitcoin Grants.
  • Ethereum address: 0x25c4a76E7d118705e7Ea2e9b7d8C59930d8aCD3b (donation.sigmaprime.eth).