Protocolos para uso entre clientes de minería y servidores de grupos de minería

¿Qué protocolos existen para que los clientes de minería se comuniquen con los servidores de grupos de minería? ¿Cómo se comparan?

Respuestas (2)

Estrato: el servidor le da al cliente plantillas que el cliente puede usar para generar su propio trabajo. Solo se incluyen el encabezado del bloque y la primera transacción (transacción de generación). Stratum utiliza el menor ancho de banda de todos los protocolos. Stratum también hace que sea muy rápido y eficiente cambiar a nuevos datos de trabajo cuando hay un cambio de bloque, lo que puede ayudar a mantener baja la tasa de rechazo causada por el trabajo obsoleto. A diferencia de los otros protocolos, no es HTTP, por lo que no funcionará con un proxy HTTP. No hay una especificación real. Hay un documento que explica las funciones principales y, para el resto, debe leer el código fuente del "proxy de minería de estrato" y/o publicaciones antiguas en bitcointalk.org.

GBT (getblocktemplate): el servidor proporciona al cliente plantillas que el cliente puede utilizar para generar su propio trabajo. El cliente recibe datos de bloque completo y (si el servidor y el cliente lo admiten) esto permite que el cliente modifique el bloque. Por ejemplo, el minero podría elegir qué transacciones incluir en un bloque. Debido a estas características, GBT necesita transferir más datos que Stratum, por lo que el uso de ancho de banda es mayor. Estas funciones aún no se admiten en ninguna parte, que yo sepa. GBT está bien documentado a través de especificaciones detalladas.

Getwork simple: la forma en que se hacía la minería originalmente. El servidor le da al cliente un encabezado de bloque sin transacciones ni ninguna forma de modificar el bloque, excepto por el valor de nonce. El cliente está limitado a probar todos los valores nonce posibles y luego deberá solicitar más trabajo al servidor. Esto provoca un uso masivo de ancho de banda para el hardware de minería moderno. Al igual que Stratum, no le da al minero ningún control sobre lo que se extrae. Obtienes lo peor de ambos mundos.

getwork con extensión rollntime: permite al cliente una forma limitada de generar trabajo modificando la marca de tiempo en el encabezado del bloque. Si procesa 10 rangos nonce por segundo (42,9 Ghps), querrá solicitar 10 encabezados de bloque del servidor. A medida que pasa cada segundo, actualiza la marca de tiempo en esos encabezados de bloque, lo que le permite reutilizar el mismo trabajo para el siguiente segundo. El uso del ancho de banda aumenta con el hashrate. 429 Ghps requerirían 100 pequeños intercambios de solicitud y respuesta con el servidor para obtener suficiente trabajo después de cada cambio de bloque. Compare con GBT, donde el uso de ancho de banda aumenta con el tamaño de las transacciones (un gran intercambio de solicitud-respuesta por cambio de bloque). Cuál usa menos ancho de banda depende de su tasa de hash (getwork) y el tamaño del bloque que está procesando (GBT).

TL; DR: getwork es la forma antigua. La extensión rollntime le devolvió algo de vida, pero no escalará a medida que los dispositivos de minería se vuelvan más rápidos. Hay dos nuevos protocolos para mejorar la minería: Stratum, que se enfoca en el uso de ancho de banda bajo, y GBT, que se enfoca en permitir que el minero controle lo que sucede en un bloque.

Hay dos protocolos principales, getwork y Stratum. Hay una muy buena comparación en la página de introducción de Stratum . Algunos mineros también pueden usar Get Block Template (GBT) , que les permite agrupar la mina y elegir su propio contenido de transacción. No muchos grupos admiten esto, eligiendo ofrecer solo Stratum en su lugar.