Comment exploiter des bitcoins à l'aide d'une instance AWS EC2…

Source de l'image: AWS

Après toutes les discussions sur la fourche Segwit2x (qui a maintenant été reportée), j'ai décidé de me familiariser avec les crypto-monnaies minières.

Au départ, j’ai choisi d’exploiter l’éther, puis les pièces Monero, sur des serveurs Ubuntu 16.04 à l’aide de leurs instances d’informatique accélérée, mais ma curiosité a eu raison de moi et j’ai commencé à me demander ce qu’il faudrait faire pour extraire de véritables bitcoins.

Tous les forums et blogs que j'ai consultés étaient déconseillés. À tel point que je n’ai trouvé aucun didacticiel récent sur l’exploitation de GPU pour Bitcoin.

J'en ai profité pour en créer un moi-même.

Voici comment:

Remarque: les gens ont le correct. L'extraction de bitcoins sur le nuage sans mineur ASIC ne génère aucun profit. Pourtant, c’est une expérience amusante.

Première étape: obtenir un hébergement en nuage.

a) Inscrivez-vous à AWS.

Tout d'abord, commencez par créer un compte gratuit sur Amazon Web Services. AWS propose des machines virtuelles, du stockage et une foule d'autres services, parfois gratuitement, au cours de votre période d'essai initiale de 12 mois.

Avertissement: la vérification du compte peut prendre jusqu'à 24 heures.

b) Accédez à la console de services.

Une fois que vous êtes dans, accédez à la page d'accueil et sélectionnez EC2.

Ceci vous amène au tableau de bord EC2:

Le tableau de bord vous donne accès à tout ce dont vous avez besoin pour le lancement et la maintenance de votre machine virtuelle. Y compris la sécurité. Parlons de cela ensuite.

Deuxième étape: créer des paramètres de sécurité.

a) Configurez un groupe de sécurité.

Dans le menu de gauche, en bas, sous le sous-menu «Réseau et sécurité», sélectionnez des groupes de sécurité, puis cliquez sur le bouton bleu du groupe «Créer une sécurité» dans la barre de navigation supérieure.

Un modal apparaîtra.

Attribuez un nom et une description au groupe, puis conservez le VPC sur le paramètre par défaut. En dessous, un panneau à onglets vous demande de créer des règles d’accès pour le groupe. Ne vous inquiétez pas pour ça. Nous allons également conserver les paramètres par défaut. Nous sommes principalement concernés par les règles entrantes. Sélectionnez donc l’onglet Entrant et cliquez sur Ajouter une règle.

Nous en créerons trois au total:

Pour la règle SSH, vous voudrez sélectionner «Mon IP» sous source, et la zone de saisie renseignera l’adresse IP de votre appareil. Puis cliquez sur créer.

b) Créez une paire de clés.

Maintenant, dans le même sous-menu "Réseau & Sécurité",

vous voudrez cliquer sur "Paires de touches" puis sur le bleu "Créer une paire de clés" situé dans la barre de navigation supérieure de cette page.

Une fois que vous avez créé, vous devriez voir le fichier .pem dans vos téléchargements.

Le contenu de ce fichier vous permet de vous connecter à l’instance distante que vous allez lancer à l’étape suivante. Placez ce fichier dans un endroit sûr et gardez à l'esprit que vous en aurez besoin à chaque fois que vous tenterez de vous reconnecter à votre serveur.

Troisième étape: Obtenez un serveur Ubuntu opérationnel.

Donc, avant de commencer, voici la chose. La puissance de calcul accélérée, même dans le cloud, n’est pas bon marché.

En réalité, les instances EC2 fonctionnent comme des ordinateurs virtuels loués avec des capacités de liaison directe avec les cartes graphiques stellaires. Vous pouvez utiliser Azure ou Google Cloud Computing, mais pour être honnête, si vous êtes un utilisateur de MAC très familier avec Linux et recherchant des taux horaires plus bas, AWS semble être la meilleure option.

Puis-je simplement utiliser Virtualbox et faire fonctionner un serveur gratuitement?

La réponse: cela dépend de votre matériel et de votre capacité à transférer les GPU de votre matériel sur une machine virtuelle Virtualbox. Cela peut prendre un certain temps, encore considéré comme très expérimental, et la plupart des appareils commerciaux (comme mon Macbook) n’ont pas de GPU capable de hachage rapide.

AWS prend en charge la virtualisation du matériel pour vous.

