Transactions versionnées

Résumé

Les transactions V0 ajoutent les tables de recherche d'adresses (ALT), permettant de référencer des comptes via des indices de 1 octet au lieu de clés de 32 octets. Cela économise 31 octets par compte résolu via ALT.

Solana prend en charge deux formats de transaction : legacy et versionnées (v0).

Le validator détermine le format en inspectant le premier octet du message :

  • Si le premier octet a le préfixe de version bit défini, c'est un message versionné. Actuellement, seule la version 0 est prise en charge. Les 3 octets suivants sont le MessageHeader.
  • Sinon, c'est un message legacy. Le premier octet est num_required_signatures, et les 2 octets suivants complètent l'en-tête.

Quand utiliser les transactions V0

Utilisez V0 lorsque votre transaction référence de nombreux comptes et approche la limite de paquet de 1 232 octets. Si votre transaction tient dans la limite de taille avec tous les comptes en ligne, les transactions legacy sont plus simples et bénéficient d'un support d'outils plus large. V0 est requis pour utiliser les tables de recherche d'adresses.

Format de message V0

Un message v0 possède les mêmes champs qu'un message legacy, plus un tableau address_table_lookups supplémentaire ajouté après les instructions :

ChampTailleDescription
0x801 octetOctet de préfixe de version
header3 octetsMessageHeader (identique au legacy)
static_account_keyscompact-u16 + N x 32 octetsClés qui apparaissent littéralement dans la transaction
recent_blockhash32 octetsBlockhash
instructionscompact-u16 + variableMême format que legacy
address_table_lookupscompact-u16 + variableRéférences ALT (voir ci-dessous)

Chaque entrée de table de recherche d'adresses contient :

ChampTailleDescription
account_key32 octetsLa clé publique du compte ALT
writable_indexescompact-u16 + N x 1 octetIndices dans l'ALT pour les comptes modifiables
readonly_indexescompact-u16 + N x 1 octetIndices dans l'ALT pour les comptes en lecture seule

Résolution de la table de recherche d'adresses

Une ALT est un compte on-chain qui stocke jusqu'à 256 clés publiques. En référençant une ALT, une transaction peut inclure des comptes supplémentaires en utilisant des indices de 1 octet au lieu de clés publiques de 32 octets, réduisant considérablement la surcharge par compte.

Au moment de l'exécution, avant le début de l'exécution, le validateur résout toutes les références ALT en clés publiques complètes. Les adresses résolues sont ajoutées aux clés de compte statiques pour former la liste complète des clés de compte. Les comptes résolus par ALT suivent le même ordre que les comptes statiques : les recherches modifiables viennent avant les recherches en lecture seule.

Les tables de recherche d'adresses n'affectent que la manière dont les comptes sont référencés dans la transaction sur le réseau. Au moment de l'exécution, le runtime résout tous les indices en adresses de compte complètes. Les comptes résolus par ALT ne peuvent être que modifiables ou en lecture seule (non-signataires) ; ils ne peuvent pas être signataires.

Is this page helpful?

Table des matières

Modifier la page

Géré par

© 2026 Fondation Solana.
Tous droits réservés.
Restez connecté