Deux transactions: même «de», différent de «à». Que va-t-il se passer?

Sergey Potekhin

Deux transactions: même «de», différent de «à». Que va-t-il se passer?


Imaginons que j’ai deux transactions à peu près identiques – la seule différence est leur champ. La première transaction – A , a 0x1111.... et la seconde – B , a 0x22222.... dans le champ to .

Si je les envoie en même temps – que se passera-t-il? Je vois deux façons différentes:

  1. Le « monde » sera divisé en deux parties: les nœuds, qui ont reçu A dans un premier temps et ceux, qui ont reçu B Donc, selon l’endroit où « notre » mineur est – A ou B sera extrait, 50/50.

  2. Les nœuds Ethereum permettent de remplacer les transactions si elles ne sont pas confirmées. Donc, si une transaction n’est pas encore extraite et que le nœud en reçoit une nouvelle, elle la remplace.

Et la deuxième question. Fixons le gasPrice pour le B deux fois plus grand que pour le A

  1. J’envoie A
  2. Attendre par exemple 2 secondes
  3. envoi B

B t-il des chances de gagner cette course? Je veux dire, existe-t-il une règle comme: « S’il y a une transaction à partir d’une adresse dans le pool tx, mais il y a une autre transaction à partir de la même adresse et c’est plus cher – la première transaction doit être remplacée par la seconde »

Merci d’avance!

Réponses


 Kingmoz

Si je les envoie en même temps – que se passera-t-il?

Un nœud ne remplacera pas les transactions avec le même nonce à moins que le prix du gaz de la nouvelle transaction ne soit supérieur à une certaine valeur ( par défaut: 10%, min: 1% ). Par conséquent, A ou B seront extraits en fonction de la transaction que le mineur a reçue en premier. Notez que la transaction non minée sera supprimée lorsqu’un nœud recevra le bloc miné.

B a-t-il des chances de gagner cette course?

Oui. Account Nonce est utilisé dans Ethereum pour remplacer une transaction qui n’est pas en cours d’extraction. L’envoi d’une transaction avec le même nonce et un prix du gaz plus élevé remplacera l’ancienne. Pour un cas d’utilisation normal, le nonce doit être augmenté de 1 à chaque fois que vous envoyez une transaction, afin qu’un compte puisse envoyer plusieurs transactions en même temps.


 Rob Hitchens B9lab

Ce n’est ni l’une ni l’autre de ces choses.

Les transactions envoyées se retrouvent dans la file d’attente des transactions en attente. Oui, les nœuds du réseau découvrent les transactions en attente en leur temps, certainement pas simultanément, mais cela n’a pas d’importance.

Le processus d’extraction établit un ordre précis pour les transactions qui sont acceptées dans la chaîne. Il peut s’agir de A, puis B ou B puis A. Dans tous les cas, les transactions seront traitées par tous les nœuds dans le même ordre.

Un bloc est un ensemble ordonné de transactions. Une blockchain est un ensemble ordonné de blocs. Par extension, une blockchain est un ensemble ordonné de transactions. Tout le monde traitera les transactions dans la même séquence, tôt ou tard.

J’espère que cela aide.

voler

Ce ne sera jamais A puis B ou B puis A, car la seule différence entre A et B est to et gasPrice . Ce sera toujours A ou B car ils ont le même nonce.

Rob Hitchens B9lab

Je suppose que c’est ce que vous entendiez par « la seule différence ». Déclencher deux transactions avec le même nonce est très inhabituel et ce n’est pas la façon dont j’ai interprété votre question. Le monde ne se divise pas en deux parties. Tout au plus, une réorganisation de chaîne. En fin de compte, l’une de vos transactions est conclue et l’autre est supprimée.

voler

(Remarque: ce n’est pas moi qui ai posé la question) Je faisais juste remarquer que OP impliquait que le nonce était le même, alias tx replacement. Ce n’est pas si étrange si vous essayez d’augmenter le prix de l’essence. Cela arrive tout le temps, Metamask a même une option pour cela.

 

#à, #de, deux, différent?, même, passer, que, se, transactions, va-t-il

 

yahoo

Laisser un commentaire

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