Was bedeutet „Nonce too low“ in einer MetaMask-Transaktion und wie behebe ich das?
- Was ist der Nonce in Ethereum-Transaktionen?
- Was bedeutet Nonce too low?
- Wie kommt es zu diesem Fehler?
- Wie kann man den Fehler Nonce too low beheben?
Was ist der Nonce in Ethereum-Transaktionen?
Im Ethereum-Netzwerk ist der Nonce eine fortlaufende Nummer, die jede Transaktion eindeutig identifiziert und die Reihenfolge der Transaktionen eines bestimmten Absenders bestimmt. Jede Transaktion, die von einer Adresse gesendet wird, hat eine eindeutige Nonce, beginnend bei 0 für die allererste Transaktion. Der Nonce sorgt dafür, dass Transaktionen nicht zweimal ausgeführt werden und verhindert somit sogenannte Replay-Attacken.
Was bedeutet Nonce too low?
Die Fehlermeldung Nonce too low erscheint, wenn eine Transaktion einen Nonce-Wert verwendet, der bereits vom Netzwerk verarbeitet oder erwartet wurde. Mit anderen Worten: Der Nonce der neuen Transaktion liegt hinter dem aktuellen Transaktionszähler der Adresse zurück. Dies passiert oft, wenn MetaMask versucht, eine Transaktion mit einem Nonce zu senden, der schon für eine erfolgreiche Transaktion verwendet wurde oder wenn vorhergehende Transaktionen im Netzwerk noch nicht bestätigt wurden oder MetaMask die aktuelle Nonce-Werte nicht korrekt synchronisiert hat.
Wie kommt es zu diesem Fehler?
Dieser Fehler kann entstehen, wenn man mehrere Transaktionen manuell mit einem spezifischen Nonce sendet und dabei versehentlich einen zu kleinen Wert verwendet. Auch kann der Fehler auftreten, wenn eine vorhergehende Transaktion im Pool noch nicht bestätigt wurde, MetaMask aber trotzdem eine neue Transaktion mit einem niedrigen Nonce abschickt. Zudem können Netzwerkprobleme oder veraltete Daten im Wallet dazu führen, dass MetaMask den aktuellen Nonce-Wert der Adresse falsch anzeigt.
Wie kann man den Fehler Nonce too low beheben?
Um den Fehler zu beheben, muss man sicherstellen, dass die Nonce der neuen Transaktion korrekt ist – also der nächst höhere Wert als der zuletzt bestätigte Nonce. Zunächst hilft es, den aktuellen Nonce des Accounts bei einem Blockchain-Explorer wie Etherscan nachzusehen. Dort kann man unter der Adresse die zuletzt bestätigte Transaktionsnummer erkennen. Anschließend kann man in MetaMask die manuelle Nonce-Eingabe aktivieren, indem man in den Einstellungen unter Erweiterte Optionen die Benutzerdefinierte Nonce aktivieren einschaltet. Danach gibt man den korrekten Nonce-Wert ein, der größer ist als der höchste bereits bestätigte.
Wenn noch eine vorhergehende Transaktion im Netzwerk hängt (zum Beispiel weil die Gasgebühr zu niedrig war), empfiehlt es sich, diese Transaktion entweder zu beschleunigen oder zu "ersetzen" (durch eine Transaktion mit derselben Nonce und einer höheren Gasgebühr), um den Transaktionspool zu bereinigen. Erst danach lassen sich neue Transaktionen mit höheren Nonce-Werten problemlos senden.
Zusammenfassend ist Nonce too low ein Hinweis darauf, dass der Nonce-Wert der gesendeten Transaktion nicht der korrekten Reihenfolge entspricht. Durch Kontrolle des aktuellen Nonce-Werts und gegebenenfalls manuelles Setzen in MetaMask sowie Bereinigung hängender Transaktionen lässt sich das Problem meist schnell beheben.
