[collator-selection] Add delay to candidate deposit withdrawals #7317
+314
−27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the collator selection pallet allows accounts to take the place of others in the candidate list by placing a higher bond than them. While the new candidate cannot lower their bond, they can leave the candidate set later and quickly rejoin with a lower deposit if nobody is watching to take their place by frontrunning the transaction. While this doesn't pose functional threats to the collator election system, it is undesirable behavior.
This PR solves this issue by introducing an unbonding period for candidates that leave the set voluntarily or that are kicked due to inactivity. In this case, the deposit is held until the unbonding period passes. Then, the funds can be released using the new
withdraw_unbonded
extrinsic call. Accounts that start unbonding cannot rejoin as candidates until the unbonding period has finished.