Comment fonctionnent les nonces ?

Support
Support
  • Mise à jour

Qu'est-ce qu'un nonce ?

Un nonce est un numéro d'identification séquentiel pour les transactions dans un wallet donné. Vous pouvez considérer un nonce comme quelque peu similaire à un numéro de chèque dans un registre bancaire, la différence principale étant que les nonces doivent toujours se produire séquentiellement sans en sauter.

Chaque transaction que vous signez en utilisant votre wallet aura un nonce associé. Cette valeur est automatiquement déterminée et transmise depuis votre wallet lors de l'envoi d'une transaction, mais il y a des cas où les nonces doivent être manuellement remplacés.

Un autre détail important est que, si deux transactions sont signées à partir du même wallet avec le même nonce, seule la transaction avec les frais les plus élevés sera acceptée comme une transaction valide. Ce principe peut être utilisé pour remplacer ou annuler des transactions.

 

Pourquoi auriez-vous besoin de définir manuellement un nonce ?

Il y a trois raisons principales de définir un nonce personnalisé :

  1. Pour outrepasser ou annuler une transaction: Tandis que les transactions ne peuvent pas être annulées avec certitude, outrepasser une transaction peut être réalisé en soumettant une nouvelle transaction avec le même nonce, assigné manuellement, et des frais plus élevés que la première transaction. Lorsque vous "augmentez les frais" d'une transaction via un wallet, ce qui se passe réellement est une nouvelle soumission d'une transaction avec le même nonce, mais à des frais plus élevés.
  2. Pour corriger les erreurs faites par le logiciel du wallet : Parfois, un wallet assignera incorrectement un nonce de sorte qu'il ne soit pas le prochain nonce séquentiel. Comme nous l'avons dit précédemment, les nonces doivent toujours se produire séquentiellement sans en sauter. Si un nonce trop élevé ou trop bas est soumis, la transaction ne pourra jamais être confirmée.
  3. Pour débloquer une série de transactions depuis un compte  : Similaire à la première raison, il pourrait arriver qu'une série de transactions par ailleurs acceptables soit bloquée derrière une transaction « coincée ». Puisque les nonces doivent toujours se produire séquentiellement sans en sauter, un retard peut se produire. Re-soumettre une transaction pour remplacer la transaction avec un nonce "coincé" et inclure des frais plus élevés peut résoudre le problème.

Comment définir manuellement un nonce personnalisé pour résoudre les problèmes ?

Définir un nonce personnalisé est assez simple, et peut généralement être fait dans les menus "Modifier nonce", "Avancé", ou "Personnalisé" lors de l'envoi d'une transaction dans un wallet. Un champ apparaît, généralement avec un nonce prédéfini, et la possibilité de taper manuellement un nouveau nonce.

Le principal prérequis est de déterminer le nonce actuel pour votre compte et de soumettre à nouveau ou de résoudre autrement le problème en soumettant des transactions avec le bon nonce. Rappelez-vous, il y a un seul nonce acceptable d'un compte donné à tout moment. Si vous ne soumettez pas de transactions avec le seul nonce acceptable, aucune transaction future ne pourra jamais être acceptée comme transaction valide et elles échoueront toutes jusqu'à ce que le nonce soit rectifié et correct.

Résolution des problèmes avec des nonces

  • Étape 1 : Identifiez le nonce actuel de votre compte en utilisant le Stacks Explorer. Il s'agit du seul nonce acceptable du compte en question. Vous pouvez coller votre adresse STX dans la barre de recherche et votre nonce sera listé comme l'un des éléments principaux de votre adresse.

Screen_Shot_2022-06-11_at_2.03.54_PM.png

  • Étape 2 : Identifiez les nonces de vos transactions en attente pour voir pourquoi elles ne sont pas acceptées comme valides. Vous pouvez le faire en cliquant sur la transaction en attente ou sur toute autre transaction dans le registre. Les nonces sur ces transactions peuvent être trop élevés ou trop bas (en d'autres termes, ils peuvent être des doublons ou avoir sauté des nonces). Dans la capture d'écran ci-dessous, vous verrez que la transaction la plus récente qui a été confirmée était de 880. C'est pourquoi dans la capture d'écran précédente, à l'étape 1, le nonce actuel du compte est 881. Dans cet exemple, l'unique nonce acceptable pour la prochaine transaction séquentielle sera 881.

Screen_Shot_2022-06-11_at_2.07.54_PM.png

  • Étape 3 : Créez une nouvelle transaction (ou recréez votre transaction d'origine) mais tapez manuellement l'unique nonce acceptable comme nonce personnalisé. Vous pouvez généralement le faire en exposant le menu de transaction « Avancé » ou « Personnalisé » avant de soumettre votre transaction. Si vous n'avez pas de transaction à effectuer, vous pouvez envoyer n'importe quel montant de STX ou autre token à un autre wallet. Par exemple, vous pouvez "Créer un compte" dans le même wallet Leather (anciennement Hiro) et ensuite envoyer 0.01 STX à l'adresse nouvellement créée avec le bon nonce assigné au transfert STX. N'importe quelle transaction ira, tant qu'elle est acceptée comme valide.

Screen_Shot_2022-06-11_at_2.13.54_PM.png

  • Étape 4 : Soumettez la transaction et attendez qu'elle soit confirmée. Si votre objectif est de "débloquer" une transaction, assurez-vous que votre nouvelle transaction avec le même nonce a des frais plus élevés que la précédente.

En conclusion

Les Nonces sont un concept simple, mais peuvent être difficiles dans la pratique. Si vous rencontrez des difficultés à résoudre un problème lié aux nonces, veuillez nous contacter, nous pourrons vous suggérer de potentielles solutions.

 

Cet article vous a-t-il été utile ?

Utilisateurs qui ont trouvé cela utile : 4 sur 4

Vous avez d’autres questions ? Envoyer une demande

Commentaires

0 commentaire

Vous devez vous connecter pour laisser un commentaire.