-
Notifications
You must be signed in to change notification settings - Fork 80
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
core/tracker: update tracker for DutyAggregator #1164
Conversation
Codecov ReportBase: 53.28% // Head: 53.27% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #1164 +/- ##
==========================================
- Coverage 53.28% 53.27% -0.01%
==========================================
Files 131 131
Lines 15341 15385 +44
==========================================
+ Hits 8174 8196 +22
- Misses 5983 6000 +17
- Partials 1184 1189 +5
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
@@ -77,6 +77,8 @@ func (f *Fetcher) Fetch(ctx context.Context, duty core.Duty, defSet core.DutyDef | |||
unsignedSet, err = f.fetchAggregatorData(ctx, duty.Slot, defSet) | |||
if err != nil { | |||
return errors.Wrap(err, "fetch aggregator data") | |||
} else if len(unsignedSet) == 0 { // No aggregators found in this slot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should add a test for this
core/tracker/tracker.go
Outdated
@@ -193,6 +196,30 @@ func analyseDutyFailed(duty core.Duty, allEvents map[core.Duty][]event) (bool, c | |||
} | |||
} | |||
} | |||
|
|||
if duty.Type == core.DutyAggregator { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When DuyAggregator fails in fetcher, it is impossible to distringuish between "no aggregators" and "couldn't fetch duty data from beacon node". We will need to emit some other kind of event for this. We could emit a "timedout" event from retryer maybe? Or just assume that it is "no aggregators" for now.
@@ -77,6 +77,8 @@ func (f *Fetcher) Fetch(ctx context.Context, duty core.Duty, defSet core.DutyDef | |||
unsignedSet, err = f.fetchAggregatorData(ctx, duty.Slot, defSet) | |||
if err != nil { | |||
return errors.Wrap(err, "fetch aggregator data") | |||
} else if len(unsignedSet) == 0 { // No aggregators found in this slot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need to add tests for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
core/tracker/tracker.go
Outdated
fetcherMsg = "couldn't fetch duty data from the beacon node" | ||
fetcherAggregatorNoAttDataMsg = "couldn't aggregate attestation due to failed attester duty" | ||
fetcherAggregatorFewPreparesMsg = "couldn't aggregate attestation due to insufficient partial committee subscriptions" | ||
fetcherAggregatorZeroPreparesMsg = "couldn't aggregate attestation due to zero partial committee subscriptions" | ||
fetcherAggregatorFailedPrepareMsg = "couldn't aggregate attestation due to failed prepare aggregator duty " | ||
fetcherProposerFewRandaosMsg = "couldn't propose block due to insufficient partial randao signatures" | ||
fetcherProposerZeroRandaosMsg = "couldn't propose block due to zero partial randao signatures" | ||
fetcherProposerFailedRandaoMsg = "couldn't propose block due to failed randao duty" | ||
consensusMsg = "consensus algorithm didn't complete" | ||
validatorAPIMsg = "signed duty not submitted by local validator client" | ||
parSigDBInternalMsg = "partial signature database didn't trigger partial signature exchange" | ||
parSigExMsg = "no partial signatures received from peers" | ||
parSigDBThresholdMsg = "insufficient partial signatures received, minimum required threshold not reached" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dB2510 @thomasheremans we should consider a collapsed section of the FAQ on the doc site that explains each of these errors in two sentences or so. We should aim that if people google these errors exactly our docs show up in the indexed google results.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure @dB2510 can you provide me with the two sentences or so for each and I will add them to the docs, thanks 🙏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @corverroos , @OisinKyne this has been added to the PR ObolNetwork/obol-docs@main...Launchpad-guide-and-faq
Adds support for DutyAggregator and DutyPrepareAggregator failures to tracker.
category: feature
ticket: #1154