Bitcoin Forum
May 11, 2024, 11:31:40 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they strongly believe that the creator of this topic is a scammer. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: [1]
  Print  
Author Topic: Annuler une transaction sur un token Ethereum...  (Read 147 times)
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 08, 2018, 09:09:39 AM
Last edit: January 08, 2018, 09:33:53 AM by Coin++
 #1

Soit une transaction 1 sur la blockchain Ethereum, concernant un token Ethereum plus exactement, bloquée dans la mempool pour insuffisance de fees j'imagine (transaction 1).
J'ai lu que pour annuler cette transaction bloquée dans la mempool Ethereum, il fallait créer une nouvelle transaction vers l'adresse Ethereum de départ (la sienne donc), d'un montant de 0 ETH et chargée en GAS à un bon prix (GWEI) : c'est la transaction 2.
J'imagine que cela ne fait que annuler la transaction 1 et que, ensuite, il faut refaire la transaction d'origine avec plus de GAS et GWEI : c'est la transaction 3.

Je comprends bien que la transaction d'annulation (transaction 2) sera minée avant la transaction 1 car son montant de fees ne la bloquera pas dans la mempool. Mais je ne comprends pas pourquoi cette transaction 2 annulerai la transaction 1... Pourquoi se virer à soi-même 0 ETH devrait annuler la transaction d'origine ?

Si une bonne âme veux bien m'expliquer...  

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
1715427101
Hero Member
*
Offline Offline

Posts: 1715427101

View Profile Personal Message (Offline)

Ignore
1715427101
Reply with quote  #2

1715427101
Report to moderator
1715427101
Hero Member
*
Offline Offline

Posts: 1715427101

View Profile Personal Message (Offline)

Ignore
1715427101
Reply with quote  #2

1715427101
Report to moderator
The block chain is the main innovation of Bitcoin. It is the first distributed timestamping system.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715427101
Hero Member
*
Offline Offline

Posts: 1715427101

View Profile Personal Message (Offline)

Ignore
1715427101
Reply with quote  #2

1715427101
Report to moderator
1715427101
Hero Member
*
Offline Offline

Posts: 1715427101

View Profile Personal Message (Offline)

Ignore
1715427101
Reply with quote  #2

1715427101
Report to moderator
Asone
Member
**
Offline Offline

Activity: 109
Merit: 11


View Profile
January 08, 2018, 10:09:23 AM
 #2

Soit une transaction 1 sur la blockchain Ethereum, concernant un token Ethereum plus exactement, bloquée dans la mempool pour insuffisance de fees j'imagine (transaction 1).
J'ai lu que pour annuler cette transaction bloquée dans la mempool Ethereum, il fallait créer une nouvelle transaction vers l'adresse Ethereum de départ (la sienne donc), d'un montant de 0 ETH et chargée en GAS à un bon prix (GWEI) : c'est la transaction 2.
J'imagine que cela ne fait que annuler la transaction 1 et que, ensuite, il faut refaire la transaction d'origine avec plus de GAS et GWEI : c'est la transaction 3.

Je comprends bien que la transaction d'annulation (transaction 2) sera minée avant la transaction 1 car son montant de fees ne la bloquera pas dans la mempool. Mais je ne comprends pas pourquoi cette transaction 2 annulerai la transaction 1... Pourquoi se virer à soi-même 0 ETH devrait annuler la transaction d'origine ?

Si une bonne âme veux bien m'expliquer...  

Il me semble que pour ça il faut que tu donnes le même nonce que la transaction précédente.

Ce qu'il va se passer en faisant cela c'est que les noeuds lorsqu'ils vont enregistrer la transaction 2 en premier, enregistreront normalement le nonce de la transaction. Lorsque la transaction 1 sera traitée à son tour, le nonce ayant déjà utilisée, la transaction 1 sera rejetée automatiquement.

Que quelqu'un me corrige si j'ai tort, mais il me semble que c'est la logique qui est derrière cela.
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 08, 2018, 10:49:42 AM
 #3

Effectivement, sur cette source https://myetherwallet.github.io/knowledge-base/transactions/check-status-of-ethereum-transaction.html, je lis, au sujet de l'annulation d'une transaction :
Quote
The easiest way to do this is by sending a 0 ETH transaction to your own address with the same nonce and higher gas price. This will "cancel" your first transaction.

Pour ce qui est nonce, en voici la définition :
Quote
In Ethereum, every transaction has a nonce. The nonce is the number of transactions sent from a given address.

Each time you send a transaction, the nonce increases by 1. There are rules about what transactions are valid transactions and the nonce is used to enforce some of these rules. Specifically:

    Transactions must be in Order: You cannot have a transaction with a nonce of 1 mined before one with a nonce of 0.

    No Skipping! You cannot have a transaction with a nonce of 2 mined if you have not already sent transactions with a nonce of 1 and 0.

J'avais vu cette histoire de nonce, mais à force de voire des hash de transaction, je pensais que ce nombre entier ne pouvais pas identifier ma transaction : en fait, c'est simplement le compteur de transactions sur mon adresse.

Merci donc Asone pour ta réponse qui m'a permis de ne pas m"arrêter à ce nombre entier.

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
Saint-loup
Legendary
*
Offline Offline

Activity: 2604
Merit: 2354



View Profile
January 08, 2018, 01:25:26 PM
 #4

Ce qu'il faudrait savoir maintenant c'est comment modifier ce nonce.
Ou en tous cas attribuer le nonce d'une transaction precedente à une nouvelle...

██
██
██
██
██
██
██
██
██
██
██
██
██
... LIVECASINO.io    Play Live Games with up to 20% cashback!...██
██
██
██
██
██
██
██
██
██
██
██
██
Asone
Member
**
Offline Offline

