Ethereum consensus client in Rust
Go to file
Eitan Seri-Levi 5c8c8da8b1
Use blocks v3 endpoint in the VC (#4813)
* block v3 endpoint init

* block v3 flow

* block v3 flow

* continue refactor

* the full flow...

* add api logic

* add api logic

* add new endpoint version

* added v3 endpoint

* some debugging

* merge v2 flow with v3

* debugging

* tests passing

* tests passing

* revert cargo lock

* initial v3 test

* blinded payload test case passing

* fix clippy issues

* cleanup

* cleanup

* remove dead code

* fixed logs

* add block value

* block value fix

* linting

* merge unstable

* refactor

* add consensus block value

* lint

* update header name to consensus block value

* prevent setting the participation flag

* clone get_epoch_participation result

* fmt

* clone epoch participation outside of the loop

* add block v3 to vc

* add v3 logic into vc

* add produce-block-v3

* refactor based on feedback

* update

* remove comments

* refactor

* header bugfix

* fmt

* resolve merge conflicts

* fix merge

* fix merge

* refactor

* refactor

* cleanup

* lint

* changes based on feedback

* revert

* remove block v3 fallback to v2

* publish_block_v3 should return irrecoveerable errors

* comments

* comments

* fixed issues from merge

* merge conflicts

* Don't activate at fork; support builder_proposals

* Update CLI flags & book

* Remove duplicate `current_slot` parameter in `publish_block` function, and remove unnecessary clone.

* Revert changes on making block errors irrecoverable.

---------

Co-authored-by: Michael Sproul <michael@sigmaprime.io>
Co-authored-by: Jimmy Chen <jchen.tc@gmail.com>
2024-01-08 16:12:39 -05: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 Add mergify merge queue configuration file (#4917) 2023-12-12 16:04:29 +11:00
account_manager Delete deprecated cli flags (#4906) 2023-11-09 15:05:55 +11:00
beacon_node create unified slashing cache (#5033) 2024-01-08 10:30:57 -05:00
book Use blocks v3 endpoint in the VC (#4813) 2024-01-08 16:12:39 -05:00
boot_node Remove serde derive references (#4830) 2023-10-11 13:01:30 -04:00
common update goerli config (#5036) 2024-01-08 11:24:12 +11:00
consensus Clean up blockv3 metadata and client (#5015) 2023-12-22 09:39:17 -05:00
crypto Sidecar inclusion proof (#4900) 2023-12-05 11:19:59 -05:00
database_manager Always use a separate database for blobs (#4892) 2023-11-09 16:51:36 +11:00
lcli Update Rust version in lcli Dockerfile. (#5002) 2023-12-12 10:20:49 -05:00
lighthouse Use blocks v3 endpoint in the VC (#4813) 2024-01-08 16:12:39 -05:00
scripts Add hint for solving CLI tests failure (#5041) 2024-01-08 10:30:37 -05:00
slasher Update dependencies to get rid of the yanked deps (#4994) 2023-12-15 18:31:59 +11:00
testing Block v3 builder boost factor (#5035) 2024-01-08 11:10:32 +11:00
validator_client Use blocks v3 endpoint in the VC (#4813) 2024-01-08 16:12:39 -05:00
validator_manager Move dependencies to workspace (#4650) 2023-09-22 04:30:56 +00:00
watch Update dependencies to get rid of the yanked deps (#4994) 2023-12-15 18:31:59 +11: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 Track shared memory in metrics (#5023) 2024-01-05 14:48:11 -05:00
Cargo.toml Update dependencies to get rid of the yanked deps (#4994) 2023-12-15 18:31:59 +11: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 upgrade libp2p to v0.53.* (#4935) 2023-12-07 20:39:59 +11: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 Add hint for solving CLI tests failure (#5041) 2024-01-08 10:30:37 -05:00
README.md Update blog link in README (#4322) 2023-05-30 01:38:47 +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 periodical 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).