Une séquence de transactions d’ondulation peut-elle avoir des lacunes?

ThePiachu

Une séquence de transactions d’ondulation peut-elle avoir des lacunes?


Je me demande si une transaction Ripple avec un numéro de séquence qui est expédiée sur quelques numéros du numéro de séquence précédent est acceptée comme transaction valide dans le réseau Ripple?

Par exemple, si j’ai un paiement Tx avec la séquence 123, et que je veux ensuite créer une autre transaction avec une séquence 200, est-ce qu’il passera?

De plus, je comprends que les numéros de séquence de transaction ne peuvent pas être décroissants, donc je ne pouvais pas soumettre un Tx avec une séquence de 100. Est-ce correct?

Réponses


 dchapes

Pour qu’une transaction soit traitée, elle doit utiliser le tout prochain numéro de séquence disponible (tel que renvoyé par account_info ).

Si une transaction signée par ailleurs valide a un numéro de séquence trop petit (correspondant à un numéro de séquence précédemment utilisé), alors la transaction est garantie de ne jamais être valide et produira une erreur et devrait être rejetée par les serveurs qui la reçoivent.

Si une transaction signée par ailleurs valide utilise un numéro de séquence (actuellement) trop élevé, alors la transaction n’est pas actuellement valide et produira une erreur mais la transaction peut devenir valide (et un serveur peut conserver et tenter automatiquement d’appliquer la transaction à ce moment-là ). De même, tout ce qui a vu la transaction signée pourrait la rejouer une fois que les numéros de séquence « manquants » sur le compte sont utilisés. Ces transactions sont appelées en vol et leur résultat est indéterminé jusqu’à ce que le compte ait une transaction avec ce numéro de séquence inclus dans un grand livre entièrement validé (éventuellement une transaction sans OP juste pour consommer / avancer le numéro de séquence) ou ledger validé avec une séquence de ledger au moins aussi élevée que la LastLedgerSequence spécifiée dans la transaction signée est vue.

Depuis https://ripple.com/wiki/Transactions#Use_as_a_NOP :

Lorsque plusieurs transactions doivent encore être finalisées (connues pour être en vol) et qu’une erreur locale se produit de sorte qu’il y a des transactions suivantes en vol, les transactions suivantes échouent temporairement jusqu’à ce que le numéro de séquence utilisé par l’échec local soit consommé. Une transaction est en cours si elle n’a pas été incluse dans un grand livre entièrement validé, mais n’est pas non plus garantie.

Les transactions en vol peuvent être rejouées ultérieurement par quiconque les possède. Il est important pour la prévisibilité et la fiabilité de consommer le numéro de séquence de la mauvaise transaction et de rejouer les transactions en vol jusqu’à ce qu’elles soient finalisées.

Et sur https://ripple.com/wiki/Transactions#Basic_Transaction_Format :

LastLedgerSequence (facultatif)

Numéro de livre valide le plus élevé dans lequel une transaction peut apparaître. Si cela est spécifié et que la transaction n’est pas incluse au moment où le livre atteint le numéro de séquence de livre spécifié, alors la transaction est considérée comme ayant échoué et ne sera plus valide.

Plus précisément,

Par exemple, si j’ai un paiement Tx avec la séquence 123, et que je veux ensuite créer une autre transaction avec une séquence 200, est-ce qu’il passera?

Pas avant que les transactions avec les séquences 124 à 199 ne soient terminées. Jusque-là, les serveurs signaleront une erreur « numéro de séquence manquant » sur ces transactions. Jusqu’à ce qu’une transaction avec la séquence 200 soit appliquée à votre compte, vous ne pouvez pas savoir que quelque part quelque part ne soumettra pas à nouveau votre « ancienne » transaction de paiement signée au moment où ils verront votre transaction de séquence 199 (c’est-à-dire même si vous obtenez une erreur, la transaction pourrait être appliqué ultérieurement).

De plus, je comprends que les numéros de séquence de transaction ne peuvent pas être décroissants, donc je ne pouvais pas soumettre un Tx avec une séquence de 100.

Une telle transaction obtiendra toujours une erreur « numéro de séquence passé » et ne sera jamais valide.

 

#(une, #de, avoir, d’ondulation, des, lacunes, peut-elle, Séquence, transactions

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *