Ethereum consensus client in Rust
Go to file
Divma ff9b09d964 upgrade to libp2p 0.52 (#4431)
## Issue Addressed

Upgrade libp2p to v0.52

## Proposed Changes
- **Workflows**: remove installation of `protoc`
- **Book**: remove installation of `protoc`
- **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s
- **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start
- **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks
- **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way
- **Lighthouse network**
	- connection limits is now a behaviour
	- banned peers no longer exist on the swarm level, but at the behaviour level
	- `connection_event_buffer_size` now is handled per connection with a buffer size of 4
	- `mplex` is deprecated and was removed
	- rpc handler now logs the peer to which it belongs

## Additional Info

Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade:
- Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it
- More powerful peer management: Dial attempts from other behaviours can be rejected early
- Incoming connections can be rejected early
- Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this
- TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips


Co-authored-by: Age Manning <Age@AgeManning.com>
Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
2023-08-02 00:59:34 +00:00
.cargo Switch allocator to jemalloc (#3697) 2023-01-20 04:19:29 +00:00
.github upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
account_manager remove withdrawal warning (#4207) 2023-05-01 08:22:40 +00:00
beacon_node upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
book upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
boot_node upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
common upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
consensus Phase 0 attestation rewards via Beacon API (#4474) 2023-07-18 01:48:40 +00:00
crypto Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
database_manager Add db inspect --output values option to support dumping raw db values (#4324) 2023-05-30 01:38:48 +00:00
lcli upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
lighthouse Fix HTTP state API bug and add --epochs-per-migration (#4236) 2023-07-17 00:14:12 +00:00
scripts upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
slasher Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
testing upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
validator_client Add support for updating validator graffiti (#4417) 2023-06-22 02:14:57 +00:00
watch Add self-hosted runners v2 (#4506) 2023-07-21 04:46:52 +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 Docs for Siren (#4023) 2023-02-28 02:20:52 +00: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-20 04:19:29 +00:00
Cargo.lock upgrade to libp2p 0.52 (#4431) 2023-08-02 00:59:34 +00:00
Cargo.toml Restore upstream arbitrary (#4372) 2023-07-31 01:53:04 +00: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 Add lint-fix task to automatically fix some Clippy warnings. (#4419) 2023-06-22 02:14:58 +00: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).