Enable conditional fast-unstake service in Kusama
Whitelisted Caller
2 Comments
Executed

This proposal should enable fast-unstake in Kusama, as explained here.

Polkassembly
Reply
Up
Share
Status
Decision14d
Confirmation10mins
Approved
Tally
100%Aye
52.4%Threshold
0%Nay
Aye
716.59K KSM
716592.424771620376 KSM
Nay
18.92 KSM
  • 0.0%
  • 0.0%
  • 0.0%

Threshold

Support
667.34K KSM
667340.073232576932 KSM
Issuance
0 KSM
Metadata
Submission
0.033333333333 KSM
Bond: 0.033333333333 KSM
Decision
333.33333333 KSM
Bond: 333.33333333 KSM
Decision Period
14 days
(201,600 blocks)
Confirming Period
10 mins
(100 blocks)
Enact
After: 10
Proposal Hash
0xf095661dc618ac589471b2d237aaace0e07101ec2a13350a5f9a546b7775b8bc
Call
Table
Json
callIndex0x2c03
sectionwhitelist
methoddispatchWhitelistedCallWithPreimage
args
call
callIndex0x2a02
sectionfastUnstake
methodcontrol
args
uncheckedErasToCheck1
TimelineLatest activity undefined
2023-01-03 12:48:30
Submitted
Proposer
Track
Whitelisted Caller
Proposal Hash
0xf095661dc618ac589471b2d237aaace0e07101ec2a13350a5f9a546b7775b8bc
2023-01-03 13:20:00
DecisionStarted
2023-01-15 11:03:36
ConfirmStarted
2023-01-15 11:13:36
Confirmed
2023-01-15 11:23:42
Executed
result
ok
Comments
SubSquare(1)
Polkassembly(1)

Path to fast-unstake on Kusama

this feature is there to allow those that have staked by mistake, or for whatever reason, are no longer actually exposed (and are thus not earning any rewards anymore – exactly like a recent report here: Only inactive validators after nomination - #3 by kianenigma) to unstake faster.

This pallet already exists in all runtimes. The pallet works of the basis of using leftover block weights, and using it optionally (on_idle, for the technical folks) to progress the unstake process. The pallet consumes only a maximum amount of weight, measured in the number of eras that are checked per block (ErasToCheckPerBlock).

This cap is currently set to 0 in Polkadot and Kusama, and thus the pallet is effectively not doing anything. On westend, the pallet has been enabled for a while now, and has been tested.

The most note-worthy issues is that an unexposed nominator who also happened to have been slashed in the past cannot use this pallet. First, this is a very rare case anyhow, because to be slashed, one needs to have been exposed at some point, which contradicts the main requirement of fast-unstake: it is only for unexposed nominators. So, only a small group of nominators will be applicable to this. Moreover, any UI can easily detect this situation and not recommend that fast-unstake process to the nominator if they have been slashed in the past.

The second issues that we have found so far is that the while the fast-unstake process does not take too much weight under any circumstance, it might mistakenly report a very large amount of weight for itself. This might have the consequence of next on_idle hooks in the runtime being starved, but it has no serious consequence on the rest of the system. Moreover, no pallets other than fast-unstake in Polkadot and Kusama runtime are using on_idle.

Both issues are fixed.

The call needed to enable the feature are as follows: Kusama - Polkadot/Substrate Portal.

Edited
Reply
Up