¿Cuál es el punto del parámetro "trabajos limpios" en el protocolo "mining.notify" de Stratum?

A medida que aprendí sobre el protocolo Stratum, que permite que un grupo de minería coordine el trabajo con sus trabajadores, sentí curiosidad por saber qué significa el parámetro "trabajos limpios" en el método mining.notify. Según la especificación: https://en.bitcoin.it/wiki/Stratum_mining_protocol , puede ser verdadero o falso. Lo que no entiendo es por qué sería falso. El wiki dice si es falso, "Si es falso, aún pueden usar el trabajo actual, pero deben pasar al nuevo después de agotar el rango de nonce actual". Mi pregunta es ¿qué razón lógica le daría un grupo a un minero para hacer esto? Supongo que si aparece un nuevo trabajo, significa que alguien en la red ha eliminado el bloque y, por lo tanto, no hay más posibilidades de recompensas. Entonces, ¿por qué un trabajador pierde el tiempo continuando con un trabajo que otra persona ya completó?

Respuestas (1)

Mi pregunta es ¿qué razón lógica le daría un grupo a un minero para hacer esto?

Para poner trabajos en cola para el minero. El servidor podría decirle al minero "aquí hay trabajo para que lo hagas cuando termines en lo que estás trabajando actualmente". Dado que los trabajos no tienen estado y son individualizados (es decir, cada trabajo solo lo realiza ese usuario/trabajador), un servidor podría poner en cola los trabajos para el minero antes de que termine su trabajo actual para evitar el tiempo de inactividad. Mientras no se haya encontrado un nuevo bloque, esto es más rápido que el trabajador que pide otro trabajo cuando termina el actual.

Supongo que si aparece un nuevo trabajo, significa que alguien en la red ha eliminado el bloque y, por lo tanto, no hay más posibilidades de recompensas.

Esa es una mala suposición para hacer. Para un bloque dado, puede haber mucho trabajo nuevo. Se pueden generar nuevas transacciones, ExtraNonce1 se puede incrementar para proporcionar nuevo trabajo, etc.

Entonces, ¿por qué un trabajador pierde el tiempo continuando con un trabajo que otra persona ya completó?

Los trabajos de IIRC son individualizados, por lo que un minero no está haciendo el trabajo que está haciendo otro minero.

Con respecto a "Para un bloque dado, puede haber mucho trabajo nuevo", pero si alguien ya ha extraído el bloque, ¿por qué el grupo de minería continúa extrayendo ese bloque? ¿Debería el grupo moverse hacia bloques que aún no han sido minados?
No necesariamente se ha extraído un nuevo bloque cuando se emite un nuevo trabajo.