Documentation
¶
Index ¶
Constants ¶
View Source
const ( WindowDuration = 5 * time.Second MaxVerifyWindows = 6 MaxVerifyDelay = MaxVerifyWindows * WindowDuration // 30 seconds MaxBuildWindows = 60 MaxBuildDelay = MaxBuildWindows * WindowDuration // 5 minutes MaxLookAheadSlots = 720 MaxLookAheadWindow = MaxLookAheadSlots * WindowDuration // 1 hour )
Proposer list constants
Variables ¶
View Source
var ( ErrAnyoneCanPropose = errors.New("anyone can propose") ErrUnexpectedSamplerFailure = errors.New("unexpected sampler failure") )
Functions ¶
func TimeToSlot ¶ added in v1.10.18
Types ¶
type Windower ¶
type Windower interface {
// Proposers returns the proposer list for building a block at [blockHeight]
// when the validator set is defined at [pChainHeight]. The list is returned
// in order. The minimum delay of a validator is the index they appear times
// [WindowDuration].
Proposers(
ctx context.Context,
blockHeight,
pChainHeight uint64,
maxWindows int,
) ([]ids.NodeID, error)
// Delay returns the amount of time that [validatorID] must wait before
// building a block at [blockHeight] when the validator set is defined at
// [pChainHeight].
Delay(
ctx context.Context,
blockHeight,
pChainHeight uint64,
validatorID ids.NodeID,
maxWindows int,
) (time.Duration, error)
// In the Post-Durango windowing scheme, every validator active at
// [pChainHeight] gets specific slots it can propose in (instead of being
// able to propose from a given time on as it happens Pre-Durango).
// [ExpectedProposer] calculates which nodeID is scheduled to propose a
// block of height [blockHeight] at [slot].
// If no validators are currently available, [ErrAnyoneCanPropose] is
// returned.
ExpectedProposer(
ctx context.Context,
blockHeight,
pChainHeight,
slot uint64,
) (ids.NodeID, error)
// In the Post-Durango windowing scheme, every validator active at
// [pChainHeight] gets specific slots it can propose in (instead of being
// able to propose from a given time on as it happens Pre-Durango).
// [MinDelayForProposer] specifies how long [nodeID] needs to wait for its
// slot to start. Delay is specified as starting from slot zero start.
// (which is parent timestamp). For efficiency reasons, we cap the slot
// search to [MaxLookAheadSlots].
// If no validators are currently available, [ErrAnyoneCanPropose] is
// returned.
MinDelayForProposer(
ctx context.Context,
blockHeight,
pChainHeight uint64,
nodeID ids.NodeID,
startSlot uint64,
) (time.Duration, error)
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package proposermock is a generated GoMock package.
|
Package proposermock is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.