Skip to content

Build1 publisher3 min readPublished

Halving Solana's slot leaves 150-slot blockhashes with 30 seconds to live

SIMD-0525 walks Solana's slot down to 200 ms through four feature gates, each needing 95 percent of stake. Counts written in slots keep their numbers while every duration they encode is cut in half.

The Engineer · Build desk

Illustration accompanying Halving Solana's slot leaves 150-slot blockhashes with 30 seconds to live

What happened

  • SIMD-0525 would cut Solana's 400 ms slot in four steps, at 350, 300, 250 and 200 ms, each a feature gate that activates at 95 percent of stake and takes effect at the next epoch boundary.
  • Compute limits scale with slot time, so the block ceiling drops from 60 million compute units to 30 million and the per-account write ceiling from 24 million to 12 million.
  • A blockhash valid for 150 slots keeps its count and falls from about a minute of wall clock to 30 seconds, while a 432,000-slot epoch drops from two days to one.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost Contracts that expressed time in epochs or slot numbers carry a cost their authors did not price, because 180 epochs stops being twelve months and becomes six.
  • constraint Anything that needs more than 12 million compute units against a single account has to be split before the last gate flips, and SIMD-0286 does not rescue it: its multiplier still lands under today's per-account ceiling.
  • decision Wallets and multisigs with a human in the loop have to adopt durable nonces or budget for expired blockhashes, since 30 seconds is the whole window between signing and sending.
  • capability Unstaking clears in half the wall-clock time because cool-down counts epochs, so exit-queue models built on two-day epochs need rebuilding.

The ladder is four ordinary feature gates. Each one goes live when 95 percent of stake runs software that supports it, and the new slot time starts at the first slot of the following epoch [4]. According to the dev.to post, originally published on xroot.dev, that epoch of delay exists so shred filters get a full epoch of advance notice [5].

Every regime's parameter set already ships in the validator, covering hashes per tick, shreds per slot, entry bytes per slot and the admission ticket per epoch [6]. The post describes the table as the literal struct the node loads when each gate flips, not a projection [12]. Read the columns per second and most of them hold still: 32,768 shreds in a 400 ms slot and 16,384 in a 200 ms slot are both 81,920 shreds a second [1], and 20 MiB against 10 MiB of entry bytes are both 50 MiB a second [2]. The middle steps are scaled and then truncated, since there is no such thing as half a hash: 62,500 hashes per tick times 350/400 is 54,687.5 and the table carries 54,687 [3], and at 250 ms 39,062.5 becomes 39,062 [4].

An epoch is 432,000 slots, which is two days at 400 ms and one day at 200 ms [23]. The admission ticket over those epochs is 1.6 SOL and 0.8 SOL [7][11]. Both work out to 0.8 SOL per day of epoch [5]. Across a year that is 182.5 two-day epochs at 1.6 SOL or 365 one-day epochs at 0.8 SOL, and 292 SOL either way [6]. Slots per year goes from 78.9 million to 157.8 million [13].

Compute is where the halving is not neutral. The block limit steps down from 60 million compute units to 30 million and the per-account write limit from 24 million to 12 million [16], so throughput per second is roughly preserved while throughput per block is halved [17]. A transaction needing more than 12 million units against one account cannot fit in a 200 ms block however empty the block is [18]. SIMD-0286 would raise the block limit to 100 million, and the code applies it as a 100/60 multiplier on whichever regime is active, giving 50 million per block and 20 million per account at 200 ms [19]. Both figures sit about 17 percent below today's ceilings [7].

150 slots is a constant, and the validator does not rescale it [20]. A hardware wallet prompt or a multisig collecting a second signature therefore has half the window it had, and retry loops tuned to roughly a minute will start seeing expired blockhashes at a rate they never saw before [21]. The post's remedy is durable nonces, which last until you advance them, and it says that for any flow with a human in the loop they go from optional to necessary at 200 ms [22].

Epoch counts move the same way. Stake warm-up and cool-down run their schedule twice as fast, and rewards land twice as often in smaller pieces [24][25]. A twelve-month lock written as 180 epochs becomes six months, and slot-numbered vesting cliffs unlock early by the ratio of the slot-time change at each step [27].

The post says none of the four gates was active on any cluster when it was written, the code paths are tested, and the schedule is not published [14]. The upgrades tracker reads the gate accounts from the chain every minute [15].

What to watch

  • The first gate account flipping to active on a cluster, which puts the 350 ms parameter set live at the next epoch boundary and produces the only real measurement of the ladder.
  • Whether SIMD-0286 lands before or after the later gates, since its 100/60 multiplier applies to whichever regime is active at the time.
  • Any published activation schedule, which is what anyone holding epoch-denominated locks would need to reprice them.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories