Ein Konto ist die grundlegende Dateneinheit von Solana zur Speicherung von Zuständen. Das Netzwerk speichert alle Zustände in einem Key-Value-Store, wobei jeder Schlüssel eine 32-Byte-Adresse und jeder Wert ein Konto ist.
Diagramm von 3 Konten und ihren Adressen. Enthält die Definition der Kontenstruktur.
Kontenstruktur
Kontenadressen (Public Key, PDA), die fünf Felder, die jedes Konto enthält, rent-Zustandsautomat, mit interaktiver Code-Anleitung.
Kontentypen
Programmkonten (ausführbarer Code), Datenkonten (Programmzustand), Systemkonten und Sysvars (clusterweiter Zustand).
Änderungsregeln
Laufzeit-erzwungene Regeln für Lamports, Daten, Eigentümer, ausführbares Flag und Ausleihen.
Konto-Laufzeit
Validierung beim Laden von Konten, BPF-Serialisierungsformat und Deserialisierung.
Wichtige Fakten
- Struktur: Jedes Konto hat dieselben fünf Felder: Lamports, Daten, Eigentümer, ausführbar, rent_epoch.
- Adresse: Jedes Konto wird durch eine eindeutige 32-Byte-Adresse identifiziert (entweder ein Ed25519-Public-Key oder eine PDA).
- Eigentümerschaft: Nur das Eigentümerprogramm des Kontos kann dessen Daten ändern oder Lamports abbuchen. Jedes Programm kann Lamports auf jedes beschreibbare Konto einzahlen.
- Rent: Jedes Konto muss ein Mindestguthaben an Lamports proportional zu seiner Datengröße halten, um on-chain zu bleiben.
Limits
| Limit | Wert | Quelle |
|---|---|---|
| Max. Kontendatengröße | 10 MiB (10.485.760 Bytes) | MAX_ACCOUNT_DATA_LEN |
| Max. Datenwachstum pro Instruktion | 10 KiB (10.240 Bytes) | MAX_PERMITTED_DATA_INCREASE |
| Max. Datenwachstum pro Transaktion | 20 MiB (20.971.520 Bytes) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| Basis-Speicher-Overhead pro Konto | 64 Bytes pro Konto | TRANSACTION_ACCOUNT_BASE_SIZE |
| Adressgröße | 32 Bytes (Ed25519-Public-Key) | -- |
| Rent-befreites Minimum (Formel) | (account_size + 128) * 3.480 Lamports/Byte-Jahr * 2 Jahre | minimum_balance() |
Is this page helpful?