Open this lesson in your favourite AI. It'll walk you through the why, explain the demo, and quiz you on the try-it list.
Solana's block production targets 400ms per slot — orders of magnitude faster than Ethereum's 12s. Slots and blocks are usually 1:1 but can diverge (skipped slots). Understanding the slot-time model is foundational for everything timing-related: transaction expiry, oracle staleness, validator scheduling.
Slot economics.
getSlot() and getBlockHeight() simultaneously; observe the difference (= skipped slots).getRecentPrioritizationFees timing — note variance under load.Use these three in order. Each builds on the one before.
In one paragraph, explain Solana's slot model and the 400ms tick.
Walk me through what makes a slot 'skipped' — what does the chain do.
Given a perpetual futures market that needs fresh oracle prices every 200ms, explain how Solana's slot model maps to your oracle update strategy, vs the same on Ethereum.
Slot duration: target 400ms
Real-world: 400-800ms (varies with validator load)
100,000 slots/day ≈ 100 slots/sec at peak
Block production per slot:
Slot leader (selected by stake-weighted lottery for next ~432k slots)
Leader proposes a block by producing N "entries" (~64 ticks per slot)
Entries are bundled into a block; block hash anchors to next slot's leader
Slot vs block:
- 1:1 in steady state
- Slot can be SKIPPED if leader is offline or proposes late
- Skipped slots have no block; the chain proceeds to next slot's leader
Implications:
Transaction expiry: blockhash expires after ~150 blocks (~60s)
Pyth pull oracles: publishers can update every slot (~400ms freshness)
TWAP windows: a 5-min TWAP is 750 slots (vs 25 ETH blocks)
Cron / time-locked: use slot count, not wall-clock (slot is monotonic)