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

Known duty broadcasted #777

Closed
dB2510 opened this issue Jul 8, 2022 · 0 comments
Closed

Known duty broadcasted #777

dB2510 opened this issue Jul 8, 2022 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@dB2510
Copy link
Contributor

dB2510 commented Jul 8, 2022

Problem to be solved

While testing with multiple beacon client implementations when we use same beacon node endpoint for each charon node, it has been found that when a peer broadcasts duty data from core/bcast component it gets an error somewhat similar to PriorAttestationKnown. This happens because some peer in the cluster has sent the duty data (attestation/block) first and when other peers send the same data they get this error. Following is a case where it happens with Lighthouse beacon node on prater:
Screenshot 2022-07-08 at 11 44 30 AM
Screenshot_from_2022-07-08_11-44-06
In first screenshot we can see that node2 has successfully broadcasted its attestation to lighthouse Beacon Node while other 3 nodes failed to do so.
Second screenshot is from Lighthouse logs, where you all can see that it gives error showing reason as: PriorAttestationKnown

Proposed solution

These types of errors should be handled in core/bcast from different implementations of beacon nodes. Since attestation is broadcasted successfully to beacon chain, this shouldn't be an error. Solution may look like:

err = b.eth2Cl.SubmitAttestations(ctx, []*eth2p0.Attestation{&att.Attestation})
if isKnownAttestationError(err) {
    // Assume this is a race with a peer in the cluster.
    err = nil
}
if err == nil {
    log.Info(ctx, "Attestation successfully submitted to beacon node",
        z.Any("delay", b.delayFunc(duty.Slot)),
    )
}

@dB2510 dB2510 added the bug Something isn't working label Jul 8, 2022
@dB2510 dB2510 self-assigned this Jul 17, 2022
@corverroos corverroos assigned corverroos and unassigned dB2510 Jul 19, 2022
obol-bulldozer bot pushed a commit that referenced this issue Jul 19, 2022
Catch and ignore lighthouse non-idempotent error. This follows the example set inside goeth2client (but only used for failover in multi-client setup).

category: bug 
ticket: #777
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants