¡Mis transacciones están un poco atascadas!

Envié esta transacción a testnet a través de json-rpc con mi nodo geth usando el método eth_sendTransaction y los siguientes parámetros:

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

// 0xf4240 = 1 millón de wei, 1 babage

El registro del nodo Geth recibe el tx como se muestra aquí:

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

Pero la transacción no se propaga a través de testnet...

Hace dos días, esta misma transacción (mismo desde, hasta y valor, pero obviamente no el mismo txHash) fue aceptada (extraída) en la red de prueba de Ethereum en menos de 20 segundos. Hoy, cada transacción que envié parece estancarse.

El txHash asignado a la transacción es 0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9. En etherscan no hay información al respecto: https://testnet.etherscan.io/tx/0x2dac8edc68d40f2b09e2f06d455c51ea6f29a6199eeeccbff8b946f5c2e330d9

Cuando consulto el nodo sobre el tx con el método eth_getTransactionByHash, este es el resultado:

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

Parece que está esperando ser extraído para siempre...

¿Se ha transmitido esta transacción a testnet? ¿Ha sido minado? ¿Por qué no? ¿Cómo puedo rastrear el estado de minería de esta transacción?

Después de leer una pregunta similar ¿ Por qué estas transacciones no se transmiten en mi red privada? Me doy cuenta de que he desbloqueado from_account. ¿Tengo que desbloquear to_account también?

Parece que las transacciones se atascaron en nonce 0x100004. Aquí están los detalles del tx anterior (nonce 0x100003) y el tx con 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
        )

)

Bueno, gracias por sus comentarios, ¡porque lo hice! Reenviar tx con nonce 0x100004 funcionó y se extrajo. ¡Gracias!

Sin embargo, todavía no sé por qué tx 0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b se atascó ... cualquier pista sobre esto me podría ayudar mucho. ¡Gracias de todos modos!

Respuestas (1)

En la información de su transacción, el noncees 0x10000e, que, en el contexto de la red de prueba, significa que esta es la transacción número 15. Sin embargo, como se ve en la página de la fromcuenta , solo ha habido 4 transacciones.

Por lo tanto, los mineros no extraerán esta nueva transacción antes de que aparezcan transacciones con 0x100004nonces 0x10000d.

¿Cómo creaste esta transacción pendiente?

Simplemente llame al método json-rpc eth_sendTransaction con los siguientes parámetros: "from": "0x3b877e80b5c0b29d88f3768ed4292b35fdd93a9d", "to": "0x90e8682b63d7922a3e942d4bbd4c88095634a17b", "value": "0xf4240"
Entonces, entiendo que la transacción con nonce 0x100004 está siendo la causa del atasco, ¿verdad? ¿Cómo puedo encontrar el motivo por el cual no ha sido confirmado/minado?
Es la ausencia de una transacción con nonce 0x100004(to 0d) lo que retrasa la transacción con 0e.
Cuando envío transacciones no especifico el nonce, ¿debería hacerlo? ¿Quién controla el nonce? Pensé que el nodo geth lo hizo automáticamente...
Sí, supuestamente Geth lo está haciendo automáticamente. ¿Cuál es su línea de comando Geth para iniciarlo?
geth --rpc --rpcapi "db,eth,net,web3,personal" --rpcport "8545" --testnet --etherbase "0x47978a69f..."
Acabo de agregar los detalles del tx anterior (nonce 0x100003) y el tx con nonce 0x100004 arriba en la pregunta. ¿Encuentras algo malo?
¿También estás minando en tu propio nodo?
No, sin minería, solo sincronización.
Bueno, gracias por sus comentarios, ¡porque lo hice! Reenviar tx con nonce 0x100004 funcionó y se extrajo. ¡Gracias! Sin embargo, todavía no sé por qué tx 0x824eeda61dba30c107400a5ab43dffa8408aae7f925f530699f69c94ed0c008b se atascó ... cualquier pista sobre esto me podría ayudar mucho. ¡Gracias de todos modos!
Cuidado, si envía suficientes transacciones para llegar al nonce correcto, esa transacción volverá a ser válida y podría volver a enviarse. Obviamente no es una gran cantidad, pero si lo fuera, podrías perder dinero.