¿Debería corregirse el nonce de transacción uno menos que el recuento de transacciones de la cuenta?

Estoy tratando de resolver el '¿Por qué me "eliminan tx del grupo: bajo tx nonce o sin fondos"?' problema en mi red de prueba privada.

Parece que tengo suficientes fondos, sin embargo, el nonce de transacción rechazada siempre es uno menos que el recuento de transacciones de la dirección de envío:

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

¿El tx nonce y el recuento de transacciones son consistentes aquí?

Si el nonce está indexado a cero, supongo que lo están. Si ese es el caso, no tengo idea de por qué recibo este mensaje de error. Esto me está volviendo loca. ¿Alguien puede ayudar?

¿Es db575481f1d1b626b9a0ee2f2c6946b3f6526cd4 su dirección y está en la red principal? Debido a que no veo ninguna transacción para esa cuenta, el nonce debería ser 0.

Respuestas (2)

Sí, el nonce está indexado a cero. Dado que está indexado a cero y tiene 7 transacciones ejecutadas, significa que el último nonce utilizado fue 6. Entonces, el siguiente válido necesario para que el grupo lo acepte es 7 (es decir, lo mismo que eth.getTransactionCount).

Muchas gracias @Peter. En ese caso, tanto mis fondos como nonce parecen estar bien. ¿Tienes alguna idea de por qué más podrían eliminarse mis transacciones?
En el ejemplo anterior, el nonce de la transacción eliminada es 6, mientras que debería ser 7, según mi explicación.
¿Está insinuando que el recuento de transacciones no debería aumentar si se elimina una transacción, es decir, si no tiene éxito? En referencia a la pregunta, el recuento de transacciones antes de enviar la transacción fallida anterior era de hecho 6 (igual que el nonce). Mi recuento de transacciones aumenta incluso cuando las transacciones se "eliminan".
El recuento de transacciones es el número de transacciones ejecutadas con éxito. (a menos que esté solicitando el recuento de transacciones pendientes, que no está arriba). Entonces, si dice 7, entonces muchas transacciones de la cuenta ya se han incluido en la cadena de bloques.

Este comentario sobre una pregunta similar proporcionó la respuesta para la segunda parte de esta pregunta: ¿por qué se eliminan las transacciones cuando nonce y los fondos son válidos?

Parece que, a pesar de este mensaje de error, mi transacción SÍ se extrae con éxito. Esto se puede comprobar obteniendo el recibo de la transacción supuestamente "eliminada".

FYI: estoy usando geth v1.3.6