Mineur de bitcoin sur Cuda

Par Jean-Francois Gagnon

 

INTERFACE

Le projet va utiliser le client de référence (bitcoin.exe) pour trouver le hash du dernier bloc publié, obtenir la difficulté (cible), générer un bloc, le publier etc. L'interraction RPC entre le programme CSharp (.NET) et client Bitcoin se fera avec BitcoinLib ou un équivalent.

KERNEL

Le kernel devra prendre un bloc candidat crée par l'interface et calculer son hash. Si le hash est inférieur a la cible, elle devra modifier le champ "nonce" de ce fameux bloc candidat et recalculer le hash et ce, indéfiniment, jusqua se qu'une cible est atteinte (hash < cible). Le bloc candidat change a chaque x secondes car le bloc candidat doit contenir le timestamp et a chaque ~10 minutes (quelqu'un a publié un bloc et le champ "bloc précédent" doit référencer le nouveau bloc publié).

RAPPORT

Considérant que personne ne connais les bitcoins, le rapport fera une petite synthèse pour comprendrel eprocessus

OPTIONS

Selon l'avancement du projet, le mineur pourrais: Inclure les transactions reçu par le client et/ou se faire en multi-machine (master slave sur plusieurs ordinateurs).