This proposal would modify the jailing parameters in the slashing module to make consensus more responsive to validator downtime and degraded performance.
Validators are penalized for failing to participate in block validation by being automatically jailed if they consistently miss blocks. When a validator misses a certain number of blocks within a defined window (determined by SignedBlocksWindow
), they are considered to have crossed below the liveness threshold and are penalized by jailing. A jailed validator is temporarily removed from the active validator set and cannot participate in block validation.
Validators who have been automatically jailed due to downtime can rectify the situation and rejoin the active validator set by sending a MsgUnjail message after the jail duration, indicating their readiness to address the issue that led to the missed blocks. They can then resume their validator duties and receive block and epoch rewards.
Jailing is essential as it keeps block times consistently high rather than forcing consensus to wait for a validator, which is consistently too late to sign a block due to technical issues.
For example, after the recent v24 software upgrade, some validators only came online up to a day after the upgrade. Block production during this period was slower than anticipated. After all validators began to sign blocks or were jailed, the block speed quickly increased to 3.2 seconds.
At the current Signed Blocks Window of 30,000, a validator is jailed after:
SignedBlocksWindow
*(1-MinSignedPerWindow
) * Block Time
Which is currently ~22 hours.
This proposal asks that the MinSignedPerWindow
be increased to 80%. This increases the jailing mechanism's responsiveness to 20% of the blocks in the SignedBlocksWindow
having passed rather than 95% of the blocks.
To compensate for this lowered time before jailing, the SignedBlocksWindow
should also be lengthened to allow for a reasonable response time; this proposal would also increase this to 80,000.
This combination would lead to jailing after ~12 hours of downtime with 2.7s block times seen after v25 and ~6 hours, 40 minutes at the eventual target of 1.5-second block times if unchanged with this target being reached. This should therefore be reviewed as block time continues to lower.
Current Slashing Module Parameters Signed Blocks Window: 30,000 Min Signed Per Window: 5.00% Downtime Jail Duration: 1 min Slash Fraction Doublesign: 5.00% Slash Fraction Downtime: 0.00%
Proposed Slashing Module Parameters Signed Blocks Window: 80,000 Min Signed Per Window: 80.00% Downtime Jail Duration: 1 min Slash Fraction Doublesign: 5.00% Slash Fraction Downtime: 0.00%
Forum Thread:https://forum.osmosis.zone/t/review-downtime-jailing-parameters/2762