Mineur de bitcoin sur Cuda
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).