# Solana: Tech Stack Overview

**What is Solana?**

Solana is a smart contract blockchain designed to provide the transactional speed and scalability of centralized networks on a decentralized network—without the traditional, complicated workarounds of sharding or layer two networks. Solana has a high transaction throughput thanks to its mechanism for synchronizing time across the network. Theoretically, the network can scale with [Moore’s Law](https://www.investopedia.com/terms/m/mooreslaw.asp): as transactions increase, the storage capacity will halve. Solana uses “proof-of-replication” to enable the ledger to be distributed across “Archivers,” which maintain replicator nodes that store a part of the ledger.

Beyond its technical innovations, Solana is home to 301 DeFi projects, 297 Apps, 279 games, and 969 NFT projects. Solana boasts a considerable number of projects, evidence of an L1 with a developer-friendly approach. Unlike Cosmos, Solana is more similar to Avalanche in that it can scale vertically rather than horizontally.

### **Quick Takes**

Solana has seven key technologies that add to the speed and efficiency of the network. Altogether, they contribute to faster transaction processing time and secure data storage. This creates a platform friendly to applications with lots of transaction activity, like video games, NFTs, and DeFi activity. Seven key pieces of proprietary software enable Solana to have unparalleled speed.

- [Proof of History (POH)](https://solana.ghost.io/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274) – On-chain clock to mark history of a hash  
- [Tower BFT](https://medium.com/solana-labs/tower-bft-solanas-high-performance-implementation-of-pbft-464725911e79) – Implementation of Bystinne Fault Tolerance aims to reduce messaging overhead and latency  
- [Turbine](https://solana.ghost.io/solana-labs/turbine-solanas-block-propagation-protocol-solves-the-scalability-trilemma-2ddba46a51db)  – Solana’s communication protocol  
- [Gulf Stream](https://solana.ghost.io/solana-labs/gulf-stream-solanas-mempool-less-transaction-forwarding-protocol-d342e72186ad)  – Mempool-less transaction forwarding process  
- [Pipelining](https://solana.com/pipelining-in-solana-the-transaction-processing-unit/)  – a Transaction Processing Unit for validation optimization  
- [Cloudbreak](https://medium.com/solana-labs/cloudbreak-solanas-horizontally-scaled-state-architecture-9a86679dcbb1)  – Horizontally-Scaled Accounts Database  
- [Archivers](https://solana.com/archivers/)  – Distributed ledger store

## **Tech Deep Dive**

Solana core developers recognized a core problem with protocols: they rely on atomic clocks that are difficult to maintain and require a high level of precision to do so. In trust minimalized environments, this maintenance becomes even more complex. If a chain wants outside information brought into the system, the chain will require an oracle to report that data. But then the chain must confront the core problem with oracles – how do you know that information is correct? Therefore, nodes of the network cannot trust any outside source to tell the correct time.

### **Proof of History**

Proof of history uses a recursive delay function to mark (or hash) incoming events and transactions. Every event has a unique hash along this data structure, creating a method to mark which transactions have come before and after another, creating verifiable order of events as a function of time. We can think of it as a cryptographic time-stamp. [Each node gets its own cryptographic clock that helps the network agree on time and ordering of events without having to wait to hear from other nodes.](https://solana.ghost.io/proof-of-history--a-clock-for-blockchain/)

### **Turbine**

There is typically a fixed amount of bandwidth per node, requiring the chain to increase the node count. This increases the time necessary to propagate all the data to all the nodes. This is the scalability trilemma. Solana remedies this with Turbine, which is a process that only transmits data using UDP (a communications protocol like IBC or TCIP). When someone sends a transaction across the protocol, Turbine will ensure that the packet of information will take a random path through the network while the block producers stream that data. The leader will break the block packets in to [64KB and transmits those packets to other validators](https://solana.ghost.io/turbine---solana-s-block-propagation-protocol-solves-the-scalability-trilemma/). Validators then send those packets to groups of peers called neighborhoods, which are responsible for transmitting a portion of its data to additional neighbors below it on the tree.

### **Gulfstream**

Turbine allows for faster communications. Solana, in particular, has a host of games on its network due to the ability of the network to process small transactions much more quickly than comparative networks such as Ethereum, making it popular for the micro-transactions that players make in video games. Solana does not have a Mempool, like Ethereum or Bitcoin, as part of processing fast transactions. A mempool is simply the place where transactions are stored before the chain verifies them, like a waiting room.

Solana calls process the [Gulfstream](https://solana.ghost.io/gulf-stream--solana-s-mempool-less-transaction-forwarding-protocol/). Clients, like wallets, sign transactions that reference a specific block-hash. Clients will select a relatively recent block hash that the network has fully confirmed. Based on how quickly the chain verifies blocks, confirmed hashes are only 32 blocks old, roughly 24 seconds. Clients then send that transaction to the leaders to verify and commit to the network. This allows transactions to be processed much more quickly and prevents frontrunning.

### **Pipeline VM**

In addition to coming to a consensus quickly, to process transactions quickly, Solana needs to validate massive blocks of transactions quickly – it does this through an optimization common in CPU design called pipelining. Pipeline is a process [“where there is a stream of input data that needs to be processed by a sequence of steps and there’s different hardware responsible for each.](https://medium.com/solana-labs/pipelining-in-solana-the-transaction-processing-unit-2bb01dbd2d8f)"

### **Cloudbreak**

In addition to the technical layers that Solana uses to process data more quickly, Solana also [scales horizontally](https://solana.com/news/cloudbreak---solana-s-horizontally-scaled-state-architecture) to accommodate more transactions and add more nodes to store information. Solana uses several mechanisms to optimize the current operating systems rather than a traditional database. The chain uses memory-mapped files, where the bytes are mapped into the virtual address space of a process. This allows the chain to preserve physical space. The process looks like this:

1. The index of accounts and forks is stored in RAM.
2. Accounts are stored in memory-mapped files up to 4MB in size.
3. Each memory map only stores accounts from a single proposed fork.
4. Maps are randomly distributed across as many SSDs as are available.
5. Copy-on-write semantics are used.
6. Writes are appended to a random memory map for the same fork.
7. The index is updated after each write is completed.

### **Replication**

Solana stores its ledger by encrypting its dataset with a public symmetric key using a type of encryption where a sequence of bits is encrypted as a single block, and the cipher key is applied to the entire block. Then, the chain periodically regenerates the hash on a signed Proof of History value – this ensures that the data is present during the generation of the proof. It requires validators to have the entirety of the encrypted data present for verification of every proof every identity.

[Archive nodes](https://medium.com/solana-labs/replicators-solanas-solution-to-petabytes-of-blockchain-data-storage-ef79db053fa1), or nodes that store the entire state of the chain, receive ~3% of inflationary rewards. As a part of this role, they must share with the network how much space they have available on their nodes for storing data. The network divides the ledger history into pieces to target the replication rate and fault tolerance based on the number of Replicator identities and the total available storage of archive nodes. Once the network assigns data to each archiver, archive nodes download their respective data from consensus validators. The network will challenge archiver nodes to prove they’re storing data. They will need to complete a proof of replication.

### **Why is this tech important?**

Solana is designed for decentralized applications that demand high throughput. Its architecture enables transactions to be ordered as they enter the network rather than by block. This allows for scalability in financial transactions, distributed storage, and gaming.

Financial systems lend themselves to benefit the most from Solana’s scalability. Particularly Decentralized exchanges (DEXes) and marketplaces in need of fair transactions (to prevent [front-running](https://blog.gnosis.pm/fall-of-the-frontrunner-e97e0bbde60)).

Solana can process micropayments with low transaction costs (~$0.00001USD/tx) and sub-second transaction confirmation. This opens up opportunities for small payments in video games, payment processors, and e-commerce marketplaces.

Solana has an incredibly fast thorough-put by design that makes it unique to the industry. There is evidence that Solana can run 29,171 transactions per second, with an average of 2.34 seconds per block. Solana is significantly faster than other protocols, including Bitcoin (7 TPS), Ethereum (25 TPS), and Cosmos (10,000 TPS). This provides a wide range of use-cases for the protocol, especially where developers require transactions to be confirmed by the network rapidly. Solana’s growth strategies are centered around NFTs and improving user experience.

### **Future Developments / Roadmap**

While the staking amounts did not have any additional growth in Q1, [there was an increase in validators and delegators](https://messari.io/article/state-of-solana-q1-2022?referrer=asset:solana). In Q1, the validator count grew from 1,255 to 1,579 and delegations rose from 426,370 to 654,279 in Q1. Solana does not maintain a publicly facing roadmap. Based on the core team’s recent activity, we can expect the future developments to be continued around UX/UI design. One major development out of Solana is [Neon](https://neon-labs.org/), a Solana project building a smart contract layer that utilizes the Ethereum Virtual Machine (EVM).

In the future, Solana will continue to try to capitalize on its NFT activity and support additional gaming on the chain. In April, OpenSea announced that it would be supporting NFTs from Solana. A large [gaming studio announced](https://decrypt.co/95872/krafton-pubg-series-solana-nft-games) that it would start making Solana NFT games, capitalizing on its transaction speed and gaming-developer-friendly platform.
