Accounts
Accounts innerhalb von Solana werden zum Speichern des Zustands verwendet. Sie sind ein wesentlicher Baustein für die Entwicklung auf Solana.
Fakten
Fact Sheet
- Accounts werden genutzt um Daten zu speichern
- Jedes Konto hat eine eindeutige (einmalig vorhandene) Adresse
- Accounts haben eine maximale Größe von 10MB (10 Mega Bytes)
- PDA Accounts haben eine maximale Größe von 10KB (10 Kilo Bytes)
- PDA Accounts können verwendet werden, um im Namen eines Programms zu signieren
- Accountgrößen sind bei erstellung festgelegt, können aber mit realloc angepasst werden
- Für Accountsdatenspeicher wird "Miete" gezahlt (in SOL)
- Der Standard-Accounts-Besitzer ist das Systemprogramm
Deep Dive
Accounts Model
Auf Solana gibt es 3 Arten von Accounts:
- Daten Accounts speichern Daten
- Program Accounts speichern ausführbare Programme
- Native Accounts die native Programme auf Solana angeben (wie z.B. System, Stake, und Vote )
Es gibt 2 Arten von Daten Accounts:
- Systemeigene Accounts
- PDA-Accounts (Program Derived Address).
Jedes Konto hat eine Adresse (normalerweise einen öffentlichen Schlüssel) und einen Besitzer (Adresse eines Programmkontos). Die vollständige Feldliste speichert ein Konto ist unten zu finden.
Feld | Beschreibung |
---|---|
lamports | Die Anzahl der Lamports im Besitz dieses Kontos |
owner | Der Programmbesitzer dieses Kontos |
executable | Ob dieses Konto Anweisungen verarbeiten kann |
data | Das Rohdaten-Byte-Array, das von diesem Konto gespeichert wird |
rent_epoch | Die nächste Epoche, in der dieses Konto Miete schuldet |
Es gibt ein paar wichtige Eigentumsregeln:
- Nur der Besitzer eines Datenkontos kann seine Daten ändern und Lamports belasten
- Jeder darf Lamports auf ein Datenkonto gutschreiben
- Der Inhaber eines Kontos kann einen neuen Inhaber zuweisen, wenn die Daten des Kontos auf Null gesetzt werden
ProgrammAccounts speichern keinen Status.
Wenn Du beispielsweise ein Zählerprogramm hast, mit dem Du einen Zähler erhöhen kannst, musst Du zwei Accounts erstellen - ein Konto zum Speichern des Programmcodes und eines zum Speichern der Zähler.
Um zu verhindern, dass ein Konto gelöscht wird, müssen Sie Miete zahlen.
Miete
Daten auf Accounts zu speichern kostet SOL - diese Zahlung wird Miete genannt. Wenn du eine Mindesteinzahlung von 2 Jahren Miete tätigst, wird dein Account von zukünftiger Miete befreit. Du kannst vorausgezahlte Miete durch schließen von Accounts zurück in deine Wallet bekommen.
Die Miete wird zu zwei verschiedenen Zeitpunkten gezahlt:
- Wenn es von einer Transaktion referenziert wird
- Einmal pro Epoche
Ein Teil der über Accounts eingezogenen Miete wird vernichtet, während der Rest verteilt wird Accounts am Ende jedes Slots zu bestimmen.
Reicht das Konto nicht aus, um die Miete zu zahlen, wird das Konto aufgelöst und die Daten ENTFERNT.
Wichtig ist auch zu beachten, dass NeuAccounts mietfrei sein müssen.
Andere Ressourcen
Credit
Dieses Kernkonzept wird Pencilflip zugeschrieben. Folgt ihm auf Twitter.