Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VC: Publish to multiple BNs #3516

Closed
lfinbob opened this issue Aug 27, 2022 · 4 comments
Closed

VC: Publish to multiple BNs #3516

lfinbob opened this issue Aug 27, 2022 · 4 comments
Labels
enhancement New feature or request val-client Relates to the validator client binary

Comments

@lfinbob
Copy link

lfinbob commented Aug 27, 2022

I have my lighthouse VC connected to 2 BNs (primary and fallback).
I propose to add a flag that makes the VC publish messages via all connected BNs concurrently.
That would sidestep bad fall-back experiences (see comment in 3002) with missed attestions/proposals/sync committees.
It would also increase the chances of messages being successfully published despite spotty internet connections with occasional packet loss on the beacon nodes.

Implementing this would make #3001 and #3002 not required anymore for solid fall-back.

@lfinbob
Copy link
Author

lfinbob commented Oct 3, 2022

Here's an additional use-case for this:

My lighthouse VC is connected to 2 different BNs. I then switched the first BN's EC from Besu to Geth, requiring a Geth sync. Which takes many hours.
For all that time the VC dumbly uses the degraded BN instead of switching to the healthy fallback BN.

The VC continues to log that it is connected to 2 BNs:

INFO Connected to beacon node(s) synced: 2, available: 2, total: 2, service: notifier

Meanwhile the VC still chooses the unhealthy BN to publish attestations. The unhealthy BN logs:

WARN Execution endpoint is not synced
ERRO Error updating deposit contract cache
WARN Head is optimistic [...] chain not fully verified, block and attestation production disabled until execution engine syncs
Attestation included in aggregate validator: [...]
INFO Attestation included in block validator: [...]

This makes fall back system pretty useless if one has to resync the EC.

@michaelsproul
Copy link
Member

@lfinbob We're aware of the issues with the current fallback implementation and have opened a tracking issue to gather feedback, and refine the design: #3613. I think the behaviour you observed is a textbook instance of the problem described in that issue, and that the flood-publishing of this issue could be implemented in addition to improvements to the fallback system.

@michaelsproul michaelsproul added enhancement New feature or request val-client Relates to the validator client binary labels Oct 3, 2022
@lfinbob
Copy link
Author

lfinbob commented Oct 3, 2022

Great to read you guys are working on this, much appreciated.
I think flood publishing might be the fast & easy improvement, maybe a low-hanging fruit even.
Also it should have the secondary benefit of getting marginally better inclusion distances.

I vote for implementing this quickly, giving more time and thought to the more thorough enhancements described in #3613.
That would make the common two-machine-setup (1 primary, 1 fallback) for solo stakers and Rocket Pool node operators work smoothly with lighthouse immediately.

@xrchz
Copy link
Contributor

xrchz commented Oct 7, 2022

I had a block proposal fail to use the builder network on my fallback because my primary was still syncing - I suspect flood publishing would have avoided this. Very keen to see it soon.

Woodpile37 pushed a commit to Woodpile37/lighthouse that referenced this issue Jan 6, 2024
## Issue Addressed

Resolves sigp#3516 

## Proposed Changes

Adds a beacon fallback function for running a beacon node http query on all available fallbacks instead of returning on a first successful result. Uses the new `run_on_all` method for attestation and sync committee subscriptions. 

## Additional Info

Please provide any additional information. For example, future considerations
or information useful for reviewers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request val-client Relates to the validator client binary
Projects
None yet
Development

No branches or pull requests

3 participants