From 7c756f265c8d7526e738362a1e78713a097b66e0 Mon Sep 17 00:00:00 2001 From: Huy Nguyen Quang <39359294+quanghuynguyen1902@users.noreply.github.com> Date: Tue, 18 Jun 2024 10:10:57 +0700 Subject: [PATCH] feat: solana core concepts (#289) * feat: solana core concepts * feat: solana core concepts --- .../assets/solana-core-concepts-1.webp | Bin 0 -> 6698 bytes .../assets/solana-core-concepts-2.webp | Bin 0 -> 52168 bytes .../assets/solana-core-concepts-3.webp | Bin 0 -> 4422 bytes .../assets/solana-core-concepts-4.webp | Bin 0 -> 5058 bytes .../assets/solana-core-concepts-5.webp | Bin 0 -> 16564 bytes .../assets/solana-core-concepts-6.webp | Bin 0 -> 8234 bytes 01_literature/solana-core-concepts.md | 92 ++++++++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 01_literature/assets/solana-core-concepts-1.webp create mode 100644 01_literature/assets/solana-core-concepts-2.webp create mode 100644 01_literature/assets/solana-core-concepts-3.webp create mode 100644 01_literature/assets/solana-core-concepts-4.webp create mode 100644 01_literature/assets/solana-core-concepts-5.webp create mode 100644 01_literature/assets/solana-core-concepts-6.webp create mode 100644 01_literature/solana-core-concepts.md diff --git a/01_literature/assets/solana-core-concepts-1.webp b/01_literature/assets/solana-core-concepts-1.webp new file mode 100644 index 0000000000000000000000000000000000000000..b4507f60d7a396d2e8054ff48daccc986c57a0a2 GIT binary patch literal 6698 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 X%769>fd88XQWSvx*9R>Br||y(j)wG5 literal 0 HcmV?d00001 diff --git a/01_literature/assets/solana-core-concepts-2.webp b/01_literature/assets/solana-core-concepts-2.webp new file mode 100644 index 0000000000000000000000000000000000000000..13afd8d221a8c6b922ea9be4fe6abe1aa5a7b6ee GIT binary patch literal 52168 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 literal 0 HcmV?d00001 diff --git a/01_literature/assets/solana-core-concepts-6.webp b/01_literature/assets/solana-core-concepts-6.webp new file mode 100644 index 0000000000000000000000000000000000000000..19df902971747c3d92f6fc15e791130a989d659b GIT binary patch literal 8234 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 S`R`sRP(IYZX#nUS!T$lKm)XDo literal 0 HcmV?d00001 diff --git a/01_literature/solana-core-concepts.md b/01_literature/solana-core-concepts.md new file mode 100644 index 00000000..c791d910 --- /dev/null +++ b/01_literature/solana-core-concepts.md @@ -0,0 +1,92 @@ +--- +tags: + - blockchain + - solana + - anchor +title: Solana core concepts +date: 2024-06-18 +description: build a strong understanding of the core concepts that make Solana different from other blockchains. +authors: + - huymaius +--- + +## Introduction +Solana is a high-performance blockchain platform designed for decentralized applications and cryptocurrencies. Known for its fast transaction speeds and low costs, Solana uses a unique consensus mechanism called Proof of History (PoH) to achieve high throughput and scalability. It supports a growing ecosystem of decentralized finance (DeFi) projects, non-fungible tokens (NFTs), and other applications. + +To help everyone understand Solana to write smart contracts on it, this article will introduce the core concepts of Solana. + +## Accounts +Accounts are where data is stored on the Solana blockchain*.* Accounts can store up to 10MB of data, which consit of either excutable program code or program state. Accounts require a rent deposit in SOL, proportional to the amount of data stored, which is fully refundable when the account is closed. Every account has a program "owner". Only the program that owns an account can modify it data. + +![](assets/solana-core-concepts-1.webp) + +## Types of Accounts +There are two types of accounts on the Solana blockchain: executable and non-executable. Programs are executable accounts and store the immutable code of a program. Data storage and token balances are stored in non-executable accounts as their data can be changed. To control who can change this data, non-executable accounts have an owner program address assigned to them. + +For each type of account, there will be typical accounts. + +![](assets/solana-core-concepts-2.webp) + +Data accounts store data + +Program accounts store executable programs + +Native accounts that indicate native programs on Solana such as System, Stake, and Vote + +Within data accounts, there are 2 types: + +- System owned accounts +- PDA (Program Derived Address) accounts + +## Programs +Solana Programs, often called "smart contracts" on other blockchains, are the executable code that interprets the instructions sent inside of each transaction on the blockchain. They can be deployed directly into the network’s core as Native Programs or published by anyone as On Chain Programs. Programs are the core building blocks of the network and handle everything from sending tokens between wallets to accepting votes of DAOs, to tracking ownership of NFTs. + +Unlike most other blockchains, Solana completely separates code from data. All data that programs interact with are stored in separate accounts and passed in as references via instructions. This model allows for a single generic program to operate across various accounts without requiring additional deployments. + +## Types of programs +The Solana blockchain has two types of programs: + +- Native programs +- On chain programs + +Native programs are those built directly into the core of the Solana blockchain. These programs are divided into [Native Programs](https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader) and [Solana Program Library (SPL) Programs](https://spl.solana.com/). + +On chain programs is user-written programs, often called "smart contracts" on other blockchains, are deployed directly to the blockchain for anyone to interact with and execute. + +## Transactions and Instructions +On Solana, we send transactions to interactions with the network. Transactions include one or more instructions, each representing a specific operation to be processed. The execution logic for instructions is stored on programs deployed to the Solana network, where each program stores its own set of instructions. + +![](assets/solana-core-concepts-3.webp) + +An instruction is a request to process a specific action on-chain and is the smallest contiguous unit of execution logic in a program. You can imagine a instruction as a function which handles logic on web2. + +Each instruction must include the following information: + +- Program address: Specifies the program being invoked. +- Accounts: Lists every account the instruction reads from or writes to, including other programs. +- Instruction Data: A byte array that specifies which instruction handler on the program to invoke, plus any additional data required by the instruction handler (function arguments). + +![](assets/solana-core-concepts-4.webp) + +## Program Derived Addresses (PDAs) +PDAs are addresses that are deterministically derived and look like standard public keys, but have no associated private keys. This means that no external user can generate a valid signature for the address. However, the Solana runtime enables programs to programmatically "sign" for PDAs without needing a private key. + +![](assets/solana-core-concepts-5.webp) + +PDA was created can sign transactions to modify its data. That is very useful when you need storage that can only be modifiable by your program. + +## Cross Program Invocations (CPIs) +A Cross Program Invocation (CPI) refers to when one program invokes the instructions of another program. This mechanism allows for the composability of Solana programs. + +You can think of instructions as API endpoints that a program exposes to the network and a CPI as one API internally invoking another API. + +![](assets/solana-core-concepts-6.webp) + +When a program initiates a Cross Program Invocation (CPI) to another program: + +- The signer privileges from the initial transaction invoking the caller program (A) extend to the callee (B) program. +- The callee (B) program can make further CPIs to other programs, up to a maximum depth of 4 (ex. B->C, C->D). +- The programs can "sign" on behalf of the PDAs derived from its program ID. + +## References +https://solana.com/docs