Qual è il miglior software Python per il mining di Bitcoin?

Questo sarebbe un compito per il quale Python è completamente inadatto.

Il mining di criptovalute, per bitcoin e molte alternative, è attualmente fatto su hardware specializzato (appositamente progettato "circuiti integrati specifici per le applicazioni - ASIC). Il mining è passato attraverso fasi in cui era fattibile sulla CPU, poi su macchine dotate di alcuni tipi di GPU (Graphical Processing Unit), e attraverso una fase in cui è stato fatto su FPGA (Field Programmable Gate Arrays). Ora è passato attraverso un paio di generazioni di design ASIC e cicli di perfezionamento e siamo all'apice di un'altra generazione in questo processo.

7nm ASICs Will Bring Bitcoin Mining to a Whole New Level - Bitcoin News

Nota che 10nm (nanometri) e 7nm sono il limite della tecnologia dei semiconduttori.

Così eseguire il software di mining di base sul tuo desktop o computer generico sarebbe un po' come cercare di guidare un vecchio pick-up Chevy LUV in una gara di Formula 1.

Ci sono un paio di modi per pensare al mining di criptovalute.

Se pensi a questo come a una lotteria allora probabilmente otterrai risultati simili a quelli della tua lotteria. Quasi nessuno mostrerà un guadagno netto sul proprio "investimento".

Oppure puoi pensarla come una gara. Ogni pool di minatori è in gara per sbloccare il prossimo blocco (trovare la collisione di hash parziale, alla regolazione della difficoltà corrente, sul nonce del blocco corrente). I pool coordinano i loro sforzi di hashing per evitare la duplicazione del lavoro (l'intero sistema si basa sulle collisioni parziali di hash come "Proof of Work" - PoW). Se investi nell'hardware giusto, allora stai comprando una macchina da corsa che è abbinata al tipo di gara che stai cercando di eseguire. (Per lo più ci si unisce a un pool e si esegue qualsiasi driver software che coordina il tuo rack (o i tuoi rack) di attrezzature minerarie con i loro sforzi).

Si può correre da soli. Ci sono circa 144 blocchi al giorno. Sono circa un migliaio di gare da correre a settimana. Qualsiasi "vincita" deve coprire il costo del tuo hardware, l'energia per i minatori, l'energia per il tuo raffreddamento, le spese di rete/banda larga, e il tuo tempo e la tua esperienza nell'impostare e mantenere il tutto. I migliori minatori in questo momento stanno andando a circa $6000 (USD) per unità e si dice che gli arretrati per riempire gli ordini siano piuttosto lunghi.

Con tutto questo detto si potrebbe imparare di più sul mining studiando questo codice: jgarzik/pyminer

Come potete vedere questo richiede l'installazione di un bitcoind nativamente compilato (che è generalmente il caso per il software e l'hardware di bitcoin mining - essi agiscono come servizi di elaborazione offload al demone bitcoin e interagiscono attraverso RPC standard (Remote Procedure Calla).

Ovviamente potreste cercare di ottimizzare questo codice, usando vari moduli aggiuntivi per Python, come l'interfaccia gmpy2 per le librerie matematiche GNU mulitpreciaon, PyCUDA (e l'hardware GPU appropriato), e Cython per esempio.

In tutti questi casi dovreste discernere un tema. State ripercorrendo passi già ben battuti dal resto dell'industria (ma iniziando fuori dai sentieri battuti usando Python per farlo). Può essere divertente, o educativo, o entrambi. Ma è improbabile che sia finanziariamente gratificante.