From my survey of a few parachains, the definition I find for MAXIMUM_BLOCK_WEIGHT
is often 0.5 seconds of compute :
/// Maximum weight per block
pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND)
.saturating_div(2)
.set_proof_size(cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64);
While for relay chains like Polkadot & Kusama, it seems to be 2 seconds :
// file : runtime/common/src/lib.rs
/// We allow for 2 seconds of compute with a 6 second average block time.
/// The storage proof size is not limited so far.
pub const MAXIMUM_BLOCK_WEIGHT: Weight =
Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2), u64::MAX);
Is there a reason it is so?
block time
is 500 ms to ensure that a PoV is built, validated and that it would be able to be increased in the future with asyn backing but it doesn't say why specifically 500ms. Is it based on some calculation? Is it done to ensure consitent throughput? I am looking for a why 500ms rather than a statement.