Lightspeed Newsletter: The lifecycle of a Solana transaction
Today, enjoy the Lightspeed newsletter on Blockworks.co. Tomorrow, get the news delivered directly to your inbox. Subscribe to the Lightspeed newsletter.
Howdy!
I am touching grass today, so Jeffrey is stepping in with the story of how transactions make it to the blockchain.
It’s admittedly a little funny that all this complex infrastructure predominantly helps degens buy memecoins. It reminds me a bit of how liquor goes through a whole long distillation process just to get diluted by cranberry juice or coke. But I digress:
The lifecycle of a Solana transaction
Solana tends to be so fast and efficient that transactions can feel instantaneous. But there’s actually a lot more happening under the hood than users may realize.
It also works a bit differently from other chains, which tend to struggle with congestion and high fees due to their reliance on mempools.
Solana’s approach goes something like this:
- Transaction Creation and Submission
A user initiates a transaction via a wallet, dapp, or other interface. Details of the transaction are immediately sent to an RPC (Remote Procedure Call) node through the JSON RPC API. Think of RPC nodes as intermediaries that help access and relay on-chain data. Unlike Ethereum, where RPC nodes are sometimes also validators, Solana’s RPC nodes are mainly non-voting validators focused on accessing onchain data.
2. Leader Selection
Meanwhile, a leader is selected to produce the next block in the blockchain.In Solana, the leader schedule is determined by the proof-of-stake mechanism, where validators take turns being the leader based on their stake.
- Packet Ingress and QUIC
The RPC node establishes a fast and secure connection to the leader node’s Transaction Processing Unit (TPU) using a communication protocol designed for quick and reliable data transfer called Quick UDP Internet Connections (QUIC). This protocol ensures that data packets are delivered securely, reducing delays and improving overall network performance.
- Transaction Processing Unit (TPU)
The TPU processes transactions in multiple stages, each handling a specific part of the process to ensure efficiency and security:
- Fetch Stage: Transactions are grouped into batches of 128 packets to manage them more efficiently.
- SigVerify Stage: Each transaction’s signature is checked for validity to ensure it hasn’t been tampered with. Duplicates are removed to prevent redundant processing.
- Banking Stage: This is where the real work happens. Transactions are executed in parallel, meaning multiple transactions can be processed at the same time without waiting for each other. This stage ensures that all the necessary checks and updates are performed on the involved accounts.
- Broadcast Stage: Once processed, the TPU broadcasts transactions to the network, informing all nodes of the new transactions.
- Gulf Stream Protocol
Unlike Bitcoin, Ethereum, and others, Solana uses a transaction forwarding protocol called Gulf Stream, which eliminates the need for a traditional mempool queue. In legacy systems, unconfirmed transactions sit in the mempool until miners include them in a block, often causing delays and congestion. The Gulf Stream Protocol, however, preemptively forwards transactions to upcoming leaders if the current leader is overloaded. This ensures high throughput and low latency, preventing congestion and maintaining network efficiency.
- Proof of History (PoH) and Commit
Proof of history (PoH) is a method of timestamping transactions, ensuring they are ordered correctly, without the need for traditional time synchronization. This solves problems faced by other systems in maintaining transaction order and consistency. Verified transactions are then committed to the ledger and broadcast across the network, enabling all validators to update their ledgers accordingly.
- Cluster Synchronization
Next, validators within Solana clusters synchronize their states to maintain a coherent and updated ledger. Solana clusters are groups of validators working together to maintain the ledger. Synchronization between these clusters ensures that all validators have a consistent view of the blockchain. This process ensures that each node’s ledger is up-to-date and agrees on the current state of the network.
- Finalization and Confirmation
Validators are nodes that process and verify transactions. Once a supermajority of validators confirm the block, the transaction is finalized and permanently recorded to the blockchain. Solana’s optimized handling ensures this process is swift and reliable.
So, next time you send or receive a transaction on the Solana network, remember it’s not just one click and done. There’s a lot of tech wizardry going on behind the scenes that makes it all possible.
— Jeffrey Albus
One Good DM
A message from Hardhat Chad, founder of Ore: