Cuál es el mejor software de minería de Bitcoin en Python?

Esta sería una tarea para la que Python es completamente inadecuado.

La minería de criptomonedas, para bitcoin y muchas alternativas, se realiza actualmente en hardware especializado (especialmente diseñado "circuitos integrados de aplicación específica - ASICs). La minería pasó por fases en las que era factible en tu CPU, luego en máquinas equipadas con ciertos tipos de GPU (Unidades de Procesamiento Gráfico), y por una fase en la que se hizo en FPGAs (Field Programmable Gate Arrays). Ahora ha pasado por un par de generaciones de diseños ASIC y ciclos de refinamiento y estamos en la cúspide de otra generación en ese proceso.

Los ASICs de 7nm llevarán la minería de Bitcoin a un nivel completamente nuevo - Bitcoin News

Nótese que los 10nm (nanómetros) y los 7nm son la vanguardia en tecnología de semiconductores.

Así que ejecutar el software de minería principal en su ordenador de sobremesa o de propósito general sería un poco como tratar de conducir una vieja camioneta Chevy LUV en una carrera de Fórmula 1.

Hay un par de maneras de pensar en la minería para cryptocurrency.

Si usted piensa en ello como una lotería, entonces probablemente obtendrá resultados similares a los de la lotería. Casi nadie mostrará una ganancia neta en su "inversión"

O puede pensar en ello como una carrera. Cada pool de minería está en una carrera para desbloquear el siguiente bloque (encontrar la colisión parcial de hash, en el ajuste de dificultad actual, en el nonce del bloque actual). Los pools coordinan sus esfuerzos de hash para evitar la duplicación de trabajo (todo el sistema se basa en las colisiones parciales de hash como "Prueba de Trabajo" - PoW). Si inviertes en el hardware adecuado, estás comprando un coche de carreras que se ajusta al tipo de carrera que quieres correr. (Principalmente te unirías a un pool y ejecutarías cualquier controlador de software que coordine tu(s) bastidor(s) de equipo de minería con sus esfuerzos).

Puedes correr en solitario. Hay unos 144 bloques por día. Eso es alrededor de mil carreras para correr por semana. Cualquier "ganancia" tiene que cubrir el coste de su hardware, la energía para los mineros, la energía para su refrigeración, las tarifas de red/ancho de banda, y su tiempo y experiencia en la configuración de todo y su mantenimiento. Los mineros de gama alta ahora mismo cuestan unos 6.000 dólares (USD) por unidad y, según se informa, los retrasos en el cumplimiento de los pedidos son bastante largos.

Con todo esto dicho podrías aprender más sobre la minería estudiando este código: jgarzik/pyminer

Como puedes ver esto requiere la instalación de un bitcoind que compila nativamente (que es generalmente el caso para el software y hardware de minería de bitcoin - actúan como servicios de procesamiento de descarga al demonio de bitcoin e interactúan a través de RPCs estándar (Remote Procedure Calla).

Por supuesto, podrías intentar optimizar este código, utilizando varios módulos adicionales para Python, como la interfaz gmpy2 para las bibliotecas matemáticas GNU mulitpreciativas, PyCUDA (y el hardware GPU apropiado), y Cython, por ejemplo.

En todos estos casos deberías discernir un tema. Estás volviendo sobre pasos ya bien recorridos por el resto de la industria (pero comenzando fuera del camino trillado al usar Python para hacerlo). Puede ser entretenido, o educativo, o ambas cosas. Pero es poco probable que sea económicamente gratificante.