Meine Transaktionen stecken irgendwie fest!

Ich habe diese Transaktion über json-rpc mit meinem geth-Knoten mit der Methode eth_sendTransaction und den folgenden Parametern an testnet gesendet:

"from": "0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d",
"to": "0x90e8682b63d7922a3e942d4bbd4c88095634a17b",
"value": "0xf4240"

// 0xf4240 = 1 Million Wei, 1 Babbage

Das Geth-Knotenprotokoll empfängt die TX wie hier gezeigt:

I0915 08:29:03.639166 eth/api.go:1193] Tx(0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9) to: 0x90e8682b63d7922a3e942d4bbd4c88095634a17b

Aber die Transaktion verbreitet sich nicht über das Testnet ...

Vor zwei Tagen wurde genau dieselbe Transaktion (gleich von, bis und Wert, aber offensichtlich nicht der gleiche txHash) im Ethereum-Testnetz in weniger als 20 Sekunden akzeptiert (gemined). Heute scheint jede Transaktion, die ich gesendet habe, ins Stocken geraten zu sein.

Der der Transaktion zugewiesene txHash ist 0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9. Auf Etherscan gibt es keine Informationen darüber: https://testnet.etherscan.io/tx/0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9

Wenn ich den Knoten mit der Methode eth_getTransactionByHash nach dem tx abfrage, ist dies das Ergebnis:

        [blockHash] => 0x0000000000000000000000000000000000000000000000000000000000000000
        [blockNumber] => 
        [from] => 0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d
        [gas] => 0x15f90
        [gasPrice] => 0x4a817c800
        [hash] => 0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9
        [input] => 0x
        [nonce] => 0x10000e
        [to] => 0x90e8682b63d7922a3e942d4bbd4c88095634a17b
        [transactionIndex] => 
        [value] => 0xf4240

Es scheint, als würde es darauf warten, für immer abgebaut zu werden ...

Wurde diese Transaktion an Testnet übertragen? Wurde es abgebaut? Warum nicht? Wie kann ich den Mining-Status dieser Transaktion verfolgen?

Nach dem Lesen einer ähnlichen Frage Warum werden diese Transaktionen nicht in meinem privaten Netzwerk übertragen? Mir ist klar, dass ich from_account entsperrt habe. Muss ich to_account auch entsperren?

Es scheint, dass Transaktionen auf Nonce 0x100004 hängen geblieben sind. Hier sind die Details des vorherigen TX (Nonce 0x100003) und des TX mit Nonce 0x100004:

eth_getTransactionByHash: ["0x59af3aec8331c407a5a33a58203ee62a89b1efa772806b2c4319c395bb70bdd0"]
Array
(
    [jsonrpc] => 2.0
    [id] => 1
    [result] => Array
        (
            [blockHash] => 0x0aceab7d5e8a1d44efc36dfadabcbe3eaa14de08e7625a3208ca07fac6275014
            [blockNumber] => 0x190dce
            [from] => 0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d
            [gas] => 0x15f90
            [gasPrice] => 0x4a817c800
            [hash] => 0x59af3aec8331c407a5a33a58203ee62a89b1efa772806b2c4319c395bb70bdd0
            [input] => 0x
            [nonce] => 0x100003
            [to] => 0x90e8682b63d7922a3e942d4bbd4c88095634a17b
            [transactionIndex] => 0x0
            [value] => 0x2540be400
        )

)
eth_getTransactionByHash: ["0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b"]
Array
(
    [jsonrpc] => 2.0
    [id] => 1
    [result] => Array
        (
            [blockHash] => 0x0000000000000000000000000000000000000000000000000000000000000000
            [blockNumber] => 
            [from] => 0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d
            [gas] => 0x15f90
            [gasPrice] => 0x4e20
            [hash] => 0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b
            [input] => 0x
            [nonce] => 0x100004
            [to] => 0x90e8682b63d7922a3e942d4bbd4c88095634a17b
            [transactionIndex] => 
            [value] => 0x2540be400
        )

)

Nun, thx für deine Kommentare, denn ich habe es geschafft! Das erneute Senden von tx mit Nonce 0x100004 hat funktioniert und wurde abgebaut. Danke!

Trotzdem weiß ich immer noch nicht, warum tx 0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b hängen geblieben ist ... jeder Hinweis darauf könnte mir sehr helfen. Thx trotzdem!

Antworten (1)

In Ihren Transaktionsinformationen nonceist das 0x10000e, was im Kontext des Testnetzes bedeutet, dass dies die 15. Transaktion ist. Wie auf der Seite des fromKontos zu sehen ist, gab es jedoch nur 4 Transaktionen.

0x100004Die Bergleute werden diese neue Transaktion daher nicht abbauen , bevor Transaktionen mit Nonces 0x10000dauftauchen.

Wie haben Sie diese ausstehende Transaktion erstellt?

Einfach die json-rpc-Methode eth_sendTransaction mit den folgenden Parametern aufrufen: "from": "0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d", "to": "0x90e8682b63d7922a3e942d4bbd4c88095634a17b", "value": "0xf4240"
Ich verstehe also, dass die Transaktion mit Nonce 0x100004 die Ursache für das Feststecken ist, oder? Wie kann ich den Grund finden, warum es nicht bestätigt/abgebaut wurde?
Es ist das Fehlen einer Transaktion mit nonce 0x100004(to 0d), die die Transaktion mit aufhält 0e.
Wenn ich Transaktionen sende, gebe ich die Nonce nicht an, oder? Wer kontrolliert die Nonce? Ich dachte, der Geth-Knoten hat es automatisch getan ...
Ja, Geth macht das angeblich automatisch. Was ist Ihre Geth-Befehlszeile, um es zu starten?
geth --rpc --rpcapi "db,eth,net,web3,personal" --rpcport "8545" --testnet --etherbase "0x47978a69f..."
Ich habe gerade die Details des vorherigen TX (Nonce 0x100003) und des TX mit Nonce 0x100004 oben in der Frage hinzugefügt. Finden Sie etwas falsch?
Minen Sie auch auf Ihrem eigenen Node?
Nein, kein Mining, nur Synchronisierung.
Nun, thx für deine Kommentare, denn ich habe es geschafft! Das erneute Senden von tx mit Nonce 0x100004 hat funktioniert und wurde abgebaut. Danke! Trotzdem weiß ich immer noch nicht, warum tx 0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b hängen geblieben ist ... jeder Hinweis darauf könnte mir sehr helfen. Thx trotzdem!
Vorsicht, wenn Sie genügend Transaktionen senden, um die richtige Nonce zu erreichen, wird diese Transaktion wieder gültig und könnte erneut gesendet werden. Offensichtlich ist es kein großer Betrag, aber wenn es so wäre, könnten Sie Geld verlieren