Intenté una simple transferencia de éter entre dos cuentas usando geth, pero fijé un precio de gasolina bastante bajo (2 gwei). Después de dos horas , la transacción aún se mostraba en geth under eth.pendingTransactions
; supuse que esto se debía a la falta de demanda para extraer a ese precio de gas.
Sin embargo, en ese momento revisé ambas cuentas en Etherscan para establecer si la transacción se había transmitido desde mi máquina local. La transacción aparecía como pendiente pero con una antigüedad de tan solo 40 minutos . Aproximadamente diez minutos más tarde, actualicé y la transacción había desaparecido de ambas páginas de Etherscan, pero aún se mostraba en geth. Unos minutos más tarde, la transacción había reaparecido en Etherscan, pero la edad se restableció a 2 minutos . A partir de ese momento, verifiqué de manera intermitente hasta que finalmente se completó la transacción (cuatro horas después del envío), sin dejar Etherscan nuevamente.
Dado que me preocupé durante un breve período de tiempo mientras la transacción había desaparecido, me gustaría comprender un poco mejor el proceso subyacente. Mi entendimiento sería algo como esto:
Sin embargo, mi experiencia actual sugiere que puede no ser tan simple, ya que mi transacción pendiente desapareció y luego reapareció en Etherscan (¿un nodo?). ¿Cuál sería una secuencia de eventos más precisa?
Tengo entendido que su comprensión es correcta, excepto que le falta una propiedad particular del software del nodo Ethereum. Es decir, como parte del n. ° 3, la transacción se almacena en el grupo de transacciones del nodo (cf. Mempool de Bitcoin). Normalmente, las transacciones viven allí hasta que se extraen, pero debido a que las computadoras tienen una memoria y un poder de procesamiento finitos, el grupo de transacciones es, por necesidad, también de un tamaño finito. Las transacciones que no han sido extraídas pueden ser desalojadas de la memoria si el conjunto de transacciones está lleno (supongo que el orden depende de la implementación; presumiblemente, se conservan las transacciones de mayor valor). Por lo tanto, es probable que su transacción haya sido desalojada del grupo de transacciones de Etherscan, pero otro nodo la "recirculó" después de que el grupo de transacciones de Etherscan liberara algo de memoria.
Richard Horrocks