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

[FEAT]: Simultaneous Use of Multiple Beacon Nodes #8609

Open
olisovyi-everstake opened this issue Sep 17, 2024 · 2 comments
Open

[FEAT]: Simultaneous Use of Multiple Beacon Nodes #8609

olisovyi-everstake opened this issue Sep 17, 2024 · 2 comments
Assignees
Labels
bn-failovers Changes regarding failover functionality enhancement 🕵️‍♀️ New feature or request

Comments

@olisovyi-everstake
Copy link

Description:
I propose adding the ability to specify multiple beacon node endpoints (comma-separated) for validator clients. Instead of waiting for a failover when one beacon node fails, the validator client should send all tasks (e.g., attestation, block proposals, published blocks, duties) to all specified nodes simultaneously, similar to:

  • lighthouse --proposer-nodes flag
  • nimbus roles

Additionally it allows nimbus and lighthouse to choose best MEV payload from all specified beacon nodes, making getHeader requests.

Use Case:
By using all beacon nodes at once, validator clients can avoid downtime or interruptions caused by waiting for failover. Even if one node becomes unavailable, the tasks are still processed by the remaining nodes, providing maximum reliability.

Benefits:

  • No Failover Delays: Tasks are sent to all nodes immediately, avoiding wait times for failover.
  • Increased Redundancy: Multiple nodes work in parallel, in HA manner
  • Validator
    • higher attestation performance
    • higher MEV rewards
    • no missed block proposals

Thank you for considering this request.

@tbenr tbenr added bn-failovers Changes regarding failover functionality enhancement 🕵️‍♀️ New feature or request labels Sep 18, 2024
@ank-everstake
Copy link

You can check-out good explanation from Vero VC.

@mehdi-aouadi mehdi-aouadi self-assigned this Oct 16, 2024
@mehdi-aouadi
Copy link
Contributor

Thank you for this proposal.
I'd like to clarify few things before diving deeper into this feature:

I propose adding the ability to specify multiple beacon node endpoints (comma-separated) for validator clients. Instead of waiting for a failover when one beacon node fails, the validator client should send all tasks (e.g., attestation, block proposals, published blocks, duties) to all specified nodes simultaneously, similar to:

lighthouse --proposer-nodes flag
nimbus roles
Additionally it allows nimbus and lighthouse to choose best MEV payload from all specified beacon nodes, making getHeader requests.

Based on LH and Nimbus documentations, there's no guarantee/mention of choosing the best MEV payload when using such setup. The main purpose of using multiple BNs is primarily minimising the BN attack vector since a block proposer can be known ahead of the block proposal time.
Teku offers the Sentry Beacon Nodes features and the possibility of using multiple BNs using the beacon-node-api-endpoints option.

Benefits:

  • No Failover Delays: Tasks are sent to all nodes immediately, avoiding wait times for failover.
  • Increased Redundancy: Multiple nodes work in parallel, in HA manner
  • Validator
    • higher attestation performance
    • higher MEV rewards
    • no missed block proposals

There are also drawbacks:

  • requires more resources (x number of running BNs)
  • more complex logic for responses handling

You can check-out good explanation from Vero VC.

The requested feature is more in line with what Vero does: Add a responses selection logic based on the task being performed (comparing the attestations with the head events, selecting the best aggregates/block...)

TLDR; we will discuss the advantages / drawbacks of this feature and keep you posted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bn-failovers Changes regarding failover functionality enhancement 🕵️‍♀️ New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants