-
Notifications
You must be signed in to change notification settings - Fork 150
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
Throttling v2 provider migration #1032
Labels
S: NewThings
Work towards your business objectives with new products, features, or integrations
Comments
Yes, this is the way to go |
Changing the name to reflect that this will just involve a provider migration |
20 tasks
21 tasks
Closed by #1317 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
S: NewThings
Work towards your business objectives with new products, features, or integrations
Note this issue is only relevant to the provider!
Once #713 is fully implemented, we'll need to decide how we deal with any queued slash packets that exist at the time of the upgrade in functionality. Note that the throttling mechanism/behavior will be changed for both the provider and all consumers, see relevant ADR for details.
As I see it, we have two options
Option 1 - Handle or drop queued slash packets at upgrade time
We could handle all slash packets that are queued up (if any) at upgrade time, this route is slightly more risky, as it could enable the jailing attack that we've spent so much time preventing. However, this route is the most simple, and as long as we trust the consumers enough that exist at upgrade time, this route wouldn't be a problem.
We could also just drop all the queued slash packets that exist at upgrade time, therefore the jailing attack would not be possible. Worst case scenario here is that some validators who were down near upgrade time would not be punished. I think this decision is the way to go.
Note that it's most likely there won't be any queued slash packets at upgrade time, as throttling is not engaged during nominal CCV operations. We're considering worst case scenarios here.
Option 2 - Multi stage upgrade process
We could upgrade the consumers and provider in a clever way to gracefully change the throttling functionality.
First all consumers would need to upgrade to enable their own slash packet queueing/bouncing/blocking behavior. This is described in more detail in ADR.
Next, the provider upgrade would look like:
Downsides to this route are that it'd be really annoying to coordinate, especially without go.mod split. Also, we have to write more code to deal with this toggling behavior. This route is not my preference.
The text was updated successfully, but these errors were encountered: