Technologies Web Crypto-monnaie

[Dossier] Ethereum Partie 2 - Le minage

Quand on parle cryptomonnaie, généralement le mot "minage" n'est jamais bien loin. Dans cette seconde partie du dossier consacré à l'Ethereum, je vais expliquer comment peut-on miner de cette monnaie, et participer à la sécurisation de la Blockchain.

Qu'est ce que le minage ?

Le minage, c'est tout simplement le procédé qui permet à la Blockchain de s'assurer qu'un nouveau bloc peut bien être ajouté à la chaîne. A l'aide de calculs complexes, les personnes laissant tourner des logiciels de minage s'assurent que la Blockchain respecte un consensus de règles, tout en étant légèrement rétribué en éther pour leurs actions.

[Dossier] Ethereum Partie 2 - Le minage 2

Minage en action... Pas très optimisé cependant.

C'est le modèle du Proof of Work (Preuve de Travail), actuellement utilisé par Ethereum et Bitcoin, mais qui pose le problème de la consommation énergétique. Pour faire tourner Bitcoin, il faut actuellement la même quantité d'énergie annuelle que l'Irlande. C'est donc la raison pour laquelle Ethereum veut passer en Proof of Stake (Preuve d'Enjeux), rendant cette partie du dossier obsolète même si ce n'est pas pour tout de suite. Pour plus d'informations sur les différents types de preuves, la page Wikipédia est très bien faite, bien qu'un peu technique encore une fois.

Pourquoi miner ?

En premier lieu, si vous pensiez vous faire de l'argent avec le minage, cela va être très compliqué. Le minage est très peu voire pas rentable, car il faut changer régulièrement d'équipement (qui coûte cher), et payer une facture d'électricité astronomique tous les mois. Donc à moins d'avoir déjà une station avec les dernières cartes graphiques du marché achetées moitié prix et de ne pas payer son électricité, il vous faut oublier l'idée de se faire un SMIC mensuel tout de suite. C'est possible, mais l'investissement de départ est très conséquent et nécessitera une longue période pour devenir rentable.

La principale raison pour laquelle miner, c'est pour participer au réseau et à sa sécurité. Le léger gain d'éther n'est finalement là que pour éviter que personne ne vienne, car plus il y aura de mineurs, plus sécurisée la chaîne sera.

Matériel requis

Pour miner il vous faudra un ordinateur, pas forcément avec un gros processeur, mais surtout une (ou plusieurs) grosse(s) carte(s) graphique(s), si possible parmi les plus récentes et les moins consommatrices en énergie (évitez cependant les GTX 1080 pour des raisons évoquées plus loin). Dans le cas d'Ethereum, les outils spéciaux que certains utilisent pour le minage Bitcoin tels que les ASICs ne fonctionnent pas, donc faites attention, uniquement des cartes graphiques d'NVIDIA ou AMD avec au moins 2 Go de RAM graphique dédiée.

[Dossier] Ethereum Partie 2 - Le minage 1

Voilà un exemple de station de minage performante... Mais onéreuse !

Il vous faudra aussi une adresse Ethereum, un porte-monnaie qui contiendra les éthers que vous recevrez en minant. Vous pouvez vous en faire un facilement sur myetherwallet.com. Attention, ne perdez pas l'adresse qui vous sera générée ainsi que votre mot de passe / clé privée. Si vous perdez l'un ou l'autre il vous sera impossible de récupérer le contenu ! Une adresse Ethereum est sous la forme : 0x727AF3dFc5642171D481d511B1Ce6D0D5486c615 Petite astuce, cette adresse est ensuite valable partout sur tous les sites / applications utilisant l’éther et demandant une adresse, c'est en quelque sorte votre empreinte.

En groupe ou seul ?

Le minage est une opération qui peut prendre énormément de temps pour recevoir des récompense si l'on mine seul avec peu de puissance de calcul. Certains mineurs se regroupent dans des "pools", pour assurer des revenus plus réguliers, mais moins importants (au final c'est équivalent à miner seul). C'est à votre bon vouloir. L'installation est cependant généralement plus simple via une pool, et vous aurez des résultats plus rapidement. Cependant certaines pools ont des restrictions en termes de puissance ou de payout (paiement) minimal, en plus d'avoir un "impôt".

Personnellement je me suis installé chez Nanopool.org, c'est une bonne pool qui a un payout automatique de 0.2 éther, sans inscription obligatoire, un bon suivi, un bon tutoriel si vous cherchez des optimisations, ainsi qu'un taux d'imposition de 1%. Il existe plein de pools différentes, mais dans l'idéal je vous conseille d'éviter Dwarfpool. Pas parce qu'ils posent des problèmes, mais parce qu'ils atteignent presque 50% des mineurs de la Blockchain, ce qui leur permettraient d'en prendre le contrôle.

Ici je présenterais donc que le minage via Nanopool, mais sachez qu'il existe des procédures pour miner directement sur son adresse.

Logiciel utilisé (Windows)

Il vous faut le logiciel ethminer, gratuit, ainsi que ses librairies utilisées comme OpenCL (contenues dans l'archive). Il suffit de dézipper le dossier quelque part et le tour est joué ! Par contre tel quel le logiciel n'est pas configuré et minera dans le vide, ou ne minera pas tout court. Il faut lui passer des arguments pour qu'il fonctionne correctement. Pour cela, faites un fichier .bat (dans le même dossier que l’exécutable !) à l'aide d'un logiciel comme Notepad++. Dans ce fichier rentrez ces lignes de code :

setx GPU_FORCE_64BIT_PTR 0
setx GPU_MAX_HEAP_SIZE 100
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
setx GPU_SINGLE_ALLOC_PERCENT 100
ethminer.exe -F http://eth1.nanopool.org:8888/0x727AF3dFc5642171D481d511B1Ce6D0D5486c615/Fixe -U --farm-recheck 1000

Les trois premières lignes servent à préparer la carte graphique au minage. Les quatrième et cinquième lignes indiquent le pourcentage de la carte graphique que vous allez utiliser, sachant que si vous mettez 100% sur toutes vos cartes graphiques vous ne pourrez plus vous servir de votre ordinateur pour faire autre chose.

La sixième ligne (la plus importante, les autres sont en fait optionnelles) permet de lancer le programme avec des arguments. -F indique que l'on va miner (farmer), ensuite vient l'adresse de minage à laquelle reviendront les éthers, en l'occurrence il s'agit de mon adresse de payement accolée à celle de Nanopool pour recevoir les éthers (http://eth1.nanopool.org:8888/). A la fin de l'adresse se trouve le nom (optionnel) de la machine qui mine. Cela permet de miner avec plusieurs machines sur la même adresse pour bien les différencier. -U indique que l'on va utiliser une carte graphique et --farm-recheck 1000 permet de dire à quel intervalle (en millisecondes) s'affichera le taux de hachage.

Une fois le fichier enregistré, il suffit de lancer le .bat et normalement (si la fenêtre ne se ferme pas instantanément), vous allez générer la DAG file. Cela peut prendre plusieurs minutes la première fois. Une fois l'opération terminée, si tout s'est bien passé vous verrez un message s'afficher toutes les secondes vous donnant quel bloc vous êtes en train de miner et à quelle vitesse, victoire ! Ensuite, il suffit simplement de laisser tourner le logiciel pour qu'il trouve de temps en temps des solutions aux équations utilisées. A chaque fois qu'il trouve une solution il la soumet, et si elle est acceptée vous être rétribués de quelques microéthers.

[Dossier] Ethereum Partie 2 - Le minage

Voilà un de mes résultats d'une nuit de minage sur Nanopool.

Optimisations possibles

  • Le système décrit ici est minimal, il y a quantités de choses pour bien optimiser votre taux de hachage, le Saint Graal des mineurs. Pour vous donner un ordre d'idée, si l'on veut espérer gagner 0.02 éther (soit ~20 centimes actuellement), il vous faudra un taux de 5 Mh/s pendant une journée. Avec une GTX 660 je mine en moyenne à 8-9 Mh/s, et au vu de sa consommation il est heureux que je paye pas l'électricité ni Internet !

  • Pour augmenter votre taux de hachage, vous pouvez déjà prendre des cartes graphiques plus récentes (évitez les GTX 1080, à cause d'une gestion de la mémoire différente leur taux tombe à 0.1 Mh/s). Pour trouver la bonne carte graphique (meilleur rapport prix / rentabilité), vous pouvez vous servir de sites comme cryptocompare qui donnent des comparaisons pour beaucoup de GPU, mais la plupart du temps il faut chercher !

  • Mettez à jour vos drivers, mais pas forcément avec les dernières versions. Allez chercher des articles sur le net pour trouver le bon driver qui optimisera un maximum votre taux. Certains drivers sont clairement à éviter, et il faut parfois enlever certaines options comme les SLI si vous avez plusieurs cartes sur lesquelles vous voulez miner en même temps, car sinon elles sont considérées comme une seule (utile pour le jeu mais pas pour le minage).

  • Modifiez votre fichier de lancement. Actuellement il est minimal, et pas forcément adapté à votre configuration. Vous pouvez passer comme argument --help à ethminer (ou chercher sur internet) pour avoir la liste des commandes disponibles, cela vous aidera certainement à gagner quelques % de hachage.

  • Évitez le minage via processeurs seulement, c'est horriblement lent (on atteint même pas le Mh/s). Essayez de ne pas miner sous Windows si vous voulez le faire sérieusement. C'est beaucoup plus complexe à installer sous Linux (ethminer et drivers de carte graphiques dédiés), mais vous gagnerez quelques Mh facilement.

  • Essayez aussi de ne pas utiliser des écrans en même temps que le minage. Ce n'est pas très compliqué, il suffit de se connecter en SSH via un autre ordinateur pour surveiller de temps en temps.

Mais surtout, il vous faut chercher des optimisations sur Internet. Allez voir du côté d'ethereum-france, ils ont des tutoriels plus complets et des indications d'optimisations pour AMD ou NVIDIA.

[Dossier] Ethereum Partie 2 - Le minage 3

Juste pour rigoler voilà les stats du premier mineur de Nanopool, juste 1000x plus que moi...

Conclusion

Le minage est quelque chose de complexe, et bien que les ressources demandées par Ethereum sont moins importantes que pour le Bitcoin, il faut cependant réfléchir correctement avant de se lancer dans l'aventure. Car en plus d'être assez onéreux à mettre en place et à maintenir, il faut prendre en compte que cela ne durera pas éternellement, le modèle de minage changeant dans quelques temps (durée encore indéterminée). Mais si vous pouvez vous le permettre, pourquoi pas !

Partie 1 : Une évolution du Bitcoin Partie 3 : The DAO, un échec utile
  • Etienne Andrieu

    dimanche 14 janvier

    @Christophedlr Alors c'est une erreur assez courante, les GTX 1080 et 1080 TI (notez la nuance) n'ont pas le même hashrate. Une 1080 normale est environ 40% moins puissante que la TI, à cause d'une gestion de la VRAM différente. A sa sortie, le hashrate de la 1080 classique sous Windows 10 était encore inférieur (à peine 5 Mh/s), à cause de Windows, cela a été patch depuis. Cet article à aussi été écrit avant la sortie de la 1080 TI. Pour plus d'informations (en anglais) : http://1stminingrig.com/nvidia-geforce-gtx-1080-mining-performance-review/ Quand à Nanopool, je pense qu'ils ont un système de calcul de hashrate différent de ce qui est indiqué sur des mineurs comme ethminer, car avec une 1080Ti j'ai effectivement marqué 32 MH/s du côté de ethminer, pour 52 MH/s sur Nanopool.

  • Christophedlr

    vendredi 12 janvier

    Merci pour cet article, cependant petite remarque : ça fait tâche de miner avec une GTX 1080 quand on vient dire qu'il faut pas les utiliser car le taux est de 0,1 MH/s, ce qui est faux, Nanopool rapporte 50 MH/s avec votre GTX 1080.