What is the Solana block production timeline?
A Solana block is produced as a pipeline, not as one release event. The scheduled leader receives transactions, executes compatible batches, records those transactions in proof-of-history entries, converts entry bytes into data and coding shreds, and sends them through Turbine during the slot. Other validators reconstruct and replay those entries, then vote on the resulting fork.
protocol desk · updated 2026-08-31
A slot is an overlapping pipeline
Solana does not separate block production into long serial phases. Transaction intake, account locking, execution, proof-of-history recording, shred creation, and network propagation overlap.
The leader can emit early shreds while it is still receiving and executing transactions for later entries. Retransmitters can forward those shreds while coding shreds for the same recovery region are being created. Validators can replay early entries before the final shred of the slot exists.
This overlap is the source of Solana's low block-propagation latency. It also means one block has many meaningful timestamps. Slot start, transaction receipt, execution completion, entry recording, first data shred, recovery readiness, last shred, bank completion, vote, confirmation, and finality are different events.
A raw-feed system observes near the middle of this pipeline. It is earlier than executed RPC state and later than the leader's private transaction intake.
The schedule selects the producer
Before the slot begins, validators know the scheduled leader from the epoch leader schedule. The identity is authorized to produce and sign shreds for that slot.
Transaction senders and forwarding validators can route traffic toward upcoming leaders. The leader warms the services needed to process its run. Receivers cache the expected public key for signature verification.
The schedule does not force production. An offline or overloaded leader can miss the slot. A leader can also create a block that loses fork choice. Slot numbering continues even when no canonical block appears.
For measurement, the scheduled identity defines the producer cohort. Leader-specific grouping is required because location, software, transaction load, and network quality affect every later stage.
Transactions arrive before and during the slot
Transactions reach a leader through client submissions, forwarding paths, specialized transaction services, and traffic retained from earlier scheduling windows. There is no single public global mempool containing all pending transactions.
The leader's local intake is therefore private and time-varying. Two clients can send the same transaction over different paths, and the leader can receive them at different times. Priority fees and the cost model influence scheduling, but arrival, account contention, validity, and compute limits also matter.
Knowing the upcoming leader tells a sender where to aim. It does not tell an observer which transactions arrived, which duplicates were discarded, or which order the scheduler will produce.
The first broadly distributed evidence of inclusion appears when entry bytes are committed to shreds and propagated. A shred feed observes inclusion, not the pending queue.
Banking schedules compatible work
The leader's banking pipeline verifies transactions, checks recent blockhash and account conditions, acquires account locks, and schedules work that can execute without conflicting writes.
Solana's parallel execution model does not make every transaction parallel. Transactions declaring overlapping writable accounts contend. Hot programs and markets can create serial bottlenecks even when many CPU cores are available. Compute budgets and block resource limits bound how much work can be included.
Execution determines which admitted transactions pass to the recorder. Entries carry transaction bytes, not receipts, logs, or account diffs. Failed transactions can still consume resources and appear in a block after failing during program execution. A raw decoder can identify the bytes early, but full execution status requires replay against the correct state or a later executed-state source.
Queue time inside banking is part of production latency. It occurs before shred observation and varies by workload.
Proof of history orders entries
The leader records executed transaction batches into entries anchored in a sequential proof-of-history hash chain. Tick entries mark progress even when no transaction batch is recorded.
The sequence gives validators a verifiable ordering and passage-of-time structure. Transactions in earlier entries precede those in later entries for replay. The chain does not replace consensus; validators still verify execution and vote on forks.
Entry recording creates a boundary useful to propagation. Once a portion of entry data is ready, the leader can serialize it into the ledger stream and produce shreds. It need not wait for every future transaction in the slot.
Proof-of-history pace and slot tick configuration are cluster parameters. Engineers should read them from active configuration rather than assume a timeless tick count.
Data shreds begin the network phase
Serialized entries are divided into data shreds sized for the network packet budget. Headers identify the slot, shred position, variant, and recovery context, and the leader authenticates the packet.
A shred can contain parts of entry boundaries rather than a convenient list of complete transactions. One transaction can span shreds, and one shred can contain bytes from several transactions. The receiver reassembles ordered data before parsing entries.
Early data shreds leave while later block content is still being produced. This is why waiting for a completed block adds latency by construction. The first useful transaction can be decoded well before the slot's final shreds arrive.
Emission is bursty. Entry batch size, serialization, erasure set boundaries, and scheduler behavior affect inter-packet spacing. Capacity planning needs packet bursts, not only average slot size.
Coding shreds add forward recovery
The leader generates coding shreds from groups of data shreds. The parity lets a receiver reconstruct missing data when enough members of the recovery set arrive.
Coding consumes bandwidth and computation, but it avoids making every ordinary packet loss wait for a repair round trip. Data and coding shreds propagate through Turbine and can take different packet-specific tree positions.
Recovery readiness can lag first data arrival. A decoder may see most transaction bytes early and wait for one missing data or coding shred before an entry becomes parseable. That wait belongs in the actionable latency metric.
When the deficit exceeds the coding budget, the receiver uses repair or another source. Repair belongs to catch-up, not the intended critical path for earliest observation.
Turbine streams the slot outward
The leader sends each shred to a root selected by a stake-aware deterministic ordering. The root and later receivers retransmit to assigned layers, sharing the outbound work that a full leader-to-every-validator broadcast would require.
Each layer adds receive, queue, send, and network time. Stake shifts the distribution of packet-specific positions, while physical paths and relay quality determine the cost of assigned edges.
Propagation overlaps production. When shred 600 enters the network, shred 200 may already be inserted and replayed on many validators. There is no one instant when Turbine starts for the block.
An external feed captures the stream at one observation point and forwards it onward. The value is the difference between that point's arrival and the customer's alternative observation path, after delivery and decode costs are included.
Validators reconstruct the ledger stream
Receiving validators place shreds into blockstore, deduplicate identities, track missing indices, and apply erasure recovery where possible. They reconstruct the ordered entry stream for the slot.
UDP arrival order does not determine ledger order. Shred indices and entry structure do. A later-index shred can reach the socket first and wait until earlier data or sufficient coding material becomes available.
The blockstore path balances durability and replay latency. Exact implementation pipelines differ across clients and releases, but the protocol obligation remains: validate the leader's data, recover or repair gaps, and expose a coherent entry sequence to replay.
A market-data decoder performs a narrower version of this work. It can omit voting and full bank maintenance, but it cannot ignore ordering, recovery sets, duplicates, variants, or signatures without accepting correctness risk.
Replay verifies the proposal
Validators execute reconstructed entries against the parent bank state. Replay checks that the leader's transaction sequence produces valid results under Solana's runtime rules.
The leader's local execution helped build the block, but other validators do not trust the result as an opaque claim. They verify proof-of-history, signatures, transaction validity, program execution, account changes, and block constraints according to the client.
Replay time varies with transaction mix, account contention, cache state, and hardware. It occurs after enough shred data arrives, so propagation delay moves the earliest possible replay start.
RPC methods that expose processed state usually sit after local replay or bank processing. That is one reason raw shreds reach applications earlier, and also why they lack an authoritative execution result at first observation.
Votes follow replay
A validator votes after it has evaluated a fork under its tower and consensus rules. The vote is itself a Solana transaction, signed by the validator's authorized vote key and sent toward upcoming leaders for inclusion.
Votes can also appear in gossip-related records, but the canonical ledger evidence is the vote transaction included in a block. Vote propagation, inclusion, and stake accumulation produce commitment levels over time.
Confirmation is therefore downstream from shred arrival and execution. Finality is farther downstream. A transaction seen in the leader's first shreds has not earned either property.
Low-latency systems separate observation from certainty. They can update an optimistic model on shreds, then reconcile execution status and fork commitment as votes accumulate.
The next leader overlaps the handoff
As one leader's run approaches its end, transaction forwarders target upcoming scheduled leaders. Packets from adjacent slots can overlap at receivers because UDP and network routes do not preserve a global order.
A late shred from slot N can arrive after an early shred from slot N plus one. The receiver must route each packet by its header and retain enough recent context to finish recovery for older slots.
Leader transition can also change latency abruptly. The producer's geography, data-plane performance, and Turbine root all change. A histogram that treats the transition as ordinary within-slot variance loses useful structure.
Operational dashboards should mark run boundaries and first-slot behavior. Connection warming, forwarding state, and route convergence can create a distinct transition tail.
Target slot time is not a stopwatch
Solana is commonly engineered around a slot target near four-tenths of a second, but protocol progress does not turn that target into an exact wall-clock block interval.
Slots can be skipped. Production can be late. Forks can advance differently before convergence. Tick configuration and software behavior can change with cluster and release. A system should obtain slot and epoch context from the network rather than schedule actions solely from local UTC arithmetic.
Worked examples can use a 400 millisecond target to make budgets concrete. Production monitoring should report observed distributions: first shred after prior slot, last shred, reconstructable block, replay complete, first vote, and commitment.
The spread between those events is more informative than one blocks-per-second number.
Packet time and block time answer different questions
Block explorers and RPC records often present one timestamp for a block. That timestamp is useful for human chronology and historical queries. It is too coarse for propagation analysis.
One slot may emit thousands of shreds over hundreds of milliseconds. A transaction near the first entries can be visible much earlier than a transaction near the last entries. Assigning both the same block time removes their production order and observation advantage.
Packet-level systems retain slot, shred index, entry position, and ingress time. Strategy metrics then use the relevant transaction's decode-ready time rather than the block's eventual publication time.
Later block metadata remains necessary for reconciliation. It should be joined to early observations, not substituted for them.
Building the full measurement trace
The leader-side ideal trace includes transaction receipt, scheduling, execution, entry record, shred creation, and egress. External systems rarely control all of those timestamps.
A customer can still build a useful trace from feed ingress, unique shred arrival, fec-set recovery, entry decode, transaction parse, local state update, RPC observation, confirmation, and finality. Pairing two feeds at the same host isolates relative propagation and delivery even without leader egress time.
Clock quality and boundary consistency set the precision. Kernel ingress should be compared with kernel ingress, not another source's post-decode callback. Missing packets must remain in the dataset.
Group by leader, position within the slot, shred type, and burst. This reveals whether delay began at production, propagation, recovery, or local processing.
The engineering consequence
Block production is a stream of commitments at increasing levels of certainty. Transaction intake is private. Shreds make proposed order public. Replay establishes local execution. Votes build cluster commitment. Finality selects durable history.
A shred feed moves the customer's observation point earlier in that sequence. It does not collapse later stages or turn proposed bytes into confirmed state.
shredstream.sh delivers raw UDP from Frankfurt with no ordering, retransmission, or backpressure. The receiver owns burst handling, recovery, decoding, and reconciliation. Those costs are real, but they occur while RPC consumers are still waiting on downstream processing.
The advantage is largest when the application can use partial, probabilistic block information and when its opportunity closes before conventional block delivery finishes.
In practice
Use a 400 millisecond target slot for this example. The leader receives transaction T at 38 milliseconds, executes it at 51 milliseconds, and records its entry at 57 milliseconds. Data shreds containing T are emitted at 61 and 62 milliseconds.
A feed source receives both shreds at 65 milliseconds and the customer receives them at 69 milliseconds. Parsing completes at 69.4 milliseconds. A validator on a later branch receives a missing data shred through coding recovery at 78 milliseconds, replays the entry at 83 milliseconds, and exposes processed state through RPC at 88 milliseconds.
The raw consumer sees T 18.6 milliseconds before that RPC observation. Canonical replay reports that T failed a program condition, so the consumer rolls back its optimistic state when executed status arrives. Early observation improved timing but did not provide execution certainty.
What this does not cover
The timeline is architectural. Validator clients can pipeline, batch, cache, and name internal stages differently, and network upgrades can alter shred formats or scheduling behavior. Tick count, slot target, fec-set details, and block limits must come from the active cluster and client rather than this conceptual sequence.
External observers cannot infer exact leader receipt or execution timestamps from shred arrival alone. A proposed transaction may fail, a slot may be skipped, and a fork may be abandoned. The example isolates one path and does not represent a latency guarantee for every leader or destination.
Related questions
- Does Solana wait for a block to finish before broadcasting it?
- No. The leader creates and sends shreds as proof-of-history entries become available, while later transactions in the slot are still being processed. Validators can reconstruct and replay early entries before the final shred arrives. This streaming overlap removes a completed-block wait from the propagation path.
- When does a transaction become visible in shreds?
- A transaction becomes visible after the leader admits and executes its batch, records the transaction in proof-of-history entries, serializes the relevant entry bytes, and emits the containing data shreds. Exact timing varies with arrival, account contention, scheduling, compute use, entry boundaries, and leader load.
- Why can RPC be later than a raw shred feed?
- RPC processed state generally follows shred receipt, recovery, entry reconstruction, and local replay. A raw feed exposes serialized block fragments before those downstream stages complete. The trade is certainty and complexity: raw consumers must decode and recover packets, then reconcile execution and fork outcomes later.
- Is a Solana slot exactly 400 milliseconds?
- No. Four-tenths of a second is a useful target for contemporary timing discussions, not a guarantee that every slot maps to that wall-clock duration. Skips, delayed production, fork progress, configuration, and software behavior create variation. Systems should use observed protocol state rather than UTC arithmetic alone.
- Can transactions from adjacent slots arrive out of order?
- Packets from adjacent slots can interleave at a UDP receiver because network routes and retransmit stages have different delays. Each shred carries its slot and index, so receivers must route by header rather than arrival sequence. Recent slot context should remain available until recovery and decoding deadlines expire.