Sollte die korrekte Transaktionsnummer eins weniger als die Anzahl der Kontotransaktionen sein?

Ich versuche, das Problem „Warum werde ich „Tx aus dem Pool entfernt: Low Tx Nonce oder Out of Funds““ zu lösen. Problem auf meinem privaten Testnetz.

Ich scheine genug Geld zu haben, aber die abgelehnte Transaktion ist immer eins weniger als die Transaktionsanzahl der Absenderadresse:

I0427 16:02:49.456986   84576 tx_pool.go:492] removed tx (
    TX(cf149f29fdb9ee3fe4f6b3907d396e8fd5abc832e21ee5453c9702003b5fd62a)
    Contract: false
    From:     db575481f1d1b626b9a0ee2f2c6946b3f6526cd4
    To:       [contract creation]
    Nonce:    6
    GasPrice: 20000000000
    GasLimit  1062420143
    Value:    0
    Data:     0x
    V:        0x1c
    R:        0x7832879e31c8c679779c34f0004a38e3e64848ce9a92757cebb11d792ccb1435
    S:        0x28d0b672e4b904d972d221df2c53250a9884b13142a63c9be193537557b241ea
    Hex:      f852068504a817c800843f533eaf8080801ca07832879e31c8c679779c34f0004a38e3e64848ce9a92757cebb11d792ccb1435a028d0b672e4b904d972d221df2c53250a9884b13142a63c9be193537557b241ea
) from pool: low tx nonce or out of funds



> eth.getTransactionCount("db575481f1d1b626b9a0ee2f2c6946b3f6526cd4") 
7
> eth.getBalance("db575481f1d1b626b9a0ee2f2c6946b3f6526cd4");
7.4699999999999996e+21

Ist die tx-Nonce und die Transaktionsanzahl hier konsistent?

Wenn die Nonce null indiziert ist, dann denke ich, dass sie es sind. Wenn das der Fall ist, habe ich keine Ahnung, warum ich diese Fehlermeldung erhalte. Das macht mich verrückt. Kann jemand helfen?

Ist db575481f1d1b626b9a0ee2f2c6946b3f6526cd4 Ihre Adresse und sind Sie im Hauptnetz? Da ich keine Transaktionen für dieses Konto sehe, sollte die Nonce 0 sein.

Antworten (2)

Ja, die Nonce ist nullindiziert. Da es null indiziert ist und Sie 7 ausgeführte Transaktionen haben, bedeutet dies, dass die letzte verwendete Nonce 6 war. Die nächste gültige, die der Pool benötigt, um sie zu akzeptieren, ist also 7 (dh dasselbe wie eth.getTransactionCount).

Vielen Dank @Péter. In diesem Fall scheinen sowohl meine Mittel als auch meine Nonce in Ordnung zu sein. Haben Sie eine Idee, warum sonst meine Transaktionen entfernt werden könnten?
Im obigen Beispiel ist die Nonce der entfernten Transaktion 6, während sie laut meiner Erklärung 7 sein sollte.
Wollen Sie andeuten, dass die Transaktionsanzahl nicht steigen sollte, wenn eine Transaktion entfernt wird, dh nicht erfolgreich ist? In Bezug auf die Frage war die Transaktionsanzahl, bevor ich die obige fehlgeschlagene Transaktion eingereicht habe, tatsächlich 6 (die gleiche wie die Nonce). Meine Transaktionszahl steigt, selbst wenn Transaktionen „entfernt“ werden.
Der Transaktionszähler ist die Anzahl der erfolgreich ausgeführten Transaktionen. (es sei denn, Sie fordern die Anzahl der ausstehenden Transaktionen an, über die Sie sich nicht befinden). Wenn dort also 7 steht, dann wurden bereits viele Transaktionen des Kontos in die Blockchain aufgenommen.

Dieser Kommentar zu einer ähnlichen Frage lieferte die Antwort für den zweiten Teil dieser Frage - warum Transaktionen entfernt werden, wenn Nonce und Guthaben gültig sind?

Es scheint, dass meine Transaktion trotz dieser Fehlermeldung erfolgreich abgebaut wird. Dies kann überprüft werden, indem der Transaktionsbeleg für die angeblich „entfernte“ Transaktion abgerufen wird.

FYI: Ich verwende Geth v1.3.6