Konto to podstawowa jednostka danych Solany do przechowywania stanu. Sieć przechowuje cały stan w magazynie klucz-wartość, gdzie każdy klucz to 32-bajtowy adres, a każda wartość to konto.
Diagram trzech kont i ich adresów. Zawiera definicję struktury konta.
Struktura konta
Adresy kont (klucz publiczny, PDA), pięć pól, które zawiera każde konto, maszyna stanów rent, z interaktywnym omówieniem kodu.
Typy kont
Konta programów (kod wykonywalny), konta danych (stan programu), konta systemowe oraz sysvars (stan całego klastra).
Zasady modyfikacji
Zasady egzekwowane w czasie wykonywania dotyczące lamportów, danych, właściciela, flagi wykonywalności oraz pożyczek.
Środowisko uruchomieniowe konta
Walidacja ładowania konta, format serializacji BPF oraz deserializacja.
Kluczowe informacje
- Struktura: Każde konto posiada te same pięć pól: lamports, dane, właściciel, wykonywalność, rent_epoch.
- Adres: Każde konto jest identyfikowane przez unikalny 32-bajtowy adres (klucz publiczny Ed25519 lub PDA).
- Własność: Tylko program będący właścicielem konta może modyfikować jego dane lub obciążać lamporty. Każdy program może zasilać lamportami dowolne konto z uprawnieniami do zapisu.
- Rent: Każde konto musi posiadać minimalny balans lamportów proporcjonalny do rozmiaru danych, aby pozostać on-chain.
Limity
| Limit | Wartość | Źródło |
|---|---|---|
| Maksymalny rozmiar danych konta | 10 MiB (10 485 760 bajtów) | MAX_ACCOUNT_DATA_LEN |
| Maksymalny przyrost danych na instrukcję | 10 KiB (10 240 bajtów) | MAX_PERMITTED_DATA_INCREASE |
| Maksymalny przyrost danych na transakcję | 20 MiB (20 971 520 bajtów) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| Podstawowy narzut pamięci konta | 64 bajty na konto | TRANSACTION_ACCOUNT_BASE_SIZE |
| Rozmiar adresu | 32 bajty (klucz publiczny Ed25519) | -- |
| Minimalny próg rent (wzór) | (account_size + 128) * 3 480 lamportów/bajt-rok * 2 lata | minimum_balance() |
Is this page helpful?