Sette concetti costituiscono le fondamenta dello sviluppo su Solana. Inizia con Account e Programmi, poi segui come le Istruzioni diventano Transazioni. PDA, CPI e Commissioni si costruiscono su quel modello di esecuzione.
Account
Solana memorizza tutto lo stato negli account, un archivio chiave-valore indicizzato da indirizzi a 32 byte. Ogni account ha cinque campi: lamports, data, owner, executable e rent_epoch.
Programmi
Gli smart contract di Solana, compilati in sBPF. I programmi sono privi di stato e tutto lo stato mutabile risiede in account dati separati passati tramite istruzioni.
Istruzioni
Una richiesta di esecuzione di un programma, contenente un ID programma, un elenco di account e byte di dati opachi. Più istruzioni si compongono in una singola transazione.
Transazioni
L'unità atomica di esecuzione su Solana. Contiene firme e un messaggio (indirizzi account, blockhash recente e istruzioni compilate). Massimo 1232 byte, o 4096 con il formato v1.
Commissioni
Commissione base di 5.000 lamports per firma, più una commissione di priorità opzionale basata sulle unità di calcolo richieste. Massimo 1,4 milioni di unità di calcolo per transazione.
Program Derived Addresses (PDAs)
Indirizzi deterministici derivati da un ID programma e seed. Solo il programma proprietario può firmare per conto di un PDA tramite invoke_signed.
Cross-Program Invocations (CPIs)
Un programma che ne chiama un altro tramite invoke o invoke_signed. I privilegi di firma e scrittura si estendono al chiamato. Profondità massima dello stack di istruzioni pari a 5 (livello superiore più CPI).
Argomenti Aggiuntivi
Asset
Asset digitali fungibili e non fungibili su Solana (SPL Token, Token-2022).
Cluster ed Endpoint
Mainnet, Devnet e Testnet: gruppi di validator che gestiscono le richieste JSON-RPC.
| Cluster | Endpoint RPC Pubblico | Utilizzo |
|---|---|---|
| Mainnet | https://api.mainnet.solana.com | Produzione |
| Devnet | https://api.devnet.solana.com | Sperimentazione per sviluppatori |
| Testnet | https://api.testnet.solana.com | Test per validator |
Is this page helpful?