Ethereum consensus client in Rust
Go to file
realbigsean 2ce86a0830 Validator registration request failures do not cause us to mark BNs offline (#3488)
## Issue Addressed

Relates to https://github.com/sigp/lighthouse/issues/3416

## Proposed Changes

- Add an `OfflineOnFailure` enum to the `first_success` method for querying beacon nodes so that a val registration request failure from the BN -> builder does not result in the BN being marked offline. This seems important because these failures could be coming directly from a connected relay and actually have no bearing on BN health.  Other messages that are sent to a relay have a local fallback so shouldn't result in errors 

- Downgrade the following log to a `WARN`

```
ERRO Unable to publish validator registrations to the builder network, error: All endpoints failed https://BN_B => RequestFailed(ServerMessage(ErrorMessage { code: 500, message: "UNHANDLED_ERROR: BuilderMissing", stacktraces: [] })), https://XXXX/ => Unavailable(Offline), [omitted]
```

## Additional Info

I think this change at least improves the UX of having a VC connected to some builder and some non-builder beacon nodes. I think we need to balance potentially alerting users that there is a BN <> VC misconfiguration and also allowing this type of fallback to work. 

If we want to fully support this type of configuration we may want to consider adding a flag `--builder-beacon-nodes` and track whether a VC should be making builder queries on a per-beacon node basis.  But I think the changes in this PR are independent of that type of extension.

PS: Sorry for the big diff here, it's mostly formatting changes after I added a new arg to a bunch of methods calls.




Co-authored-by: realbigsean <sean@sigmaprime.io>
2022-08-29 11:35:59 +00:00
.github v3.0.0 (#3464) 2022-08-22 03:43:08 +00:00
account_manager Builder Specs v0.2.0 (#3134) 2022-07-30 00:22:37 +00:00
beacon_node Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
book Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
boot_node v3.0.0 (#3464) 2022-08-22 03:43:08 +00:00
common v3.0.0 (#3464) 2022-08-22 03:43:08 +00:00
consensus Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
crypto crypto/bls: make blst dependency optional (#3387) 2022-08-08 23:56:59 +00:00
database_manager Use async code when interacting with EL (#3244) 2022-07-03 05:36:50 +00:00
lcli v3.0.0 (#3464) 2022-08-22 03:43:08 +00:00
lighthouse Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
scripts Builder Specs v0.2.0 (#3134) 2022-07-30 00:22:37 +00:00
slasher Modularise slasher backend (#3443) 2022-08-15 01:30:56 +00:00
testing Enable block_lookup_failed EF test (#3489) 2022-08-24 23:34:59 +00:00
validator_client Validator registration request failures do not cause us to mark BNs offline (#3488) 2022-08-29 11:35:59 +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 Allow setting web3signer version through environment (#3368) 2022-07-27 03:20:01 +00:00
.gitmodules Replace EF tests submodule with a makefile 2019-09-08 04:19:54 +10:00
bors.toml Add merge support to simulator (#3292) 2022-07-18 23:15:40 +00:00
Cargo.lock Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
Cargo.toml Remove builder redundancy (#3294) 2022-07-01 01:15:19 +00:00
CONTRIBUTING.md [Contribution docs] Add GitPOAP Badge to Display Number of Minted GitPOAPs for Contributors (#3343) 2022-08-09 02:27:04 +00:00
Cross.toml Update Cross config for v0.2.2 (#3286) 2022-06-29 04:50:36 +00:00
Dockerfile docker rust version update (#3353) 2022-07-20 18:18:25 +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 Modularise slasher backend (#3443) 2022-08-15 01:30:56 +00:00
README.md Remove build status badge from README (#3195) 2022-05-20 05:02:14 +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).