Esta sería una tarea para la cual Python es completamente inadecuado.
La minería de criptomonedas, para bitcoin y muchas alternativas, se realiza actualmente en hardware especializado (circuitos integrados de aplicación específica diseñados especialmente para “ASIC”). La minería pasó por fases cuando era factible en su CPU, luego en máquinas equipadas con ciertos tipos de GPU (Unidades de Procesos Gráficos), y a través de una fase en la que se realizó en FOGA (Matrices de puertas programables de campo). 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 ASIC de 7nm llevarán la minería de Bitcoin a un nivel completamente nuevo
- ¿Qué software de monitoreo está disponible en el mercado para rastrear las actividades de los empleados?
- ¿Cuántos tipos de pruebas de software hay?
- ¿Cuál es el mejor extractor de CD para reproductores de audio universal plug and play?
- ¿Qué software usa John Green para las animaciones en sus videos de Crash Course?
- Cuando está instalando un programa, ¿realmente lo está compilando?
Tenga en cuenta que 10 nm (nanómetro) y 7 nm son lo último en tecnología de semiconductores.
Entonces, ejecutar el software de minería central en su computadora de escritorio o de uso 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 formas de pensar en la minería de criptomonedas.
Si lo considera una lotería, probablemente obtendrá resultados similares a los resultados de la lotería. Casi nadie mostrará una ganancia neta en su “inversión”.
O puedes pensarlo como una carrera. Cada grupo de minería está en una carrera para desbloquear el siguiente bloque (encuentre la colisión de hash parcial, en el ajuste de dificultad actual, en el nonce del bloque actual). Los grupos coordinan sus esfuerzos de hash para evitar la duplicación de trabajo (todo el sistema se basa en colisiones de hash parciales como una “Prueba de trabajo” – PoW). Si invierte en el hardware adecuado, está comprando un auto de carreras que coincide con el tipo de carrera que está tratando de correr. (En su mayoría, se uniría a un grupo y ejecutaría los controladores de software que coordinen sus bastidores de equipos de minería con sus esfuerzos).
Puedes correr solo. Hay alrededor de 144 bloques por día. Eso es alrededor de mil carreras por semana. Cualquier “ganancia” debe cubrir los gatos de su hardware, energía para los mineros, energía para su enfriamiento, tarifas de red / ancho de banda y su tiempo y experiencia para configurarlo y mantenerlo. Los mineros de primera línea ahora no tienen un costo aproximado de $ 6000 (USD) por unidad y, según los informes, los retrasos en el llenado de pedidos son bastante largos.
Dicho todo esto, puedes aprender más sobre minería estudiando este código: jgarzik / pyminer
Como puede ver, esto requiere la instalación de un bitcoind de compilación nativa (que generalmente es el caso del software y hardware de minería de bitcoin; actúan como servicios de procesamiento de descarga para el demonio bitcoin e interactúan a través de RPC estándar (Calla de procedimiento remoto).
Por supuesto, podría intentar optimizar este código, utilizando varios módulos adicionales para Python, como la interfaz gmpy2 a las bibliotecas de matemática de GNU mulitpreciaon, PyCUDA (y el hardware de GPU apropiado) y Cython, por ejemplo.
En todos estos casos, debe discernir un tema. Estás volviendo sobre los pasos ya pisados por el resto de la industria (pero comienzas fuera de lo común al usar Python para hacerlo). Puede ser entretenido, educativo o ambos. Pero es poco probable que sea financieramente productivo.