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 dữ liệu mà mỗi tài khoản chứa, số dư lưu trữ, và trường rent không còn được sử dụng, cùng với hướng dẫn code tương tác từng bướ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à khóa công khai Ed25519 hoặc PDA).
- Quyền sở hữu: Chỉ có chương trình sở hữu tài khoản mới có thể sửa đổi dữ liệu hoặc trừ lamports của nó. Bất kỳ chương trình nào cũng có thể ghi có lamports vào bất kỳ tài khoản có thể ghi nào.
- Lưu trữ tài khoản: Mỗi tài khoản phải duy trì số dư lamport tối thiểu có thể hoàn lại tỷ lệ thuận với kích thước dữ liệu của nó để tồn tại trên blockchain.
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) | -- |
| Số dư lưu trữ tối thiểu (công thức) | (account_size + 128) * 3.480 lamports/byte-year * 2 years | minimum_balance() |
Is this page helpful?