Akun adalah unit data fundamental Solana untuk menyimpan state. Jaringan menyimpan semua state dalam penyimpanan key-value di mana setiap key adalah alamat 32-byte dan setiap value adalah sebuah akun.
Diagram 3 akun dan alamatnya. Termasuk definisi struktur akun.
Struktur akun
Alamat akun (public key, PDA), lima field yang dimiliki setiap akun, state machine rent, dengan panduan kode interaktif.
Tipe akun
Akun program (kode yang dapat dieksekusi), akun data (state program), akun sistem, dan sysvars (state cluster-wide).
Aturan modifikasi
Aturan yang diterapkan runtime untuk lamport, data, owner, flag executable, dan borrow.
Runtime akun
Validasi pemuatan akun, format serialisasi BPF, dan deserialisasi.
Fakta kunci
- Struktur: Setiap akun memiliki lima field yang sama: lamports, data, owner, executable, rent_epoch.
- Alamat: Setiap akun diidentifikasi oleh alamat 32-byte yang unik (baik berupa public key Ed25519 atau PDA).
- Kepemilikan: Hanya program owner akun yang dapat memodifikasi datanya atau mendebit lamport. Program apa pun dapat mengkredit lamport ke akun writable mana pun.
- Rent: Setiap akun harus menyimpan saldo lamport minimum yang proporsional dengan ukuran datanya agar tetap on-chain.
Batasan
| Batasan | Nilai | Sumber |
|---|---|---|
| Ukuran data akun maksimal | 10 MiB (10.485.760 byte) | MAX_ACCOUNT_DATA_LEN |
| Pertumbuhan data maksimal per instruksi | 10 KiB (10.240 byte) | MAX_PERMITTED_DATA_INCREASE |
| Pertumbuhan data maksimal per transaksi | 20 MiB (20.971.520 byte) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| Overhead penyimpanan dasar akun | 64 byte per akun | TRANSACTION_ACCOUNT_BASE_SIZE |
| Ukuran alamat | 32 byte (public key Ed25519) | -- |
| Minimum rent-exempt (rumus) | (account_size + 128) * 3.480 lamport/byte-year * 2 tahun | minimum_balance() |
Is this page helpful?