Activity: 109
Merit: 11


View Profile
January 08, 2018, 01:40:48 PM
 #5

Ce qu'il faudrait savoir maintenant c'est comment modifier ce nonce.
Ou en tous cas attribuer le nonce d'une transaction precedente à une nouvelle...

Tu dois pouvoir le faire sur MeW. Avant d'envoyer une transaction, MeW t'affiche en général le json qui va être envoyé, en regardant dans les champs du json je suis presque persuadé qu'on y trouvera le fameux nonce.
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 08, 2018, 02:23:26 PM
Last edit: January 08, 2018, 03:35:57 PM by Coin++
 #6

Ce qu'il faudrait savoir maintenant c'est comment modifier ce nonce.
Ou en tous cas attribuer le nonce d'une transaction precedente à une nouvelle...
Dans MEW, les champs sont pré-remplis.
Par contre, il y a un soucis avec les unités :
La gaz limite est fixée à 21000 et le prix du gaz est fixé à 41000000000 gwei...
Je pense qu'il y a un facteur 1000 sur la gaz limite, mais même en comptant 21 au lieu de 21000, cela fait 861 ETH.
En appliquant le même facteur correctif sur le prix du gaz en comptant 41000000 au lieu de 41000000000, cela fait tout de même 0,861 ETH, ce qui enlève tout l'intérêt de l'annulation de la transaction dans la majorité des cas.

Je trouve que le système Ethereum est vraiment peu soucieux de ses utilisateurs en jouant ainsi avec des facteurs 1000 un peu partout : il est clair que cela ne peux que aboutir à de nombreuses erreurs.

Au final, je n'ai aucune certitude quand au montant des frais pour cette transaction.

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 08, 2018, 08:23:09 PM
 #7

Ce qu'il faudrait savoir maintenant c'est comment modifier ce nonce.
Ou en tous cas attribuer le nonce d'une transaction precedente à une nouvelle...
Dans MEW, les champs sont pré-remplis.
Par contre, il y a un soucis avec les unités :
La gaz limite est fixée à 21000 et le prix du gaz est fixé à 41000000000 gwei...
Je pense qu'il y a un facteur 1000 sur la gaz limite, mais même en comptant 21 au lieu de 21000, cela fait 861 ETH.
En appliquant le même facteur correctif sur le prix du gaz en comptant 41000000 au lieu de 41000000000, cela fait tout de même 0,861 ETH, ce qui enlève tout l'intérêt de l'annulation de la transaction dans la majorité des cas.

Je trouve que le système Ethereum est vraiment peu soucieux de ses utilisateurs en jouant ainsi avec des facteurs 1000 un peu partout : il est clair que cela ne peux que aboutir à de nombreuses erreurs.

Au final, je n'ai aucune certitude quand au montant des frais pour cette transaction.
Bon, je corrige, selon mes dernières déductions :

En fait, il ne s'agirait pas de 41000000000 gwei, mais de 41000000000 wei, soit 41 gwei (giga wei, soit 10^9).
Donc la transaction coûterai au final 0.00086 ETH, soit 0,83 €.
Pas simple de s'y retrouver quand on fait 1 transaction occasionnellement : je plains madame Michu.

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 08, 2018, 08:54:38 PM
 #8

Je continue et ce sera la conclusion de mon feuilleton, en espérant que cela puisse être utile à d'autres dans le futur.

La procédure d'annulation d'une transaction fonctionne donc parfaitement et c'est bien une annulation (car même nonce), par un rajout de fees : il faudra donc refaire la transaction d'origine si elle est toujours d'actualité (en augmentant les fees si c'était cela la cause de son blocage dans la mempool.

Oui, les frais sont exactement ce que j'avais déduis dans mon post précédent : 0,000861 ETH (il y a d'ailleurs un ultime message de confirmation dans MEW où ils sont marqués en clair, mais je ne m'étais pas risqué jusque là).

Merci à ceux qui auront contribués à ce topic.

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
Coin++ (OP)
Sr. Member
****
Offline Offline

Activity: 810
Merit: 444


View Profile
January 09, 2018, 10:25:33 AM
Last edit: January 09, 2018, 07:07:12 PM by Coin++
 #9

Petit mémo pour les débutants tout de même au sujet des transactions de token sur la blockchain Ethereum.

Le système de fees est vraiment pervers sur Ethereum et je comprends maintenant pourquoi je vois si souvent des transactions avec des fees si élevées, bien plus que ce que l'état de la mempool demande : les gens ont trop souvent des problèmes avec ces transactions et veulent "assurer le coup", quitte à payer 10 fois ce qui serait nécessaire en fees de transactions.
La perversion avec les smarts contracts sur lesquels sont adossés les tokens Ethereum réside que dans les fees, vous devez payer à la fois les fees pour la blockchain Ethereum et ceux pour l'exécution du smart contract : le problème, c'est que vous ne pouvez pas régler les fees pour chacune de ces tâches indépendamment, donc la blockchain Ethereum se sert en premier (la transaction est effectuée sur la blockchain Ethereum) en prenant tous les fees qu'elle souhaite et il n'en reste au final pas suffisament pour l'éxécution du smart contract, donc au final vos tokens ne sont pas transférés et vous perdez vos fees car vous devez recommencer...

Pourriture d'Ethereum !!!

My favorite faucets to earn real free bitcoins/satoshis : Moon BitCoin and Bit Fun.
You want some free AltCoins ? It's here : BCH (Bitcoin Cash) Moon BitCoinCash - DASH (Dash) Moon Dash - DOGE (DogeCoin) Moon DogeCoin - LTC (LiteCoin) Moon LiteCoin.
You want some free LBC (Lbry Credits) ? My LBC invite : Lbry.tv - LBC (Lbry Credits).
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!