rusk
rusk copied to clipboard
consensus: Increase block time
Summary
As observed on ITN, the block time is excessively fast. While this is definitely a good sign, it also introduces some issues like:
- excessive bandwidth usage
- difficulty with the issuance schedule
- latency has too big of an impact on the network
- slightly slower nodes repeatedly miss producing candidates
Possible solution design or implementation
Slowing down the block time is surprisingly hard. So far there are 3 envisioned solutions, but none of them seem ideal:
- introduce a PoW at generation phase: perhaps introducing the same nonce calculation in Kadcast could be the way to go. Introducing a PoW would have the advantage that the slowdown is enforced at protocol level. The disadvantage would be that this could introduce a risk for low-specc'ed nodes to miss their slot to generate a block and get slashed.
- introduce a sleep: Introducing a sleep on a voluntary basis would be a rather simple approach, however this would not be enforceable protocol-wise or would require a VDF, which is quite inconvenient/hard to implement. Selfish nodes would work around this to maximize their probability to get to a successful generation.
- introduce timestamp managing: this has been previously discarded since timestamps are hard to enforce or check, and might introduce some unwanted overhead. However, it might be that for this specific use case we could have some use for introducing timestamps.