Sette concetti costituiscono le fondamenta dello sviluppo su Solana. Leggi Account, Programmi, Istruzioni, Transazioni e Commissioni in quest'ordine, poiché ciascuno si basa sul precedente. Leggi Account e Programmi prima dei PDA. Leggi Programmi, Istruzioni e PDA prima dei CPI.
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 stateless e tutto lo stato mutabile risiede in account di dati separati passati tramite istruzioni.
Istruzioni
Una richiesta per eseguire un programma, contenente un ID programma, una lista 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.
Commissioni
Commissione base di 5.000 lamports per firma, più una commissione di priorità opzionale basata sulle unità di calcolo richieste. Massimo 1,4M di unità di calcolo per transazione.
Program derived addresses (PDA)
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 (CPI)
Un programma che ne chiama un altro tramite invoke o invoke_signed. I privilegi di firmatario e scrittura si estendono al chiamato. Profondità massima dello stack di istruzioni di 5 (livello superiore più CPI).
Argomenti aggiuntivi
Token
Asset digitali fungibili e non fungibili su Solana (SPL Token, Token-2022).
Cluster ed endpoint
Mainnet, Devnet e Testnet: gruppi di validator che servono 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?