Μια συναλλαγή περιλαμβάνει μία ή περισσότερες οδηγίες, τις υπογραφές των λογαριασμών που εξουσιοδοτούν τις αλλαγές και ένα πρόσφατο blockhash. Το δίκτυο επεξεργάζεται όλες τις οδηγίες σε μια συναλλαγή μαζί. Εάν οποιαδήποτε οδηγία αποτύχει, ολόκληρη η συναλλαγή αποτυγχάνει και όλες οι αλλαγές κατάστασης αναιρούνται.
Απλοποιημένο διάγραμμα που δείχνει δύο συναλλαγές
Δομή συναλλαγής
Υπογραφές, μορφή μηνύματος (header, διευθύνσεις λογαριασμών, blockhash, compiled instructions), binary encoding, όριο μεγέθους και παράδειγμα μεταφοράς SOL.
Συναλλαγές με έκδοση
Legacy vs V0 format, Address Lookup Tables, επίλυση ALT και σύγκριση εκδόσεων.
Pipeline συναλλαγών
Πλήρης διαδικασία επεξεργασίας 8 σταδίων (από λήψη έως commit), ανάγνωση λεπτομερειών συναλλαγής από το δίκτυο και αναφορά σφαλμάτων επικύρωσης.
Durable nonces
Offline υπογραφή με durable nonces, κύκλος ζωής nonce, ανίχνευση, ροή επικύρωσης και συμπεριφορά αποτυχίας.
Ετοιμότητα για παραγωγή
Διαμορφώστε την προσγείωση των συναλλαγών, τις επαναπροσπάθειες, τα τέλη προτεραιότητας και την επιβεβαίωση για εφαρμογές στο mainnet.
Βασικά στοιχεία
- Ατομική εκτέλεση: Όλες οι οδηγίες επιτυγχάνουν ή όλες αναιρούνται. Τα τέλη εξακολουθούν να χρεώνονται σε περίπτωση αποτυχίας.
- Όριο μεγέθους: το μέγιστο είναι 1.232 bytes, και προκύπτει από το ελάχιστο MTU του IPv6 (1.280 bytes) μείον 48 bytes για τις κεφαλίδες δικτύου. Η μορφή v1 αυξάνει το όριο αυτό στα 4.096 bytes.
- Υπογραφές: Κάθε υπογράφων παρέχει μία υπογραφή Ed25519 64 bytes.
- Λήξη blockhash: Το πρόσφατο blockhash μιας συναλλαγής ισχύει για 150 slots.
Όρια
| Όριο | Τιμή | Πηγή |
|---|---|---|
| Μέγιστο μέγεθος συναλλαγής | 1.232 bytes | PACKET_DATA_SIZE |
| Μέγιστοι λογαριασμοί ανά συναλλαγή | 64 (96 για το v1 με το SIMD-0596) | Επιβαλλόμενο όριο |
| Λήξη blockhash | 150 slots | MAX_PROCESSING_AGE |
| Μέγεθος υπογραφής | 64 bytes (Ed25519) | -- |
| Βασικό τέλος ανά υπογραφή | 5.000 lamports | Τέλη |
| Μέγιστες εκτελεσμένες οδηγίες | 64 (top-level + CPIs) | MAX_INSTRUCTION_TRACE_LENGTH |
| Μέγιστες υπογραφές ανά πακέτο | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?