Program Solana adalah
account yang berisi
bytecode sBPF yang dapat dieksekusi dan memiliki flag executable yang diatur
ke true. Program bersifat stateless. Semua state yang dapat diubah berada di
account data terpisah yang diteruskan melalui
instruction.
Diagram account program, 4 komponennya dan program loader-nya.
Eksekusi program
Kompilasi, menulis program (Anchor / Native Rust), sBPF VM, model compute unit, syscall, program cache.
Deployment program
Deploy, upgrade, dan verifikasi program. Referensi instruction Loader-v3 dan program loader.
Program inti
System Program (dengan referensi instruction), Vote, Stake, Config, Compute Budget, Address Lookup Table, dan ZK ElGamal Proof.
Precompile
Program verifikasi signature Ed25519, Secp256k1, Secp256r1. Struct offset dan aturan validasi.
Referensi syscall
Referensi lengkap untuk semua ~30 syscall sBPF dengan biaya compute unit.
Fakta kunci
- Dikompilasi ke sBPF: Program dikompilasi ke Solana Bytecode Format (sBPF) melalui LLVM dan disimpan dalam account yang dapat dieksekusi.
- Stateless: Semua state yang dapat diubah berada di account data terpisah, bukan di account program.
- Dapat di-upgrade: Program yang di-deploy dengan loader-v3 (BPF Loader Upgradeable) dapat di-upgrade ketika upgrade authority ditetapkan; mencabut authority tersebut membuat program menjadi immutable.
Batasan
| Batasan | Nilai | Sumber |
|---|---|---|
| Ukuran heap default | 32 KiB | HEAP_LENGTH |
| Ukuran heap maksimal (dapat disesuaikan) | 256 KiB | MAX_HEAP_FRAME_BYTES |
| Ukuran stack frame | 4.096 byte | STACK_FRAME_SIZE |
| Kedalaman call sBPF maksimal | 64 | MAX_CALL_DEPTH |
| Kedalaman stack instruction maksimal (top-level + CPI) | 5 (9 dengan SIMD-0268) | MAX_INSTRUCTION_STACK_DEPTH, MAX_INSTRUCTION_STACK_DEPTH_SIMD_0268 |
| Biaya heap | 8 CU per halaman 32 KiB | DEFAULT_HEAP_COST |
| Program yang di-cache maksimal | 512 | MAX_LOADED_ENTRY_COUNT |
| Penundaan visibilitas deployment | 1 slot | DELAY_VISIBILITY_SLOT_OFFSET |
Is this page helpful?