¿Cómo salen las transacciones del grupo de memoria?

¿Cómo sabe mi cliente central de bitcoin cuándo eliminar una transacción del grupo de memoria?

¿Es tan simple como un período específico de tiempo?

Respuestas (3)

A partir de Bitcoin Core 0.14.0, estas son las formas en que una transacción puede salir del mempool:

  • La transacción se incluyó en un bloque.
  • La transacción o uno de sus ancestros no confirmados entra en conflicto con una transacción que se incluyó en un bloque.
  • La transacción fue reemplazada por una versión más nueva (ver BIP 125 ).
  • La transacción estaba en la parte inferior del mempool (ordenado por tarifa por tamaño), el mempool había alcanzado su límite de tamaño (ver la -maxmempoolopción) y se aceptó una nueva transacción con una tarifa más alta, desalojando la parte inferior.
  • La transacción expiró por tiempo de espera (por defecto 14 días después de ingresar).

Además, las transacciones que han salido del mempool siempre pueden volver a entrar. Por ejemplo, cuando son parte de la billetera local y se retransmiten, o cuando se reciben nuevamente a través de la red. El desalojo no implica que se cancele una transacción.

Desde Bitcoin Core 0.14.0, el mempool se guarda en el disco, por lo que persiste entre reinicios. En versiones anteriores, un reinicio también daría como resultado un mempool borrado.

¿Cómo se puede cambiar el tiempo de espera?
Usando -mempoolexpiry=N con N en horas.
Creo que el tiempo de espera predeterminado para las transacciones se ha incrementado a 14 días, ¿verdad?
@Murch Parece que desde 0.14, son 14 días, según este comentario de reddit .
@murch ¿El tx desalojado (o eliminado) por tiempo de espera volverá a entrar en mempool?
@zono: Sí, si son retransmitidos y superan el minRelayTxFee que requieres para transacciones.

No hay un tiempo de caducidad fijo para cada nodo, pero la configuración predeterminada es de 72 horas.

https://bitcoin.stackexchange.com/a/43165/24926

En mi caso particular (transacción no transmitida no confirmada en el grupo de memoria de bitcoin core 0.14.1), la única forma de eliminar esa transacción era eliminar mempool.dat después de cerrar la billetera.

Por lo tanto, eliminar mempool.dat obliga efectivamente a las transacciones a abandonar el grupo de memoria.