Une transaction inclut une ou plusieurs instructions, les signatures des comptes qui autorisent les modifications, et un blockhash récent. Le réseau traite toutes les instructions d'une transaction ensemble. Si une instruction échoue, la transaction entière échoue et tous les changements d'état sont annulés.
Un diagramme simplifié montrant deux transactions
Structure de transaction
Signatures, format de message (en-tête, adresses de compte, blockhash, instructions compilées), encodage binaire, budget de taille, et exemple de transfert SOL.
Transactions versionnées
Format legacy vs V0, tables de recherche d'adresses, résolution ALT, et comparaison des versions.
Pipeline de transaction
Pipeline de traitement complet en 8 étapes (réception jusqu'au commit), lecture des détails de transaction depuis le réseau, et référence des erreurs de validation.
Nonces durables
Signature hors ligne avec nonces durables, cycle de vie du nonce, détection, flux de validation, et comportement en cas d'échec.
Préparation à la production
Configurez l'atterrissage des transactions, les nouvelles tentatives, les frais de priorité et la confirmation pour les applications mainnet.
Points clés
- Exécution atomique : toutes les instructions réussissent ou toutes sont annulées. Les frais sont toujours facturés en cas d'échec.
- Limite de taille : 1 232 octets maximum, dérivée de la MTU minimale IPv6 (1 280 octets) moins 48 octets pour les en-têtes réseau. Le format v1 porte cette limite à 4 096 octets.
- Signatures : chaque signataire fournit une signature Ed25519 de 64 octets.
- Expiration du blockhash : le blockhash récent d'une transaction est valide pendant 150 slots.
Limites
| Limite | Valeur | Source |
|---|---|---|
| Taille maximale de transaction | 1 232 octets | PACKET_DATA_SIZE |
| Comptes maximum par transaction | 64 (96 pour v1 avec SIMD-0596) | Limite appliquée |
| Expiration du blockhash | 150 slots | MAX_PROCESSING_AGE |
| Taille de signature | 64 octets (Ed25519) | -- |
| Frais de base par signature | 5 000 lamports | Frais |
| Instructions exécutées maximum | 64 (niveau supérieur + CPI) | MAX_INSTRUCTION_TRACE_LENGTH |
| Signatures maximum par paquet | 12 | MAX_SIGNATURES_PER_PACKET |
Is this page helpful?