Solana is a decentralized blockchain platform built to enable scalable, user-friendly apps for the world. Solana was created by Anatoly Yakavenko in November 2017 when he published the very first whitepaper.
Although Solana’s first block was created in March 2020, it has recorded over a hundred billion transactions since.
Solana boasts of a block time of 400 milliseconds (compared to bitcoin’s 10 minutes and Ethereum's 15 seconds) and its ability to handle up to 710,000 transactions per second. This makes it very fast and surprisingly, very cheap.
So what makes Solana so unique?
In this article, we’ll look at the Solana programming model and how you can use it to build modern applications.
In Solana, everything is an account. This is an important concept to understand because this is how programs interact with the blockchain on Solana. From your program to the native crypto, SOL, your data itself is stored in an account. You can think of accounts as files but with certain limitations such as the size which is about 10 MB. Just like files in a system can be accessed using a path, each account has an address that can be used to look it up.
It is important to note that if you want to store data in the account, you’ll have to pay “rent” for it using the SOL native token.
Validators periodically scan accounts to collect rent, if an account has a balance of 0 lamports, then that account is purged. The only way to prevent this from happening is to deposit a sufficient amount of lamports into the account to mark it rent-exempt.
The maximum number of accounts that can be passed in a transaction is 30. But this transaction size limit can be solved using Program Derived Accounts (PDA). A PDA can only be controlled by programs, not by modifiable addresses (or external users) they do not have private keys and can’t sign messages from the outside, only through the program that owns the account.
Solana Programs often referred to as "smart contracts" on other blockchains, are the executable code that interprets the instructions sent inside of each transaction on the blockchain.
Solana programs can be deployed directly into the core of the network as Native Programs or published by anyone as On Chain Programs.
Programs make up the core building blocks of the network and are responsible for everything that happens on the network, from sending tokens between wallets, to accepting votes of DAOs, to tracking ownership of NFTs.
Solana Programs run on top of the Sealevel runtime, which is a parallel processing model that helps to enable the high transaction speeds of the blockchain.
A unique feature of Solana programs is that, unlike other blockchains, Solana programs can be upgraded after they are deployed to the network.
Here are a few key points to note about Solana programs, according to the official documentation: