Delay Commission Updates
Summary
Allow validators to update their commission rate at any time but delay those commission updates for at least one full epoch.
Motivation
Validators should be able update their desired commission at any time. That said, stake delegators should always have ample time to re-delegate their stake in response to validator commission rate changes.
New Terminology
NA
Detailed Design
Runtime
For a given epoch E, the earned inflation rewards for each vote account are calculated at the beginning of the next epoch E + 1. During inflation reward calculation, use the inflation rewards commission rate from the vote account state as it existed at the beginning of epoch E - 1. If the vote account did not exist at that time, fall back to the vote account state at the beginning of epoch E. And if the vote account did not exist then either, fall back to the vote account state at the beginning of epoch E + 1.
UpdateCommission
Update the core vote program to no longer restrict commission increases from happening during the first half of the epoch.
Alternatives Considered
NA
Impact
- Validators will need to wait at least one full epoch before their commission updates are applied.
- Stake delegators will have at least one full epoch to react to commission updates.
Security Considerations
NA
Drawbacks (Optional)
Why should we not do this?
Backwards Compatibility (Optional)
A feature gate will be used to simultaneously update vote program rules around commission rate updates as well as update the runtime's commission calculations at epoch boundaries.