Mais encore une fois, oui, les instances EC2 de la saveur g2, g3 et p2 peuvent vous faire bien payer un sou. Nous avons également été prévenus que nous allions faire concurrence à d’énormes exploitations minières de bitcoins qui utilisent des mineurs ASIC qui extirpent l’extraction de GPU de l’eau.

Donc, c'est plus une expérience qu'autre chose. Néanmoins, faisons ceci.

Heureusement, AWS vous permet d'enchérir sur des instances avec plusieurs GPU à des prix inférieurs à ceux du marché.

a) Démarrez une demande ponctuelle pour une instance EC2.

Accédez à Demandes ponctuelles dans le menu latéral, puis cliquez sur le bouton «Demander des instances ponctuelles» dans la barre de navigation supérieure.

b) Choisissez une IAM.

Ensuite, recherchez une Amazon Machine Image (AMI) - un modèle de serveur prédéfini avec certaines installations et configurations logicielles - qui vous fournit la dernière version d’Ubuntu (16.04 - Xerial).

J'ai déjà des sauvegardes:

Vous pouvez trouver celui que j'utilise pour ce didacticiel en cliquant sur Rechercher une AMI, en sélectionnant «AMI communautaires» dans le menu déroulant, puis en entrant «ami-cd0f5cbx» dans la barre de recherche.

c) Choisissez un type d'instance.

Les types d'instance offrant des cartes NVDIA appartiennent à la famille g2, g3, p2. J’ai joué avec les trois familles, et bien que toutes s’en sortent plutôt bien avec l’extraction de pièces de monnaie cryptées, p2 offre de loin le plus de punch.

Malheureusement, c’est aussi le plus cher des trois. Les prix des offres horaires varient entre 1,4 et 1,7 USD, selon l’heure de la journée. Je surveille les prix optimaux et, en règle générale, vous pouvez trouver des prix plus bas pour les instances g2 après minuit et des prix plus bas pour p2 avant midi.

AWS propose également un historique des prix auquel vous pouvez vous référer:

Je vais utiliser l’instance p2 de taille moyenne (p2.8xlarge). Cela vous donnera 8 GPU avec lesquels travailler.

Autres spécifications pour cette instance:

  • 8 cartes NVIDIA K80
  • 32 processeurs virtuels
  • 488 Gio de RAM
  • Communication d'égal à égal entre les GPU

Bam.

Ces exemples fonctionnent bien avec l'apprentissage en profondeur et les jeux, par exemple.

d) Choisissez votre stratégie d’allocation et de tarification.

Il vaut mieux rester avec les détails. Si vous en avez le coeur, vous pouvez choisir de fixer un prix maximum. Attention, votre instance peut se terminer si le prix des enchères dépasse votre prix maximum.

En disant cela, AWS ne facturera pas l’heure interrompue. Marchez légèrement.

e) Configurez vos paramètres de stockage

Nous ne téléchargerons pas de blockchains, nous n’avons donc pas besoin de trop de stockage. Le stockage racine 20GiB + devrait faire l'affaire pour ce que nous essayons de réaliser.

f) Configurez les paramètres de sécurité.

Maintenant, choisissez la paire de clés et le groupe de sécurité que vous avez créés à l'étape précédente et cliquez sur Suivant.

g) Révisez votre demande.

Assurez-vous que tout est comme vous le souhaitez et cliquez sur Lancer.

Un modal apparaîtra pour vous informer que votre demande a été acceptée.

h) Attendez que votre demande soit satisfaite.

Désormais, cette partie peut générer des erreurs - très probablement, en raison des limitations limitées des utilisateurs de niveau libre. Si vous rencontrez ce type d'erreur, vous pouvez contacter le support AWS et lancer une demande d'augmentation de limite.

Conseil: lorsque vous enregistrez le ticket d'assistance, demandez à être contacté par téléphone. Cela accélère un peu le temps de service.

Finalement, votre demande devrait être remplie.

Quatrième étape: connectez-vous à votre serveur Ubuntu

a) Vérifiez l'état de votre instance.

Dans le menu de gauche, sélectionnez à nouveau EC2 Dashboard, puis cliquez sur Running Instances.

b) Obtenez le DNS public pour votre instance.

Dans le menu du haut, cliquez sur le bouton Actions, puis choisissez Se connecter. Cela devrait donner des instructions sur la façon de SSH sur votre nouveau serveur.

Ne soyez pas dérouté par l’incohérence. Par droit, basé sur les étapes précédentes, le fichier .pem devrait être tutorial-keys.pem.

c) Protégez votre fichier .pem contre tout écrasement accidentel.

Rappelez-vous ce fichier .pem (votre paire de clés) que vous avez téléchargé plus tôt? Ouvrez un terminal et entrez la commande:

chmod 400 "/path/to/votre/fichier.pem"

Ainsi, par exemple, je mets ce fichier .pem que j’utilise dans mon dossier Utilitaires, situé dans mon répertoire Applications:

d) SSH dans votre instance.

ssh -i "/path/to/votre/fichier.pem" ubuntu@votre-public-DNS.compute-1.amazonaws.com

Ça devrait ressembler a quelque chose comme ca:

e) Tapez «oui» + entrée pour continuer la connexion.

f) Et vous êtes dans.

Cinquième étape: Installer les dépendances du projet

a) Recherchez les mises à jour du logiciel Ubuntu 16.04.

sudo apt-get update

Xenial a quelques mises à jour…

b) Installez les dépendances nécessaires pour exécuter un mineur.

Maintenant, je l’admets, c’est peut-être un peu exagéré. Certaines de ces dépendances sont seulement facultatives. Toutefois, si vous souhaitez expérimenter avec différents mineurs et potentiellement d’autres crypto-monnaies en plus des bitcoins, cette liste devrait la couvrir:

sudo apt-get install -y freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev gcc fabrique libcurl4-openssl-dev autoconf git ecran libncurses5-dev opencl-headers essentiel protobuf-compilateur libprotoc-dev libboost-all-dev libleveldb-dev hdf5-outils libhdf5-serial-dev libopencv-core-dev libopencv-highgui-dev libsnappy-dev libsnappy1v5 libatlas-base-dev cake libstdc ++ 6-4- dbg libgoogle-glog0v5 libgoogle-glog-dev libgflags-dev liblmdb-dev python-pip gfortran libjansson-dev uthash-dev autogen libtool pkg-config

Sixième étape: Télécharger + installer les pilotes NVIDIA / NVIDIA

a) Téléchargez NVDIA à partir du Web

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.20/NVIDIA-Linux-x86_64-375.20.run

Vous devriez obtenir une réponse 200 OK HTTP.

b) Rendre le fichier d'installation de NVIDIA exécutable…

chmod + x NVIDIA-Linux-x86_64-375.20.run

c) Exécutez le programme d'installation.

Vous pouvez dire que cela fonctionne par le chargeur…

d) Acceptez les termes du contrat de licence de NVIDIA.

Après la construction des modules du noyau…

Il suffit d'appuyer sur Entrée pour valider les avertissements.

Installée.

e) Installez le paquetage commun des pilotes Ubuntu.

Cela nous permet de répertorier les périphériques GPU fonctionnant sur notre serveur.

sudo apt installer ubuntu-drivers-common

et choisissez y + enter pour terminer l'installation.

f) Installer automatiquement le dernier pilote NVIDIA.

sudo ubuntu-drivers installation automatique

Fait avec la mise en place de NVIDIA. Ensuite, installez CUDA 8.

Étape 7: Installation de CUDA 8.0

Qu'est ce que CUDA? En termes simples, CUDA permet un traitement parallèle sur notre machine et donne à nos GPU un gain de performances spectaculaire.

a) Téléchargez CUDA 8.0 pour Ubuntu 16.04

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb

Vous devriez recevoir une réponse 200 OK HTTP.

b) Déballez le téléchargement CUDA 8.0.

c) Vérifier les mises à jour.

sudo apt-get update

d) Installez CUDA.

sudo apt-get install cuda

et tapez y et entrez pour terminer.

CUDA 8.0 installé!

Mise à jour: Alfonso, dans la section commentaires, a gracieusement fourni les commandes pour installer CUDA 9.1. Pour une version plus récente de CUDA, utilisez les éléments suivants:

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604_9.1.85–1_amd64.deb
sudo apt-key adv - touches de récupération
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
 
sudo apt-get update
 
sudo apt-get install cuda

e) Découvrez les GPU!

Nvidia-smi

Dope.

Maintenant, vous voudrez redémarrer votre instance.

Vous pouvez le faire de deux façons:

redémarrage sudo

ou

Revenez à votre instance dans AWS, sélectionnez Actions> État de l'instance> Redémarrage.

Étape huit: Téléchargez BFGMiner

Note: J'ai bricolé avec d'autres mineurs qui utilisaient le proxy de strate, mais ces référentiels utilisent toujours le protocole HTTP (plutôt que le protocole HTTPS). Depuis octobre 2017, l'utilisation d'un proxy de strate est beaucoup plus difficile. Le fichier setup.py utilisé pour les implémentations prêtes à l'emploi continue à générer des requêtes HTTP et génère une erreur. Pas de bueno.

