Συναλλαγές με έκδοση

Περίληψη

Οι συναλλαγές V0 προσθέτουν Address Lookup Tables (ALTs), επιτρέποντας αναφορές σε λογαριασμούς μέσω δεικτών 1-byte αντί για κλειδιά 32-byte. Αυτό εξοικονομεί 31 bytes ανά λογαριασμό που επιλύεται μέσω ALT.

Το Solana υποστηρίζει δύο μορφές συναλλαγών: legacy και versioned (v0).

Ο validator καθορίζει τη μορφή εξετάζοντας το πρώτο byte του μηνύματος:

  • Αν το πρώτο byte έχει οριστεί το version prefix bit, είναι versioned message. Προς το παρόν υποστηρίζεται μόνο η έκδοση 0. Τα επόμενα 3 bytes είναι το MessageHeader.
  • Διαφορετικά, είναι legacy message. Το πρώτο byte είναι num_required_signatures, και τα επόμενα 2 bytes ολοκληρώνουν την κεφαλίδα.

Πότε να χρησιμοποιείτε συναλλαγές V0

Χρησιμοποιήστε V0 όταν η συναλλαγή σας αναφέρεται σε πολλούς λογαριασμούς και πλησιάζει το όριο πακέτου των 1.232 bytes. Αν η συναλλαγή σας χωράει εντός του ορίου μεγέθους με όλους τους λογαριασμούς inline, οι legacy συναλλαγές είναι απλούστερες και έχουν ευρύτερη υποστήριξη εργαλείων. Το V0 απαιτείται για τη χρήση Address Lookup Tables.

Μορφή μηνύματος V0

Ένα μήνυμα v0 έχει τα ίδια πεδία με ένα legacy μήνυμα, συν έναν επιπλέον πίνακα address_table_lookups που προστίθεται μετά τις οδηγίες:

ΠεδίοΜέγεθοςΠεριγραφή
0x801 byteByte προθέματος έκδοσης
header3 bytesMessageHeader (ίδιο με legacy)
static_account_keyscompact-u16 + N x 32 bytesΚλειδιά που εμφανίζονται κυριολεκτικά στη συναλλαγή
recent_blockhash32 bytesBlockhash
instructionscompact-u16 + μεταβλητόΊδια μορφή με legacy
address_table_lookupscompact-u16 + μεταβλητόΑναφορές ALT (δείτε παρακάτω)

Κάθε καταχώρηση αναζήτησης πίνακα διευθύνσεων περιέχει:

ΠεδίοΜέγεθοςΠεριγραφή
account_key32 bytesΤο δημόσιο κλειδί του λογαριασμού ALT
writable_indexescompact-u16 + N x 1 byteΔείκτες στο ALT για λογαριασμούς εγγραφής
readonly_indexescompact-u16 + N x 1 byteΔείκτες στο ALT για λογαριασμούς μόνο για ανάγνωση

Επίλυση πίνακα αναζήτησης διευθύνσεων

Ένας ALT είναι ένας on-chain λογαριασμός που αποθηκεύει έως 256 δημόσια κλειδιά. Με την αναφορά σε έναν ALT, μια συναλλαγή μπορεί να συμπεριλάβει επιπλέον λογαριασμούς χρησιμοποιώντας δείκτες 1 byte αντί για δημόσια κλειδιά 32 bytes, μειώνοντας σημαντικά το overhead ανά λογαριασμό.

Κατά το runtime, πριν ξεκινήσει η εκτέλεση, ο validator επιλύει όλες τις αναφορές ALT σε πλήρη δημόσια κλειδιά. Οι επιλυμένες διευθύνσεις προστίθενται στα στατικά κλειδιά λογαριασμών για να σχηματίσουν την πλήρη λίστα κλειδιών λογαριασμών. Οι λογαριασμοί που επιλύονται μέσω ALT ακολουθούν την ίδια σειρά με τους στατικούς λογαριασμούς: οι αναζητήσεις εγγραφής προηγούνται των αναζητήσεων μόνο για ανάγνωση.

Οι πίνακες αναζήτησης διευθύνσεων επηρεάζουν μόνο τον τρόπο με τον οποίο αναφέρονται οι λογαριασμοί στη συναλλαγή on-wire. Κατά τον χρόνο εκτέλεσης, το runtime επιλύει όλους τους δείκτες σε πλήρεις διευθύνσεις λογαριασμών. Οι λογαριασμοί που επιλύονται μέσω ALT μπορούν να είναι μόνο εγγράψιμοι ή μόνο για ανάγνωση (non-signer)· δεν μπορούν να είναι υπογράφοντες.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας

Διαχειρίζεται από

© 2026 Ίδρυμα Solana.
Με επιφύλαξη παντός δικαιώματος.
Συνδεθείτε