osmosis

Prop 784: Review Downtime Jailing Parameters

This proposal would modify the jailing parameters in the slashing module to make consensus more responsive to validator downtime and degraded performance.

Background

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.

Proposal

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.

  • Validators that have gone offline will remain in the consensus round for a much shorter period before being jailed.
  • Validators that have degraded performance, causing consensus to be regularly delayed, will also be jailed for downtime.

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