{ "title": "Update Consensus config exclude_round from 20 to 40", "description": "For Consensus to operate correctly, all validators need to agree on the same leader. In Aptos, Consensus coordinates leader selection via deterministic formula based on on-chain state (like root hash), that each validator computes independently. For achieving high efficiency and throughput, we also have decoupled execution, where we have a pipeline of stages (consensus ordering, execution, commit), where each stage has a queue and operates independently. That means that there is a delay between consensus ordering a block and state in storage being updated. Given decoupled execution, in order for leader election to agree among validators, we have on-chain config called exclude_round which defines which state is used for computing leader for a particular round: leader[round] = selection_formula(round - exclude_round). If number of blocks in the pipeline is larger than exclude_rounds, then validator has not yet computed the state needed for leader election formula, and validators will not agree on the same leader, leading to failed round and increased latency. We have noticed, that under high load, number of blocks in the pipeline can temporarily grow to ~30, so increasing exlcude_rounds to 40 should improve experience and latency under high load.", "source_code_url": "https://github.com/aptos-foundation/mainnet-proposals/blob/main/sources/update-consensus/update-consensus-exclude-round-to-40.move", "discussion_url": "https://github.com/aptos-foundation/mainnet-proposals/issues/16" }