a) SSH dans votre instance.

Vous devrez peut-être lui donner une minute ou deux avant de pouvoir vous reconnecter.

b) Basculez vers l'utilisateur root.

sudo su

Maintenant, nous n’avons plus besoin de préfixer nos commandes avec le mot-clé ‘sudo’.

c) mettre à jour et mettre à niveau tout.

apt-get update && temps apt-get dist-upgrade

et tapez y et entrez pour terminer la mise à niveau des packages.

Certaines configurations spéciales pourraient vous être demandées. Juste "OK" les options par défaut.

d) installer bfgminer pour extraire des bitcoins.

apt-get install bfgminer

Et nous avons notre configuration!

Étape neuf: Créer un portefeuille Bitcoin

Maintenant, afin de recevoir une récompense ou un paiement quelconque pour notre exploitation minière, nous aurons besoin d’une adresse pour envoyer nos pièces.

Coinbase est de loin le marché porte-monnaie / États-Unis le plus populaire en ce moment. En tant que passionné et développeur Ethereum, je connais le mieux Coinbase.

a) Inscription à Coinbase.

Toutefois, Coinbase ne vous autorise pas à consulter directement les adresses de leurs portefeuilles (très probablement, car les adresses changent de temps en temps).

Je pense toujours que c’est une bonne idée de garder Coinbase comme porte-monnaie principal, mais le processus de vérification peut être un peu long. Comme nous aurons toujours besoin d’une adresse secondaire pour nous connecter à notre mineur, je recommande d’utiliser JAXX. (N'hésitez pas à utiliser le portefeuille de votre choix!)

b) Inscrivez-vous pour JAXX.

Vous pouvez télécharger l'application JAXX pour n'importe quel appareil et créer un portefeuille en quelques minutes. À partir de là, vous aurez une adresse publique Bitcoin que vous pourrez consulter.

Dixième étape: Rejoindre un pool minier

Au cours des dernières semaines, j’ai rencontré des tonnes d’excellents bassins miniers - Dwarfpool et Minergate, par exemple. Cependant, je pense que pour le bitcoin GPU, Slush Pool possède une excellente interface, un excellent service et un tableau de bord utile pour comprendre ce qui se passe.

a) Rejoignez Slush Pool.

b) Accédez à mon compte.

c) Créer un nouveau travailleur.

Choisissez Ouvriers dans le menu supérieur et nommez un nouvel ouvrier en utilisant les types de caractères autorisés.

Cliquez sur Créer.

Maintenant, accédez à Paramètres et ajoutez votre adresse de portefeuille pour les paiements.

Étape 11: Commencez à exploiter!

a) Lancez bfgminer.

Maintenant que nous avons un nom d'utilisateur de pool et un ouvrier, nous pouvons démarrer bfgminer.

Pour exécuter le mineur, tapez:

bfgminer -o stratum.bitcoin.cz:3333 -O votre_nom_utilisateur.votre_nom_ouvrier: x -S opencl: auto

Et ça va.

Ne faites pas attention à l’erreur que nous avons. Après quelques minutes, vous remarquerez que vous obtenez des actions!

La vitesse de hachage n’est pas extraordinaire, mais meilleure que ce à quoi j’attendais (très honnêtement).

Et saisi quelques actions de bloc avec des difficultés assez élevées! Plus haute difficulté de partage acceptée: 12,2k!

Après avoir donné un peu de temps de préchauffage, mon bassin de neige fondue m’a enregistrée à une vitesse maximale d’environ 4.121 Gh / s!

Pas mal! Minuscule par rapport à un mineur ASIC, mais en mouvement. Quelques heures d’exploitation minière n’ont donné que 0,0000000 BTC. (Pas rentable.)

Welp. Je vais peut-être devoir rester avec ethminer ou minerd jusqu'à ce que je puisse avoir plus de GPU.

Quelques réflexions finales…

Pendant mon temps libre, je vais jouer avec l'algorithme de hachage pour voir si je ne peux pas obtenir plus de vitesse. Je viens de rejoindre une spécialisation en apprentissage approfondi sur Coursera, ce qui a donc été une bonne pratique pour moi. Je vous tiendrai au courant de tout progrès en matière d’exploration de GPU BTC.

Si vous avez apprécié ce post, n'hésitez pas à m'envoyer un conseil en ether ou bitcoin!

adresse bitcoin: 1ARn8yHJmeo8WvAebUJVuz2pfn7jfg6BLg

adresse eth: 0xcf8ee917fb71feddf9478d2c8a6ee22c51f8611d