Wird der Transaktions-Hash nach dem Gaspreis verwendet, um ausstehende Transaktionen zu priorisieren?

Als ich mir den Status ICO von der Seitenlinie aus ansah, bemerkte ich, dass sobald die Transaktionen mit mehr als 50 Gwei als Gaspreis gelöscht wurden, die durch den Vertrag genehmigten Transaktionen alle einen Hash hatten, der bei 0x00 begann … und der Hex-Wert langsam zunahm.

Hier ist ein Beispiel: https://etherscan.io/tx/0x00785cad03de2e353f16f7efcc5a06c356dced3807fa52d293886cba3bc8214f

Mir ist auch aufgefallen, dass die Leute sagen, dass sie in der Lage sind, Transaktionen durchzubringen, indem sie den Preis und das Gaslimit ändern, um neue Rohtransaktionen zu generieren. Sie berichten, dass es nach 10 oder 15 Versuchen "funktioniert". Es hört sich so an, als ob das nötig wäre, um am Anfang des Hashs eine Null zu erhalten.

Ich habe ein schnelles Python-Skript geschrieben, um meine Theorie zu bestätigen, ich habe einen TX mit einem Hash generiert, der bei 0x000 beginnt, und er wurde in weniger als einer Minute mit einem Gaspreis von 50 Gwei abgebaut.

Kann jemand meine Theorie bestätigen, dass der TX-Hash das nächste Kriterium nach dem Gaspreis ist?

Antworten (2)

In Parity ist der Hash ein Element für die Sortierkriterien, wie Sie hier sehen können: https://github.com/paritytech/parity/blob/1aaafa2d11b42af6be97754f4bc06e2856904464/ethcore/src/miner/transaction_queue.rs#L179

Theoretisch kann also der Hash die Reihenfolge entscheiden, wenn die vorherige Reihenfolge im Vergleich zu "gleich" ist. Miner können jedoch benutzerdefinierte Algorithmen für die Bestellung von Transaktionen ausführen und tun dies wahrscheinlich auch.

Um sich selbst oder ihren Kunden zu helfen, wurde berichtet, dass Miner bei hoher Nachfrage ein byzantinisches Verhalten bei der Bestellung von Transaktionen haben.

Sie sagen nicht, welchen Client Sie verwenden, und der Fall für Parity wurde bereits erwähnt. Beachten Sie auch, dass die Paritätsreihenfolge in der Befehlszeile mit der folgenden Option geändert werden kann:

--tx-queue-strategy S          Prioritization strategy used to order transactions
                                 in the queue. S may be:
                                 gas - Prioritize txs with low gas limit;
                                 gas_price - Prioritize txs with high gas price;
                                 gas_factor - Prioritize txs using gas price
                                 and gas limit ratio (default: gas_price).

Für Geth wird die Reihenfolge in der folgenden vorherigen Frage erklärt:

Was ist die Standardreihenfolge von Transaktionen während des Minings, zB in Geth?

Kurz gesagt, der Geth-Client sortiert nach der folgenden Methode:

// This method first sorts and separates the list of transactions into individual
// sender accounts and sorts them by nonce. After the account nonce ordering is
// satisfied, the results are merged back together by price, always comparing only
// the head transaction from each account. This is done via a heap to keep it fast

Ich kann im Code nicht sofort erkennen, dass der Hash beteiligt ist, aber vielleicht möchten Sie die Codezeiger in diesem vorherigen Thread verwenden, um weiter herumzustöbern.


Aber um die vorherige Antwort zu wiederholen, Sie haben keine wirkliche Möglichkeit zu wissen, wie die Miner es tun, weil sie ihre Algorithmen nach Belieben optimieren können.