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

staking: bump all commission rate below param #10540

Closed
2 of 4 tasks
tac0turtle opened this issue Nov 15, 2021 · 15 comments · Fixed by #19537
Closed
2 of 4 tasks

staking: bump all commission rate below param #10540

tac0turtle opened this issue Nov 15, 2021 · 15 comments · Fixed by #19537

Comments

@tac0turtle
Copy link
Member

Summary

When a minimum commission rate is set via governance it should update all validators to be at this minimum.

This is a follow up to #10529.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@tac0turtle tac0turtle added this to the v0.45 milestone Nov 15, 2021
@Terra854
Copy link
Contributor

Are there any plans for what to do with validators whose max commission is below a given MinCommission?

@aaronc
Copy link
Member

aaronc commented Nov 22, 2021

This depends on #9438. We should probably have an option that governance sets as to whether to grandfather commissions below the minimum commission or to set them to the minimum.

@Terra854
Copy link
Contributor

Terra854 commented Dec 2, 2021

I would prefer to not allow grandfathering of commissions as this will allow already created nodes to bypass the minimum commission values

@Terra854
Copy link
Contributor

Terra854 commented Jan 2, 2022

Any updates on this? It would be great if we can get this implemented by 0.45

@tac0turtle
Copy link
Member Author

This will be included in 0.46 but not 0.45 which is slated for early January.

@sunnya97
Copy link
Member

sunnya97 commented Jan 24, 2022

@Terra854 the reason for grandfathering existing validators is a technical one, in that there are currently no hooks for when a param is updated. The staking module does not know when the param is updated. The method for how to add hooks to the params module is up for debate, and I think the blocker here

Maybe one funny temporary solution we could do is just add a msg type called "RefreshCommissionRates" which after the MinCommissionRate is updated via governance, anyone can call to iterate over validators and update them to the new minimum commission rate.

Manual human hooks 😄

@iramiller
Copy link
Contributor

iramiller commented Feb 1, 2022

Just writing this idea down so it gets out there somewhere...

The commission floor targets the idea of a single validator forcing a race to the bottom on fees. A related issue is the overall distribution of voting power across all validators (the top n of validators controlling a minor or super majority of stake).

A potentially more flexible solution that targets this distribution would be a curve function for the commission floor that ramps to 100% as the validator power approaches 33% of the total power in the network. This power adjustment would be added to the commission rate the validator has selected (of course not to exceed 100%). This adjustment function could apply when there is a change in voting power (end block style?). An additional consideration would be if this enforced floor was paid into the community pool instead of to the validator.

The above idea extends far outside the scope of this issue... but perhaps is still worth consideration separately by those that need the commission floor fix.

@Terra854
Copy link
Contributor

Terra854 commented Feb 1, 2022

Just writing this idea down so it gets out there somewhere...

The commission floor targets the idea of a single validator forcing a race to the bottom on fees. A related issue is the overall distribution of voting power across all validators (the top n of validators controlling a minor or super majority of stake).

A potentially more flexible solution that targets this distribution would be a curve function for the commission floor that ramps to 100% as the validator power approaches 33% of the total power in the network. This power adjustment would be added to the commission rate the validator has selected (of course not to exceed 100%). This adjustment function could apply when there is a change in voting power (end block style?). An additional consideration would be if this enforced floor was paid into the community pool instead of to the validator.

The above idea extends far outside the scope of this issue... but perhaps is still worth consideration separately by those that need the commission floor fix.

You might want to raise a feature request regarding this cause this sounds like you are proposing a totally different feature from what is proposed here

@tac0turtle tac0turtle removed this from the v0.46 milestone May 12, 2022
@Terra854
Copy link
Contributor

Just want to check, is this still being worked on?

@alexanderbez
Copy link
Contributor

This is honestly an application concern, not the SDK. Your upgrade handler should update validator commissions.

@Terra854
Copy link
Contributor

This is honestly an application concern, not the SDK. Your upgrade handler should update validator commissions.

Ideally the parameter check should be run everytime the minimum commission parameter gets updated via governance, not just when we upgrade.

@tac0turtle
Copy link
Member Author

Ideally the parameter check should be run everytime the minimum commission parameter gets updated via governance, not just when we upgrade.

this part can be done, we can make it part of the next staking module release

@alexanderbez
Copy link
Contributor

In order to use param checking/validation in a stateful manner, you have to use the new method of parameters (i.e. not use x/params), which isn't released yet. So there isn't a way to do this in 0.45.x AFAIK. Correct me if I'm wrong @marbar3778

@tac0turtle
Copy link
Member Author

we could do this now since it has been migrated. Lets make sure to include this in out staking refactor coming up soon

@alexanderbez
Copy link
Contributor

@tac0turtle how shall we ensure this and others like it are tracked properly? Should we create board for each module refactor and add the issue to those board(s)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants