Frontrunning verstehen. Warum ist meine Transaktion fehlgeschlagen? (PancakeSwap V2)

Ich mache einige Nachforschungen über Front-Running-Transaktionen. Mein Ziel ist es, einen Token in PancakeSwap im selben Block zu kaufen, in dem Liquidität hinzugefügt wird.

Nehmen wir dieses Token als Beispiel: https://bscscan.com/token/0x195d3576bbf6504d8eac5b614dcb756e32b911d5

Es wurde auf Block https://bscscan.com/block/7699663 gestartet , was eine einzige Transaktion ist, die 20 BNB LP auf dem PancakeSwap V2 Router hinzufügt ( https://bscscan.com/tx/0x48b3b3b9dafcaff0f77e4c40abd80afcc47a20b19db23d9dc96a9ff326446a8c ).

Ich habe diese Transaktion als Auslöser für meine Swap-Order (nur 0,01 BNB, 10 gwei) https://bscscan.com/tx/0xa66fbba13749cbd3005957d257da22e5afb07cfc007fe790976cda284a64c1f0 verwendet , die fehlschlug. Ich möchte verstehen, warum.

Vielleicht habe ich meine Bestellung zu früh aufgegeben, aber das ist das Ziel, oder? Wie soll ich abschätzen, wann ich dann bestellen soll?

Ich kann auch denken, dass das Problem der Benzinpreis war. Mein Gaspreis betrug 10 Gwei und der TX, der die Liquidität hinzufügte, hatte einen Preis von 5 Gwei. Bedeutet dies, dass meine tx zuerst verarbeitet wird und daher fehlschlägt, weil noch nicht genügend Liquidität vorhanden ist?

Wenn diese Erklärung richtig ist, würde diese Transaktion mit dem gleichen Gaspreis wie die Liquidität (oder vielleicht 1 Gwei weniger?) Garantieren, dass sie verarbeitet wird? Was wäre der beste Weg, um einen guten Kompromiss zwischen Geschwindigkeit und Erfolgsquote zu erreichen?

Aus diesem kleinen Experiment kann ich mir vorstellen, dass das Erkennen einer ausstehenden Transaktion (mit einem niedrigen oder durchschnittlichen Gaspreis) und das anschließende Einreichen eines äquivalenten Swaps mit x2-3 Gaspreis wahrscheinlich dazu führen wird, dass meine Transaktion zuerst verarbeitet wird, oder?

Ist das nicht ein sehr wichtiger Fehler von DEX? wie kann man dieses problem lösen?

Danke!

Antworten (3)

Es gibt keine vordefinierte Reihenfolge für Transaktionen in einem Block. Die einzige Anforderung besteht darin, dass Transaktionen von derselben Adresse nach der Nonce der Transaktion sortiert werden, Transaktionen von verschiedenen Adressen können jedoch in beliebiger Reihenfolge erfolgen.

In Ethereum sortieren Mainnet-Miner nach Gaspreis, weil sie eine größere Belohnung erhalten. Aber es ist nicht immer der Fall, suchen Sie nach „Miner Extractable Value“ und dem Flashbot-Projekt, manchmal erhalten Miner eine größere Belohnung, indem sie eine Gruppe von Transaktionen einschließen.

Leider kenne ich keine Lösung, die in einem PoA-Netzwerk wie BSC funktioniert.

Die Transaktion scheiterte, weil sie aufgrund des höheren Gaspreises und der Lage im selben Block ausgeführt wurde, bevor die Liquidität hinzugefügt wurde. Ich habe die Nonce mit der Blockposition verwechselt.

Es ist ein Gasproblem, wenn es sich im selben Block befindet, muss der Gaspreis derselbe sein, wenn Sie die Liquiditätstransaktion erfolgreich zurückführen möchten. Die Sache ist, sobald Sie sich im selben Block mit demselben Gaspreis befinden, dann ist es so Die Reihenfolge ist ziemlich lässig, die meisten Leute verwenden Verträge, die viele Transaktionen gleichzeitig senden, sodass viele Transaktionen in den Block eingehen, an dem Sie interessiert sind, und sie eine höhere Chance haben, die erste Transaktion nach der Liquidität im Block zu sein. Aber wie schafft man es, mit einer einzigen Transaktion in denselben Block einzutreten? (Das heißt, Sie lösen nur 1 Transaktion aus, oder?)