For the complete documentation index, see llms.txt. This page is also available as Markdown.

Anggaran Komputasi

Biaya unit komputasi Solana (CU) untuk operasi Rome EVM — anggaran atomik vs. iteratif dan cara merancang kontrak Solidity yang efisien CU.

Setiap transaksi Solana memiliki anggaran komputasi yang diukur dalam Unit Komputasi (CU). Memahami biaya CU membantu Anda merancang kontrak Rome yang efisien.

Gambaran Anggaran

Mode
CU Maks
Catatan

Atomik (VmAt)

~1.400.000 CU

Satu transaksi Solana

Iteratif (VmIt)

Tidak terbatas (multi-tx)

Opcode/langkah adaptif — disesuaikan dengan anggaran CU tiap tx

Setiap transaksi Solana memiliki anggaran default 200.000 CU, yang dapat diperluas hingga ~1,4 juta CU melalui instruksi anggaran komputasi (ditambahkan secara otomatis oleh SDK Rome).

Perkiraan Biaya CU

Operasi EVM

Operasi
Perkiraan CU
Catatan

Verifikasi tanda tangan (ecrecover)

~5.000 CU

secp256k1 melalui syscall Solana

Transfer sederhana

~50.000-100.000 CU

Hanya pembaruan saldo

Transfer ERC-20

~100.000-150.000 CU

Termasuk panggilan precompile SPL

Penerapan kontrak (kecil)

~200.000-400.000 CU

Tergantung pada ukuran bytecode

Penulisan storage (SSTORE)

~5.000-20.000 CU

Akses dingin vs hangat

Operasi Precompile

Precompile
Perkiraan CU

ecrecover

~3.000-5.000 CU

SHA-256

~1.000 CU

BN254 ecAdd

~10.000 CU

BN254 ecMul

~40.000 CU

BN254 ecPairing

~200.000+ CU

Teknik Optimisasi

1. Gunakan Yul untuk Jalur Panas

Optimizer Solidity menghasilkan kode yang cukup baik, tetapi Yul (inline assembly) dapat mengurangi CU secara signifikan untuk operasi kritis:

2. Cache Derivasi PDA

Derivasi PDA melalui find_program_address mahal. Simpan PDA yang telah diturunkan di storage kontrak, bukan menghitungnya pada setiap panggilan:

3. Hardcode ID Program yang Diketahui

Jangan memuat ID program dari storage — gunakan konstanta:

4. Minimalkan Jumlah Akun

Setiap akun dalam transaksi Solana menambah overhead CU. Kurangi jumlah akun dengan:

  • Mengelompokkan operasi yang berbagi akun

  • Menggunakan lebih sedikit akun perantara

  • Menghindari pemeriksaan pembuatan ATA yang redundan

5. Gunakan Pengaturan Optimizer

Bangun dengan npx hardhat compile --build-profile production.

Mengukur Konsumsi CU

Gunakan eth_estimateGas untuk mengukur CU sebelum mengirim:

Atau melalui ethers.js:

Apa Selanjutnya

  • Kendala — daftar lengkap batasan dan batas-batas

Terakhir diperbarui

Apakah ini membantu?