Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix A — Constants, identifiers, and limits

This table gathers the limits most likely to be confused across protocol domains. It includes every per-slot/block production limit and every shred/FEC limit. Intrinsic integer ranges and exact field lengths already visible in a byte-layout table are not repeated here. CRDS retention, QUIC resource, and Turbine topology rows summarize the informative active liveness profile; they are not block-validity limits.

Informative table.

DomainLimitEpoch-E valueGoverning section
account stateaccount data length10,485,760 bytes4.1
account stategrowth of one account in one instruction10,240 bytes4.2
account stateaggregate positive growth in one transaction20,971,520 bytes4.2
derived addressseeds / bytes per seed16 / 325.5
UDP / TPU-vote transactionapplication datagram or serialized transaction1,232 bytes6.1, 6.6, 7.2
gossipcombined CRDS values in push/pull response1,188 bytes6.2
gossippull-filter mask_bits minimum66.2
gossipcanonical/accepted CRDS Vote index<12 / <326.3
gossipEpochSlots / DuplicateShred index<255 / <5126.3
gossipDuplicateShred proof-consumer assembly1..=3 chunks6.3
gossipbounded slot or wallclock field< 10^156.3–6.5
gossippush/contact wallclock window±15,000 milliseconds6.2
gossippull caller window / random future jitter[-15,000,+15,000) / 0..3,750 milliseconds6.2
gossipdefault origin timeout / rejected-hash retention15,000 / 20,000 milliseconds6.2
gossipprune wallclock window±500 milliseconds6.2
gossipslots in one CompressedSlots value< 16,3846.3
gossipincremental snapshot hashes256.3
gossippruned keys in one Prune message326.4
gossip pushpeers per bucket / sends per value / stake buckets12 / 9 / 256.3.1
QUIC/TLSTLS version / ALPNTLS 1.3 / solana-tpu6.6
QUIC/TLSgenerated certificate length / public-key bytes249 / 32 bytes6.6
TPU QUICone transaction stream / connection receive window1..=4,096 / 8,388,608 bytes6.6
QUICinbound unidirectional streams after stake/RTT scalingunstaked 128..=896; staked 128..=3,5846.6
QUICidle / handshake / incomplete-stream timeout30 / 2 / 2 seconds6.6
QUICadmitted connections2,000 staked plus 2,000 unstaked6.6
QUICper-identity/IP admission16 per staked identity; 8 per unstaked IP; 8 new per IP per minute with burst 806.6
QUICaggregate connection rate / burst2,500 connections per second / 1,0006.6
QUICstream-arrival throttle500 streams per millisecond6.6
QUICapplication close codes1, 2, 4, 56.6
Alpenglow QUICALPN / path MTU / idle timeoutalpenglow-v1 / 1,280 bytes / 5 seconds6.6.1
Alpenglow QUICcarriage / streams / inbound connections per peerDATAGRAM only / 0 / 26.6.1
repairsigned-request timestamp distance600,000 ms6.7
repairOrphan responses / AncestorHashes pairs11 / 306.7
Turbinefanout / maximum hops in epoch E200 / 46.8
transactionrequired signatures1..=127.2
transactionlegacy and version-0 / version-1 serialized size1,232 / 4,096 bytes7.2
transactionresolved accounts1287.3
address tablestored addresses2567.4
recent blockhashqueue length / maximum processing age300 / 1507.5
transactiontop-level instructions647.7
instructionaccount indices / CPI account metas2557.7, 12.4
precompilesecp256r1 signature records1..=812.6
compute budgetdefault small/ordinary top-level request3,000 / 200,000 CU7.6
compute budgettransaction compute-unit limit1,400,000 CU7.6
compute budgetheap range and granularity32,768..=262,144, multiple of 1,024 bytes7.6, 12.8.4
account loadingloaded account data per transaction67,108,864 bytes7.6–7.7
account loadingordinary account overhead / ALT descriptor64 / 8,248 bytes7.7.1
PoH / blockhashes per tick / bank tick-height interval / serialized tick Entriesabsent / 64 / 18.4
PoH / blockEntry num_hashes / target slot duration1 / 200,000,000 nanoseconds8.4, 16.1
shred FECdata / coding shreds per set32 / 329.1
shred slotdata-index / coding-index upper boundeach < 16,3849.2
shred slotmaximum data shreds / coding shreds16,384 / 16,3849.2, 10.4.2
shred slotmaximum FEC sets5129.2, 10.4.2
shred wirechained data / coding payload length1,203 / 1,228 bytes9.3
shred Merkleproof entries in a 64-shred FEC set6 entries of 20 bytes9.3–9.4
shred dataledger capacity without/with retransmitter trailer963 / 899 bytes9.3
shred recoverymutually consistent shards required32 of 649.5
ledger framingmaximum DATA_COMPLETE components / serialized Entry bytes512 / 10,485,760 bytes9.6
block productionaggregate transaction cost50,000,000 cost units10.4.2
block productioncost attributed to one writable account20,000,000 cost units10.4.2
block productionstatically requested account allocation50,000,000 bytes10.4.2
block cost modelloaded-account page and charge32,768 bytes / 8 cost units10.4.1
block cost modeltransaction signature / requested write lock720 / 300 cost units10.4.1
block cost modelsecp256k1 / Ed25519 / secp256r1 precompile signature6,690 / 2,400 / 4,800 cost units10.4.1
block cost modelinstruction-data divisor4 bytes per cost unit, truncating10.4.1
invocationinstruction-stack depth512.4
invocationcomplete instruction trace64 entries12.4
CPIaccount metas / account-info records255 / 25512.4
CPIsigner-seed groups / instruction data16 / 10,240 bytes12.4
SBFtext instructions / local call depth65,536 / 6412.8.1–12.8.2
SBFaccepted ISA versionsV0 through V312.8.3
SBFstack frame / allocated stack4,096 / 262,144 bytes12.8.1, 12.8.4
SBFmeter checkpoint distance10,000 instructions12.8.1
syscallhash slices / Curve25519 MSM points20,000 / 51212.8.7–12.8.8
syscallreturn data / Poseidon inputs / BLS pairs1,024 bytes / 12 / 812.8.7
syscallPDA seeds / bytes per seed / signer groups16 / 32 bytes / 165.5, 12.8.7
ZK proof programbatched range commitmentsat most 813.3.9
protocol stateStake / Vote-v4 / ALT-header bytes200 / 3,762 / 56 bytes13.3
loaderProgramData extension minimum / maximum account data10,240 / 10,485,760 bytes13.3.2
protocol stateALT stored addresses25613.3.7
bounded sysvarRecentBlockhashes records15013.4
bounded sysvarSlotHashes / StakeHistory records512 / 51213.4
bounded sysvarSlotHistory window1,048,576 slots13.4
accounts commitmentlattice elements1,024 u16 values14.4
accounts commitmentlattice serialization2,048 bytes14.4
AlpenglowNotar, Notar-fallback, Skip, and Finalize threshold>=60% admitted stake15.3
AlpenglowFast-finalize threshold>=80% admitted stake15.3
Alpenglowsafe-to-notar / safe-to-skip thresholdsSection 15.5 exact 20%, 40%, and 60% predicates15.5
AlpenglowNotar-fallback targets per validator / certified blocks per slot3 / 415.3, 15.5
Alpenglowleader window / reward-certificate delay4 / 8 slots15.4, 16.6.3
Alpenglownominal handover / per-slot allowance400 / 200 milliseconds15.9
epochtarget slot duration / slots per year200,000,000 nanoseconds / 157,784,629.968 slots16.1, 16.6.2
epochnormal slots / consecutive leader slots432,000 / 416.1, 16.3
inflationinitial / terminal rate / taper8% / 1.5% / 15%16.6.2
inflationstate address / epoch-E data length3vJzniWALu2qGFJ1ZY6JD3Y2ZmA5zWqmVdDX7yBXHgu7 / 49 bytes16.6.2
inflationepoch-1072 / epoch-1071 reward budget62,395,745,304,053 / 62,417,544,028,268 lamports16.6.2
rewardsadmitted vote accounts2,00016.6.1
rewardsstake updates per produced block2,048 accounts16.6.5
rewardsmaximum distribution span43,200 produced blocks16.6.5
feature stateminimum Feature-account data9 bytes17.1
hard-fork stateregistered Mainnet hard forks at E9 registrations17.5