Documentation
¶
Overview ¶
ACP-226 implements the dynamic minimum block delay mechanism specified here: https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/226-dynamic-minimum-block-times/README.md
Index ¶
Constants ¶
View Source
const ( // MinDelayMilliseconds (M) is the minimum block delay in milliseconds MinDelayMilliseconds = 1 // ms // ConversionRate (D) is the conversion factor for exponential calculations ConversionRate = 1 << 20 // MaxDelayExcessDiff (Q) is the maximum change in excess per update MaxDelayExcessDiff = 200 // InitialDelayExcess represents the initial (≈2000ms) delay excess. // Formula: ConversionRate (2^20) * ln(2000) + 1 InitialDelayExcess = 7_970_124 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DelayExcess ¶
type DelayExcess uint64
DelayExcess represents the excess for delay calculation in the dynamic minimum block delay mechanism.
func DesiredDelayExcess ¶
func DesiredDelayExcess(desiredDelay uint64) DelayExcess
DesiredDelayExcess calculates the optimal delay excess given the desired delay in milliseconds.
func (DelayExcess) Delay ¶
func (t DelayExcess) Delay() uint64
Delay returns the minimum block delay in milliseconds, `m`.
Delay = MinDelayMilliseconds * e^(DelayExcess / ConversionRate)
func (*DelayExcess) UpdateDelayExcess ¶
func (t *DelayExcess) UpdateDelayExcess(desiredDelayExcess DelayExcess)
UpdateDelayExcess updates the DelayExcess to be as close as possible to the desiredDelayExcess without exceeding the maximum DelayExcess change.
Click to show internal directories.
Click to hide internal directories.