Ist es möglich, eine Transaktion zu stornieren?

Ist es möglich, eine Transaktion zu stornieren, nachdem sie gesendet wurde, aber bevor sie abgebaut wurde?

Dies kann beim Senden einer fehlerhaften Transaktion mit ungültigen Daten nützlich sein.

Beachten Sie, dass Sie im Durchschnitt weniger als 30 Sekunden haben, bevor die Transaktion abgebaut wird, also fangen Sie den Fehler besser ziemlich schnell ab
Wie kann ich die Nonce bei einer neuen Transaktion ändern?
Wenn Sie eine neue Frage haben, stellen Sie diese bitte, indem Sie auf die Schaltfläche „ Frage stellen“ klicken . Fügen Sie einen Link zu dieser Frage hinzu, wenn dies hilfreich ist, um den Kontext bereitzustellen. - Aus Bewertung

Antworten (4)

Es kann nicht storniert werden, aber es kann "ausgegast" werden. Sie können sich die Nonce schnappen (zu finden auf dem ausstehenden tx auf Etherscan) und eine weitere Transaktion mit einem höheren Gaspreis mit derselben Nonce senden . Wenn Sie eine andere Nonce verwenden, können beide abgebaut werden, aber wenn Sie dieselbe Nonce verwenden, kann nur eine abgebaut werden. Wenn Miner beides sehen, sollten sie schlau genug sein, sich für den Tx mit dem höheren Gaspreis zu entscheiden.

Wie machst Du das? könnten Sie Codebeispiele bereitstellen?
Wie finden Sie eine bestehende Transaktion und aktualisieren die Nonce?
Okay, aber wie storniere ich dann die Transaktion mit dem niedrigeren Gaspreis? Es scheint, dass es im Mempool hängen geblieben ist.

Es ist zwar nicht möglich, eine Transaktion explizit zu stornieren, aber Sie können die Transaktion ungültig machen , bevor sie abgebaut wird. Dies funktioniert, indem dieselbe Transaktion mit derselben Nonce übertragen wird, jedoch mit einer höheren Gasgebühr. Die Miner werden dazu animiert, Transaktionen mit höheren Gebühren abzuwickeln. Wenn sie die neuere Transaktion verarbeiten, wird die alte Transaktion ungültig und daher abgelehnt.

Es ist auch möglich, dass die Gasgebühr in der ursprünglichen Transaktion zu niedrig angesetzt wurde und sie die Transaktion nach einiger Zeit ablehnen, aber das ist ziemlich unwahrscheinlich.

Verwandt

Was ist konzeptionell der Unterschied zwischen Stornieren und Ungültigmachen?
Ich sehe das Abbrechen als explizite Aufforderung an das Netzwerk, die Transaktion zu löschen, und das Ungültigmachen als Workaround für diese Einschränkung.
Stornierung (Atomizität) vs. Kompensation (Workflow). In der Buchhaltung wäre eine Stornierung eine Entschädigung.

Eine ausstehende Transaktion kann storniert werden, indem eine Brieftasche verwendet wird, die dies unterstützt.

Hier sind zum Beispiel Anweisungen aus dem MetaMask-Wallet mit Diagrammen.

https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-Speed-Up-or-Cancel-a-Pending-Transaction

Klicken Sie auf die Schaltfläche Abbrechen. Die anderen Antworten erklären mehr darüber, was hinter den Kulissen passiert.

Geben Sie hier die Bildbeschreibung ein

Das Team von Blocknative hat einen hervorragenden Beitrag zu stornierten Transaktionen geschrieben, der Ihre Frage beantwortet: https://blog.blocknative.com/blog/canceled-transactions

Folgendes sagen sie über Cancelled TX:

Was sind stornierte Transaktionen?
Bei Ethereum ist eine Cancel-Transaktion ein Versuch, eine derzeit ausstehende Transaktion mit einer neuen Transaktion zu überschreiben. Es ist wichtig zu beachten, dass stornierte Transaktionen eine Konvention und kein Standard sind. Typischerweise hat eine Stornierungstransaktion Folgendes:

  1. Eine identische Nonce,
  2. Von derselben Wallet-Adresse,
  3. Gesendet an ein externes Konto (kein Smart Contract), mit
  4. Mindestens 10 % höhere Gasgebühr,
  5. aber Nullwert, und
  6. Wird signiert und erfolgreich übermittelt, bevor die ursprüngliche Transaktion bestätigt wird.

Der Kern der Idee ist, dass, da Miner Anreize erhalten, Transaktionen mit mehr Gas zu priorisieren, die stornierte Transaktion vor der ursprünglichen Transaktion bestätigt werden sollte – auch wenn sie später in den Mempool aufgenommen wurde. Mit anderen Worten, Cancel-Transaktionen sind so etwas wie probabilistische Mulligans.

Also ja, Sie können eine Cancel TX an das Netzwerk senden, um zu versuchen, eine ausstehende TX ungültig zu machen. Aber nichts ist garantiert. Sobald Sie eine Stornierung eingereicht haben, müssen Sie hoffen, dass sie vor Ihrer ursprünglichen Transaktion abgebaut wird.