¿Ponemos todas las transacciones en el grupo de memoria?

Me pregunto si las transacciones huérfanas también se almacenan en el grupo de memoria. En caso afirmativo, ¿cómo distingue el cliente de Bitcoin entre las transacciones huérfanas y no huérfanas?

Respuestas (2)

Bitcoin Core mantiene un grupo huérfano separado, con transacciones cuyos padres faltan. Su objetivo principal es tratar con pares que nos envían grupos de transacciones independientes en el orden incorrecto, por lo que este grupo no necesita ser grande.

Desde Bitcoin Core v0.13.0, todas las transacciones enviadas a pares se envían en lotes y dentro de esos lotes en orden de dependencia. Esto redujo enormemente el tamaño promedio de los grupos huérfanos en la red (de cientos a solo unos pocos).

Gracias, arreglé el medio conocimiento gastado en mi publicación.

Transacción huérfana

Las "transacciones huérfanas" son transacciones para las que falta un padre y, por lo tanto, al menos una entrada desconocida para el nodo. Esto puede suceder cuando un nodo recibe transacciones en el orden incorrecto o cuando el padre se gastó dos veces y, por lo tanto, una de las entradas de esta nueva transacción nunca se manifestará. Hasta que se cumplan los requisitos previos para la transacción, dicha transacción parecería esencialmente inválida, ya que el nodo reconocerá que la transacción está gastando dinero que el nodo desconoce. El mempool no almacena transacciones huérfanas, pero las recopila en un grupo huérfano separado en caso de que el padre aún sea retransmitido.

Bloque huérfano

Un bloque huérfano es aquel cuyo padre es desconocido para el nodo. Esto podría suceder en versiones anteriores de Bitcoin, cuando un bloque posterior se transmitía a su nodo antes de recibir el principal, por ejemplo, durante la sincronización. Creo que los nodos mantendrían bloques huérfanos al menos hasta que pudieran estar seguros de que no es parte de la cadena más larga (es decir, se sincronizaron hasta la altura del bloque huérfano).

Bloque obsoleto

De vez en cuando, hay una horquilla de cadena cuando dos mineros descubren bloques a la misma altura. Una vez que uno de los dos bloques en competencia obtiene un sucesor, el otro bloque se convertirá en parte de una "punta de cadena obsoleta". Generalmente, los nodos solo consideran válido un bloque a la misma altura y, por lo tanto, ignoran las confirmaciones en bloques paralelos a la misma altura. Las transacciones que solo fueron confirmadas en uno de los dos bloques a la misma altura se considerarán no confirmadas en el otro bloque. Los nodos considerarán que el segundo bloque que reciben a la misma altura no forma parte de la cadena más larga y solo lo conservarán para poder seguir una posible reorganización.

Entonces, me temo que no tengo idea de qué problema cree que puede haber para distinguir entre bloques huérfanos y no huérfanos. ;) Y en su mayor parte, lo que probablemente considere "transacciones huérfanas" son transacciones no válidas o transacciones no confirmadas.

En caso de que me esté perdiendo el punto de su pregunta, actualice su publicación y dígame en un comentario.

Por transacción huérfana me refiero a las transacciones cuyos padres faltan o aún no han llegado. En tal caso, el nodo tiene que esperar a que el padre pueda validar la transacción en cuestión. Esto es lo que entendí.