Le multipool hanno portato a questo, quindi logico che fino a che siamo su piccole potenze (attualmente sul mio rotate ci siamo io con amici e alcuni utenti del forum, totale circa 10MHs) andare su una rete o un altra cambia relativamente poco... se la cosa fosse pubblica cambierebbe.
Quindi visto che siamo tutti qui per guadagnarci qualcosa, non sono l'utente che fa le cose per far guadagnare altri e perderci, per cui nulla di personale, ma chi vuole farselo e ha le conoscenze, penso lo possa realizzare in modo semplice.
Detto questo, non ho mai avuto nessun problema invece ad aiutare e rispondere, nel possibile, alle domande.
Come già detto qui: https://bitcointalksearch.org/topic/mining-calculator-471502 la formula per calcolare la profittabilità, per le monete scrypt, è la seguente:
Il Block time non influenza la formula, perchè è già contenuto dentro alla formula della difficoltà (che se volete potete cercarla ed approfondirla come conoscenza, ma non serve per fare questo), quindi non va contato due volte.
La difficoltà potete trovarla in vari posti, prima tra tutto nella pool nella quale vorrete minare dalle statitische (nel caso non avessero le API). Visto che comunque se volete minare la moneta XXX dovete iscrivervi sulla pool per XXX... leggete la diff da li.
L'unica cosa non automatica da trovare è il block reward, che soprattutto per alcune monete nuove dimezza troppo in fretta... e quindi bisogna tenerlo aggironato (o ti raddoppia il profittabile).
Detto questo io ho fatto il programma in php\mysql per quel che riguarda la parte di lettura valore da api (sia dei market che dell diff)... ogni 60 secondi fa il giro ed aggiorna tutti i market e le diff, e calcola con la formula di sopra quante monete si fanno con 1 MHS... moltiplicato per il valore in BTC li porto tutti in BTC fatti @1MHs.
A questo punto salvo i valori in database ed un altro programma, sempre in php con il concetto di socket\fork ascolta le connessioni, per ogni connessione crea una fork che in modo autonomo guarda il db, controlla dove minare e mina li... ogni 10 minuti fa questo controllo e se la profittabilità è cambiata manda nuovamente le 2 stringe di autenticazione alla nuova pool (sono le stringhe di comunicazione che fanno i miner verso i server stratum):
{"id": 1, "result": [[["mining.set_difficulty", "b4b6693b72a50c7116db18d6497cac52"], ["mining.notify", "ae6812eb4cd7735a302a8a9dd95cf71f"]], "08000002", 4], "error": null}\n
Per dettagli sul protocollo stratum e le varie stringhe: http://mining.bitcoin.cz/stratum-mining
Poi sicuramente ci sono modi più facili di farlo, ho preferito usare un metodo trasparente e di modifica dei pacchetti cosi perchè in questo modo, direttamente da codice, posso anche modificare il nome con i quali mi presento alla pool (Se nella pool X il nome davvo mi è stato fregato, e mi sono registrato come davvo1, il miner verso il proxy continua a mandare i pacchetti come davvo, il proxy li cambia in davvo1 e li passa alla pool come davvo1... il tutto senza che il miner si accorga di nulla e necessiti di riavvii).