Debug.log: ¿Cómo analizo una transacción huérfana?

El debug.log para mi máquina enumera la siguiente información durante la sincronización

ERROR: FetchInputs() : 5b5e32cc97 mempool Tx prev not found e99babf87a
stored orphan tx 5b5e32cc97 (mapsz 414)
received: tx (227 bytes)
ERROR: FetchInputs() : 93ce7eee97 mempool Tx prev not found 8d56e0b192
stored orphan tx 93ce7eee97 (mapsz 415)
received: tx (259 bytes)
ERROR: FetchInputs() : 7baab3c99a mempool Tx prev not found 2ca8483584
stored orphan tx 7baab3c99a (mapsz 416)
sending: addr (181 bytes)
Flushing wallet.dat
Flushed 12367 addresses to peers.dat  62ms
Flushed wallet.dat 5335ms
  • ¿Es correcto decir que las transacciones huérfanas se agregaron a la cadena, pero fueron reemplazadas por otro bloque?

  • ¿Se replican las transacciones huérfanas a mi cliente cuando descargo la cadena?

  • ¿Cómo puedo saber si el tx huérfano alguna vez se convirtió en un bloque? (¿el # permanecería igual?)

  • ¿Qué es mapszy cuándo es importante?

Respuestas (1)

Una transacción huérfana es una transacción que consume una moneda cuya transacción de creación no es conocida por su cliente. Esto no tiene nada que ver con los bloques huérfanos (que son bloques cuyo bloque padre no se conoce, o según otra definición, bloques que ya no forman parte de la mejor cadena).

Las transacciones huérfanas no forman parte de un bloque (no se pueden verificar hasta que se conozcan sus padres, y solo se permiten transacciones válidas en bloques) y se mantienen en la memoria del cliente. Cuando se conocen sus padres y se los encuentra válidos, se mueven al grupo de memoria (que, como sugiere el nombre, también se mantiene solo en la memoria). A partir de ahí, se consideran incluidos en nuevos bloques (si está minando).

Esta pieza de debug.log le dice que hay 3 transacciones recibidas (transacciones separadas, que no forman parte de un bloque) que hacen referencia a algunas entradas que no se conocen. Debido a esto, se almacenan en el grupo de huérfanos, que crece como resultado de eso. "mapsz" significa "tamaño del mapa" (ya que los huérfanos se almacenan en un mapa); el número es solo el número de huérfanos recordados.