Transazioni con versione

Riepilogo

Le transazioni V0 aggiungono le Address Lookup Tables (ALT), consentendo riferimenti agli account tramite indici a 1 byte invece di chiavi a 32 byte. Questo risparmia 31 byte per ogni account risolto tramite ALT.

Solana supporta due formati di transazione: legacy e con versione (v0).

Il validator determina il formato ispezionando il primo byte del messaggio:

  • Se il primo byte ha il bit di prefisso versione impostato, si tratta di un messaggio con versione. Attualmente è supportata solo la versione 0. I successivi 3 byte sono il MessageHeader.
  • Altrimenti, si tratta di un messaggio legacy. Il primo byte è num_required_signatures, e i successivi 2 byte completano l'header.

Quando usare le transazioni V0

Usa V0 quando la tua transazione fa riferimento a molti account e si avvicina al limite di 1.232 byte del pacchetto. Se la tua transazione rientra nel limite di dimensione con tutti gli account inline, le transazioni legacy sono più semplici e hanno un supporto più ampio negli strumenti. V0 è richiesto per utilizzare le Address Lookup Tables.

Formato del messaggio V0

Un messaggio v0 ha gli stessi campi di un messaggio legacy, più un array address_table_lookups aggiuntivo accodato dopo le istruzioni:

CampoDimensioneDescrizione
0x801 byteByte di prefisso versione
header3 byteMessageHeader (uguale al legacy)
static_account_keyscompact-u16 + N x 32 byteChiavi che appaiono letteralmente nella transazione
recent_blockhash32 byteBlockhash
instructionscompact-u16 + variabileStesso formato del legacy
address_table_lookupscompact-u16 + variabileRiferimenti ALT (vedi sotto)

Ogni voce della tabella di ricerca degli indirizzi contiene:

CampoDimensioneDescrizione
account_key32 byteLa chiave pubblica dell'account ALT
writable_indexescompact-u16 + N x 1 byteIndici nell'ALT per gli account scrivibili
readonly_indexescompact-u16 + N x 1 byteIndici nell'ALT per gli account di sola lettura

Risoluzione della tabella di ricerca degli indirizzi

Un ALT è un account on-chain che memorizza fino a 256 chiavi pubbliche. Facendo riferimento a un ALT, una transazione può includere account aggiuntivi utilizzando indici di 1 byte anziché chiavi pubbliche di 32 byte, riducendo significativamente l'overhead per account.

Durante l'esecuzione, prima che inizi l'elaborazione, il validator risolve tutti i riferimenti ALT in chiavi pubbliche complete. Gli indirizzi risolti vengono aggiunti alle chiavi account statiche per formare l'elenco completo delle chiavi account. Gli account risolti tramite ALT seguono lo stesso ordinamento degli account statici: le ricerche scrivibili precedono quelle di sola lettura.

Le tabelle di ricerca degli indirizzi influenzano solo il modo in cui gli account vengono referenziati nella transazione on-wire. Durante l'esecuzione, il runtime risolve tutti gli indici in indirizzi account completi. Gli account risolti tramite ALT possono essere solo scrivibili o di sola lettura (non firmatari); non possono essere firmatari.

Is this page helpful?

Indice dei contenuti

Modifica pagina

Gestito da

© 2026 Solana Foundation.
Tutti i diritti riservati.
Resta connesso