New block delay formula
Context
This MR implements a new block delay formula for Emmy+:
emmy*_delay(p,e) = if p = 0 && e >= 3 * te / 5
then md
else emmy+_delay(p,e)
where emmy+_delay(p,e) = bd + pd * p + ed * max(ie - e, 0)
is the block delay formula introduced in Babylon; the following abbreviations are used:
-
md
, for "minimal delay", refers to the newly introduced constantminimal_block_delay
-
bd = time_between_blocks[0]
(for "base delay") -
pd = time_between_blocks[1]
(for "priority delay") -
te = endorsers_per_block
(for "total endorsing power") -
ie = initial_endorsers
(for "initially required endorsing power") -
ed = delay_per_missing_endorsement
(for "endorsement delay" per missing endorsing slot).
This MR fixes part of #1027 (closed).
Remaining todos:
-
Decide the value of endorsers_per_block
; currently set to 256; however this might change depending on the feedback obtained by running a testnet (see nomadic-labs/tezos!326) -
Update the rewards and the deposits -
Update the doc
Checklist
-
Document the interface of any function added or modified -
Provide automatic testing: an integration test and a unit test are provided