Incluir transacciones en un bloque - reglas y tiempo / aspecto técnico

Tengo una duda sobre el bloque y las transacciones incluidas en el siguiente bloque que está resuelta.

Supongamos teóricamente que hay un bloque resuelto recién propagado.

Y ahora hay: tx0 y tx1: no incluidos en el bloque propagado con un tiempo de transacción anterior al bloque resuelto.

Tx2 – que se propagó 10 segundos después de resolver el bloque anterior

Tx3 - que se propagó 60 segundos después de resolver el bloque anterior

¿Los mineros toman solo Tx0 y tx1, hacen hash y comienzan a minar (ya tienen hash de esos) o (supongo que este no es el caso) están agregando esos tx2 y tx3 que se propagaron en esta ventana de "10 minutos"?

Presumiblemente, tendrían que comenzar de nuevo, pero significaría que cuando el minero recibe información sobre el nuevo bloque que fue resuelto por otro minero deja de funcionar, coloca todo el bloque de formulario de transacción que estaba resolviendo, todas las transacciones en el grupo (tx0 y tx1 en mi ejemplo), verifique qué transacción ya está en el bloque resuelto, toma todo el recordatorio de que tx hace hash y comienza a resolver. ¿Es eso correcto?

Entonces, básicamente, mi pregunta es, ¿el siguiente bloque incluye solo aquellas transacciones que se propagaron ANTES de resolver el bloque actual y DESPUÉS de que los mineros comenzaran a encontrar el bloque actual (entonces en esta "ventana de 10 minutos" o hay algunas otras reglas? Traté de encontrar solución en documentos pero sin éxito (si alguien conoce alguna fuente, se lo agradecería)

Atentamente

Respuestas (2)

No hay reglas reales, per se, solo varias optimizaciones.

Los ASIC son rápidos . Pueden quemar los 2^32 nonces posibles para un bloque dado en segundos, lo que requiere que los mineros usen el campo nonce adicional en la transacción de coinbase para generar un nuevo encabezado de bloque (ya que alterar la transacción de coinbase cambia la raíz de merkle) e intentar de nuevo.

Este proceso se puede realizar en paralelo: un minero puede preparar el encabezado del bloque N+1 cambiando el nonce adicional en la transacción de la base de monedas mientras verifica los valores de 2^32 nonce del encabezado del bloque N.

De manera similar, la selección de transacciones también se puede hacer en paralelo: se puede crear una nueva plantilla de bloque mientras un minero está operando en la anterior, y el encabezado de bloque de la nueva plantilla se puede usar simplemente cuando el minero cambia la anterior después de agotar el nonce. espacio (a menos que encuentren un bloque válido, en cuyo caso la plantilla debe actualizarse nuevamente).

Esto es lo que hacen la mayoría de los grupos de minería: la generación de plantillas de bloques se realiza en paralelo por el grupo de minería, y pasan continuamente plantillas de bloques actualizadas a todos sus mineros. Esto les permite incluir rápidamente transacciones de alta tarifa en bloques potenciales y al mismo tiempo garantizar que estén buscando una solución en todo momento.

Realmente no hay ningún "comenzar de nuevo" en la minería, porque la minería es efectivamente libre de progreso, como una lotería y a diferencia de una carrera. No se pierde nada al actualizar la lista de transacciones, aparte de la insignificante cantidad de procesamiento necesario para crear la nueva lista y el ancho de banda para comunicarla.

El minero incluirá las transacciones adicionales cada vez que lo necesite, generalmente en un par de segundos, con la demora simplemente procesando por lotes para ahorrar ancho de banda y CPU al enviar datos de bloque actualizados a su hardware.