What Is TPU in Solana?
TPU (Transaction Processing Unit) is the component inside a Solana validator that ingests incoming transactions, verifies signatures, executes programs, and produces blocks. When you send a transaction via sendTransaction, the RPC node forwards it to the current leader’s TPU.
How transactions reach the TPU
Transactions arrive at the TPU through the QUIC protocol. The TPU has a bounded queue — during congestion, transactions may be dropped before processing. Stake-Weighted QoS (SWQoS) prioritizes transactions forwarded by staked nodes over those from unstaked sources.
TPU pipeline stages
- Fetch — receives transaction packets over QUIC
- SigVerify — verifies Ed25519 signatures in parallel
- Banking — executes transactions against the current bank state, debiting fees and applying state changes
- Broadcast — distributes the produced block to the rest of the cluster via Turbine
Sending directly to TPU
Some applications bypass RPC nodes and send transactions directly to the current leader’s TPU address. This reduces latency by one network hop. The leader’s TPU address can be discovered from the cluster’s gossip data using getClusterNodes.
FAQ
Why are my transactions dropped at the TPU? The TPU queue has limited capacity. During high congestion, lower-priority transactions (low priority fee or forwarded by unstaked nodes) are dropped. Adding a priority fee and sending via a staked connection improves landing rates.
What is the difference between TPU and RPC? TPU processes transactions and produces blocks. RPC serves read queries and forwards transactions to the TPU. They are different components, though both can run on the same node.
Updated: