Ethereum consensus client in Rust
Go to file
Jimmy Chen 0b7a426946
Builder flow for Deneb & Blobs (#4428)
* Add Deneb builder flow types with generics

* Update validator client `get_blinded_blocks` call to support Deneb

* `produceBlindedBlock` endpoint updates:
- Handle new Deneb BuilderBid response from builder endpoint (new BlindedBlobsBundle type)
- Build BlockContents response (containing kzg_commitments, proof and blinded_blob_sidecars)

* Appease Clippy lint

* Partial implementation of submit blinded block & blobs. Refactor existing `BlobSidecar` related types to support blinded blobs.

* Add associated types for BlockProposal

* Rename `AbstractSidecar` to `Sidecar`

* Remove blob cache as it's no longer necessary

* Remove unnecessary enum variant

* Clean up

* Hanlde unblinded blobs and publish full block contents

* Fix tests

* Add local EL blobs caching in blinded flow

* Remove BlockProposal and move associated Sidecar trait to AbstractExecPayload to simplify changes

* add blob roots associated type

* move raw blobs associated type to sidecar trait

* Fix todos and improve error handling

* Consolidate BlobsBundle from `execution_layer` into `consensus/types`

* Rename RawBlobs, Blobs, and BlobRoots

* Use `BlobRoots` type alias

* Update error message.

Co-authored-by: realbigsean <seananderson33@GMAIL.com>

* update builder bid type

# Conflicts:
#	consensus/types/src/builder_bid.rs

* Fix lint

* remove generic from builder bid

---------

Co-authored-by: realbigsean <seananderson33@gmail.com>
2023-08-10 09:32:49 -04:00
.cargo Switch allocator to jemalloc (#3697) 2023-01-25 14:21:54 +01:00
.github Merge branch 'unstable' into merge-unstable-to-deneb-20230808 2023-08-08 17:02:51 +10:00
account_manager Changes for devnet-8 (#4518) 2023-08-09 15:44:47 -04:00
beacon_node Builder flow for Deneb & Blobs (#4428) 2023-08-10 09:32:49 -04:00
book Merge branch 'unstable' into merge-unstable-to-deneb-20230808 2023-08-08 17:02:51 +10:00
boot_node upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
common Builder flow for Deneb & Blobs (#4428) 2023-08-10 09:32:49 -04:00
consensus Builder flow for Deneb & Blobs (#4428) 2023-08-10 09:32:49 -04:00
crypto Fix todos in deneb code (#4547) 2023-08-03 20:27:03 -04:00
database_manager fix compile after merge 2023-06-02 12:10:01 -04:00
lcli Merge branch 'unstable' into merge-unstable-to-deneb-20230808 2023-08-08 17:02:51 +10:00
lighthouse Merge pull request #4591 from realbigsean/merge-unstable-deneb-aug-9 2023-08-09 16:24:18 -04:00
scripts Merge branch 'unstable' into merge-unstable-to-deneb-20230808 2023-08-08 17:02:51 +10:00
slasher Merge branch 'unstable' of https://github.com/sigp/lighthouse into merge-unstable-deneb-jul-14 2023-07-17 09:33:37 -04:00
testing Merge pull request #4591 from realbigsean/merge-unstable-deneb-aug-9 2023-08-09 16:24:18 -04:00
validator_client Builder flow for Deneb & Blobs (#4428) 2023-08-10 09:32:49 -04:00
validator_manager Add validator-manager (#3502) 2023-08-08 00:03:22 +00:00
watch Use BeaconProcessor for API requests (#4462) 2023-08-08 23:30:15 +00:00
.dockerignore Exclude EE build dirs from Docker context (#3174) 2022-05-09 23:43:31 +00:00
.editorconfig Add editorconfig template 2019-03-11 15:09:57 +11:00
.gitignore remove spec minimal feature gating in tests (#4468) 2023-07-14 12:59:15 -07:00
.gitmodules Replace EF tests submodule with a makefile 2019-09-08 04:19:54 +10:00
bors.toml Switch allocator to jemalloc (#3697) 2023-01-25 14:21:54 +01:00
Cargo.lock Builder flow for Deneb & Blobs (#4428) 2023-08-10 09:32:49 -04:00
Cargo.toml Merge branch 'unstable' into merge-unstable-to-deneb-20230808 2023-08-08 17:02:51 +10:00
CONTRIBUTING.md Add branching instructions to the contribution guide (#4272) 2023-05-08 12:20:19 +00:00
Cross.toml upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
Dockerfile upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +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 remove spec minimal feature gating in tests (#4468) 2023-07-14 12:59:15 -07: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).