- contracts but for solana
- programs are also solana accounts
- is_executable is true, hence stores code which is … you guessed it- executable
- a program address is a public keys on the Ed25519 Elliptic Curve.
- programs store data seperately from their code
- programs store data in PDAs
- accounts are passed into programs, allowing for parallel execution
Solana separates logic and data into two separate components - Programs and Accounts.
instead of storing data inside variables internally, programs interact with external data stored in accounts with the ability to mutate them.
this architecture is great for making programs more modular since the data they interact with is not bound by the program itself and can scale to new orders of magnitude.
this also makes programs more performant since it allows the blockchain to run the same program in parallel with different accounts.