Tài khoản là đơn vị dữ liệu cơ bản của Solana để lưu trữ trạng thái. Mạng lưới lưu trữ toàn bộ trạng thái trong một kho key-value, trong đó mỗi key là một địa chỉ 32 byte và mỗi value là một tài khoản.
Sơ đồ 3 tài khoản và địa chỉ của chúng. Bao gồm định nghĩa cấu trúc tài khoản.
Cấu trúc tài khoản
Địa chỉ tài khoản (public key, PDA), năm trường mà mọi tài khoản đều chứa, state machine của rent, với hướng dẫn code tương tác.
Loại tài khoản
Tài khoản program (code thực thi), tài khoản data (trạng thái program), tài khoản system và sysvars (trạng thái toàn cluster).
Quy tắc sửa đổi
Quy tắc được runtime thực thi cho lamports, data, owner, cờ executable và borrows.
Account runtime
Xác thực tải tài khoản, định dạng serialization BPF và deserialization.
Thông tin chính
- Cấu trúc: Mọi tài khoản đều có cùng năm trường: lamports, data, owner, executable, rent_epoch.
- Địa chỉ: Mỗi tài khoản được xác định bởi một địa chỉ 32 byte duy nhất (có thể là public key Ed25519 hoặc PDA).
- Quyền sở hữu: Chỉ program sở hữu tài khoản mới có thể sửa đổi data hoặc trừ lamports. Bất kỳ program nào cũng có thể cộng lamports vào bất kỳ tài khoản writable nào.
- Rent: Mọi tài khoản phải giữ số dư lamport tối thiểu tỷ lệ thuận với kích thước data để duy trì trên chuỗi.
Giới hạn
| Giới hạn | Giá trị | Nguồn |
|---|---|---|
| Kích thước data tài khoản tối đa | 10 MiB (10.485.760 bytes) | MAX_ACCOUNT_DATA_LEN |
| Tăng trưởng data tối đa mỗi instruction | 10 KiB (10.240 bytes) | MAX_PERMITTED_DATA_INCREASE |
| Tăng trưởng data tối đa mỗi transaction | 20 MiB (20.971.520 bytes) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| Chi phí lưu trữ cơ bản của tài khoản | 64 bytes mỗi tài khoản | TRANSACTION_ACCOUNT_BASE_SIZE |
| Kích thước địa chỉ | 32 bytes (public key Ed25519) | -- |
| Mức tối thiểu miễn rent (công thức) | (account_size + 128) * 3.480 lamports/byte-year * 2 years | minimum_balance() |
Is this page helpful?