2017-10-04 1 views
0

Ich habe Vertragsmethode mit sehr niedrigem Gaspreis ausgeführt - 1 gwei (Transaktion A).Gibt es in Ethereum eine Transaktionswarteschlange für eine einzelne Brieftasche?

Danach schickte ich einige eth auf mehrere Brieftaschen aus dem gleichen Konto (Transaktion B).

Als Ergebnis wird der Zustand der Transaktion A war pending für etwa 12 Stunden, bis es wegen des Gaspreises abgebaut wurde. Und ich fand, dass die Transaktionen B zum Stillstand gebracht wurden, bis die Transaktion A abgebaut wurde (sie waren auch pending).

Alle Transaktionen wurden von der gleichen Brieftasche über MyEthereWallet gesendet.

Wie ich verstehe, Transaktionen werden absolut unabhängig ausgeführt. Dann, warum Transaktionen B wo nur nach A A gewonnen? Oder gibt es eine globale Transaktionswarteschlange für jede Brieftasche und Transaktionen werden in der Reihenfolge abgebaut, in der sie zum System gehen?

Antwort

0

Ich habe die Antwort here gefunden. Wenn kurz, ja, gibt es eine Art Warteschlange. Transaktionen werden in der Reihenfolge ausgeführt, in der sie im Ethereum-Netzwerk veröffentlicht sind.


Ein bisschen mehr Detail. Jedes Konto hat eine Eigenschaft namens nonce. Es enthält die Anzahl der Transaktionen, die aus dem Konto gesendet wurden.

Nächste. Jede Transaktion, die per Konto gesendet wird, hat mehrere Eigenschaften. Einer von ihnen ist nonce des Kontos, der die Transaktion gesendet hat.

Bevor die Ausführung der Transaktionen auf Gültigkeit überprüft wird - sie sollten eine gültige Unterschrift haben, genug Gas und gültig nonce - sollte es gleich dem aktuellen nonce des Konto des Absenders sein.

Nach Prüfung auf Gültigkeit wird die Transaktion ausgeführt. Nach erfolgreicher Transaktionsausführung wird die Nonce des Kontos erhöht.

Zum Beispiel unser Konto des nonce ist 100. Wir veröffentlichen zwei Transaktionen mit nonce 100 und 101. Die zweite Transaktion mit nonce 101 nicht gültig ist, bis die erste Transaktion abgeschlossen ist und Konto des nonce erhöht (und werden 101).

Verwandte Themen