Transaksi berversi

Ringkasan

Transaksi V0 menambahkan Address Lookup Tables (ALTs), memungkinkan referensi ke akun melalui indeks 1-byte alih-alih kunci 32-byte. Ini menghemat 31 byte per akun yang di-resolve ALT.

Solana mendukung dua format transaksi: legacy dan berversi (v0).

Validator menentukan format dengan memeriksa byte pertama dari pesan:

  • Jika byte pertama memiliki bit version prefix yang diset, itu adalah pesan berversi. Saat ini hanya versi 0 yang didukung. 3 byte berikutnya adalah MessageHeader.
  • Jika tidak, itu adalah pesan legacy. Byte pertama adalah num_required_signatures, dan 2 byte berikutnya melengkapi header.

Kapan menggunakan transaksi V0

Gunakan V0 ketika transaksi Anda mereferensikan banyak akun dan mendekati batas paket 1.232-byte. Jika transaksi Anda muat dalam batas ukuran dengan semua akun inline, transaksi legacy lebih sederhana dan memiliki dukungan tooling yang lebih luas. V0 diperlukan untuk menggunakan Address Lookup Tables.

Format pesan V0

Pesan v0 memiliki field yang sama dengan pesan legacy, ditambah array address_table_lookups tambahan yang ditambahkan setelah instruksi:

FieldUkuranDeskripsi
0x801 byteByte version prefix
header3 byteMessageHeader (sama dengan legacy)
static_account_keyscompact-u16 + N x 32 byteKunci yang muncul secara literal dalam transaksi
recent_blockhash32 byteBlockhash
instructionscompact-u16 + variabelFormat sama dengan legacy
address_table_lookupscompact-u16 + variabelReferensi ALT (lihat di bawah)

Setiap entri pencarian tabel alamat berisi:

FieldSizeDescription
account_key32 bytesKunci publik akun ALT
writable_indexescompact-u16 + N x 1 byteIndeks ke dalam ALT untuk akun yang dapat ditulis
readonly_indexescompact-u16 + N x 1 byteIndeks ke dalam ALT untuk akun read-only

Resolusi tabel pencarian alamat

ALT adalah akun on-chain yang menyimpan hingga 256 kunci publik. Dengan mereferensikan ALT, sebuah transaksi dapat menyertakan akun tambahan menggunakan indeks 1-byte alih-alih kunci publik 32-byte, sehingga secara signifikan mengurangi overhead per akun.

Saat runtime, sebelum eksekusi dimulai, validator menyelesaikan semua referensi ALT menjadi kunci publik lengkap. Alamat yang telah diselesaikan ditambahkan ke kunci akun statis untuk membentuk daftar kunci akun yang lengkap. Akun yang diselesaikan melalui ALT mengikuti urutan yang sama dengan akun statis: pencarian yang dapat ditulis (writable lookups) muncul sebelum pencarian read-only.

Tabel pencarian alamat hanya memengaruhi cara akun direferensikan dalam transaksi on-wire. Pada waktu eksekusi, runtime menyelesaikan semua indeks menjadi alamat akun lengkap. Akun yang diselesaikan melalui ALT hanya dapat bersifat writable atau read-only (non-signer); mereka tidak dapat menjadi signer.

Is this page helpful?

Daftar Isi

Edit Halaman

Dikelola oleh

© 2026 Yayasan Solana.
Semua hak dilindungi.
Terhubung