Een account is de fundamentele data-eenheid van Solana voor het opslaan van state. Het netwerk slaat alle state op in een key-value store waarbij elke key een 32-byte adres is en elke value een account.
Diagram van 3 accounts en hun adressen. Bevat de definitie van de accountstructuur.
Accountstructuur
Accountadressen (public key, PDA), de vijf velden die elk account bevat, rent state machine, met interactieve code walkthrough.
Accounttypes
Programma-accounts (uitvoerbare code), data-accounts (programma state), systeemaccounts en sysvars (cluster-brede state).
Wijzigingsregels
Runtime-afgedwongen regels voor lamports, data, owner, executable flag en borrows.
Account runtime
Account loading validatie, BPF serialization format en deserialization.
Belangrijkste feiten
- Structuur: elk account heeft dezelfde vijf velden: lamports, data, owner, executable, rent_epoch.
- Adres: elk account wordt geïdentificeerd door een uniek 32-byte adres (ofwel een Ed25519 public key of een PDA).
- Eigendom: alleen het owner-programma van het account kan de data wijzigen of lamports debiteren. Elk programma kan lamports crediteren naar elk schrijfbaar account.
- Rent: elk account moet een minimum lamport-saldo aanhouden evenredig aan de datagrootte om on-chain te blijven.
Limieten
| Limiet | Waarde | Bron |
|---|---|---|
| Max account datagrootte | 10 MiB (10.485.760 bytes) | MAX_ACCOUNT_DATA_LEN |
| Max datagroei per instructie | 10 KiB (10.240 bytes) | MAX_PERMITTED_DATA_INCREASE |
| Max datagroei per transactie | 20 MiB (20.971.520 bytes) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| Account base storage overhead | 64 bytes per account | TRANSACTION_ACCOUNT_BASE_SIZE |
| Adresgrootte | 32 bytes (Ed25519 public key) | -- |
| Rent-exempt minimum (formule) | (account_size + 128) * 3.480 lamports/byte-jaar * 2 jaar | minimum_balance() |
Is this page helpful?