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 (publieke sleutel, PDA), de vijf velden die elk account bevat, opslagbalans, en het verouderde rent-veld, met een 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 publieke sleutel of een PDA).
- Eigendom: Alleen het eigenaarsprogramma van het account kan de data wijzigen of lamports debiteren. Elk programma kan lamports crediteren naar elk schrijfbaar account.
- Accountopslag: Elk account moet een terugbetaalbare minimale lamport- balans aanhouden die evenredig is aan de gegevensgrootte om onchain 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) | -- |
| Minimale opslagbalans (formule) | (account_size + 128) * 3.480 lamports/byte-jaar * 2 jaar | minimum_balance() |
Is this page helpful?