-
Notifications
You must be signed in to change notification settings - Fork 104
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
Align to ssv-spec
v0.3.3
#1109
Align to ssv-spec
v0.3.3
#1109
Conversation
ssv-spec
to branch drop-blinded-block-rejection
ssv-spec
to latest
func (n *p2pNetwork) SyncHighestDecided(mid spectypes.MessageID) error { | ||
ctx := context.TODO() // TODO: pass context to SyncHighestDecided | ||
|
||
return n.syncer.SyncHighestDecided(ctx, n.interfaceLogger, mid, func(msg *queue.DecodedSSVMessage) { | ||
n.msgRouter.Route(ctx, msg) | ||
}) | ||
} | ||
|
||
func (n *p2pNetwork) SyncDecidedByRange(mid spectypes.MessageID, from, to qbft.Height) { | ||
ctx := context.TODO() // TODO: pass context to SyncDecidedByRange |
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.
I thought we said we wanted to leave sync for fullnodes and not just removed entirely. wouldn't just deleting like this stop fullnode/explorer functionality?
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.
Yes, but since the history sync was disabled anyway, and we want to redesign the syncing, then we preferred to fully align to spec here by removing SyncDecidedByRange
as well.
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.
Looks good
I just want to say that this is PR seems to mingle many different things and thus is big.
I remember we talked about smaller PRs here 🤷
return c.UponFutureMsg(logger, msg) | ||
} else { | ||
return c.UponExistingInstanceMsg(logger, msg) | ||
return nil, fmt.Errorf("future msg from height, could not process") |
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.
The spec doesn't concern itself with future messages.
Note that in practice, if there is for example a one second drift between different operators clocks, it can potentially cause duties to be missed.
Not sure how common this case is. Also it should effect at least 2 operators in a committee of 4 to have an impact. I understood engineering is not concerned about it.
However, I am writing this comment here for the record
|
||
func (b *BaseRunner) ShouldProcessDuty(duty *spectypes.Duty) error { | ||
if b.QBFTController.Height >= specqbft.Height(duty.Slot) { | ||
return errors.Errorf("duty for slot %d already passed. Current height is %d", duty.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.
I think this is my bad here...
The bootstrap case isn't covered here (height == 0)
I think I need to create a PR in spec for it.
It isn't a big deal for mainnet but still a bug
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.
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 will address it in the next spec aligned version
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.
LGTM
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.
runPreTesting
is unused, do we want to keep it for future ref or remove it ?
it's not needed, just removed it |
" VoluntaryExit support (partially implemented to pass tests, not yet enabled, delayed for a future PR)" |
Changes
tests.json
(State comparison json ssv-spec#275)Instance.Broadcast
andStartNewDuty
)golang-ci-lint
versionRecommended QA tests:
StartNewDuty
was modified, confirm that missed attestations aren't due to duties refusing to start.ValidatorRegistrationRunner
: Change a fee recipient and check that the relays have received the updated address.Recommended changes in a followup PR: