Crate solana_clock

Source
Expand description

Information about the network’s clock, ticks, slots, etc.

Time in Solana is marked primarily by slots, which occur approximately every 400 milliseconds, and are numbered sequentially. For every slot, a leader is chosen from the validator set, and that leader is expected to produce a new block, though sometimes leaders may fail to do so. Blocks can be identified by their slot number, and some slots do not contain a block.

An approximation of the passage of real-world time can be calculated by multiplying a number of slots by DEFAULT_MS_PER_SLOT, which is a constant target time for the network to produce slots. Note though that this method suffers a variable amount of drift, as the network does not produce slots at exactly the target rate, and the greater number of slots being calculated for, the greater the drift. Epochs cannot be used this way as they contain variable numbers of slots.

The network’s current view of the real-world time can always be accessed via Clock::unix_timestamp, which is produced by an oracle derived from the validator set.

Modules§

sysvarsysvar

Structs§

Clock
A representation of network time.

Constants§

DEFAULT_DEV_SLOTS_PER_EPOCH
DEFAULT_HASHES_PER_SECOND
DEFAULT_HASHES_PER_TICK
DEFAULT_MS_PER_SLOT
The expected duration of a slot (400 milliseconds).
DEFAULT_SLOTS_PER_EPOCH
The number of slots per epoch after initial network warmup.
DEFAULT_S_PER_SLOT
DEFAULT_TICKS_PER_SECOND
The default tick rate that the cluster attempts to achieve (160 per second).
DEFAULT_TICKS_PER_SLOT
FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET
Transaction forwarding, which leader to forward to and how long to hold
GENESIS_EPOCH
HOLD_TRANSACTIONS_SLOT_OFFSET
INITIAL_RENT_EPOCH
MAX_HASH_AGE_IN_SECONDS
The time window of recent block hash values over which the bank will track signatures.
MAX_PROCESSING_AGE
MAX_RECENT_BLOCKHASHES
MAX_TRANSACTION_FORWARDING_DELAY
More delay is expected if CUDA is not enabled (as signature verification takes longer)
MAX_TRANSACTION_FORWARDING_DELAY_GPU
This is maximum time consumed in forwarding a transaction from one node to next, before it can be processed in the target node
MS_PER_TICK
The number of milliseconds per tick (6).
NUM_CONSECUTIVE_LEADER_SLOTS
SECONDS_PER_DAY
TICKS_PER_DAY
UPDATED_HASHES_PER_SECOND_2
UPDATED_HASHES_PER_SECOND_3
UPDATED_HASHES_PER_SECOND_4
UPDATED_HASHES_PER_SECOND_5
UPDATED_HASHES_PER_SECOND_6
UPDATED_HASHES_PER_TICK2
UPDATED_HASHES_PER_TICK3
UPDATED_HASHES_PER_TICK4
UPDATED_HASHES_PER_TICK5
UPDATED_HASHES_PER_TICK6

Type Aliases§

BankId
Uniquely distinguishes every version of a slot.
Epoch
The unit of time a given leader schedule is honored.
Slot
The unit of time given to a leader for encoding a block.
SlotCount
The number of slots in a epoch.
SlotIndex
An index to the slots of a epoch.
UnixTimestamp
An approximate measure of real-world time.