Construire une plate-forme de culture de chia de 200 To PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Construire une plate-forme d'élevage de chia de 200 To

Un examen complet de la sélection des composants à la configuration logicielle pour un système d'agriculture (minage) de crypto-monnaie Chia.

Construire une plate-forme de culture de chia de 200 To PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Chia est une nouvelle crypto-monnaie qui vise à atteindre un consensus décentralisé avec une consommation d'énergie par transaction inférieure à celle de ses pairs. Ceci est réalisé via un algorithme de preuve d'espace au lieu de Preuve de travail.

Alors que la preuve de travail repose sur le calcul continu d'un problème mathématique (généralement des hachages tels que SHA256) pour tenter de trouver des résultats correspondant au modèle souhaité, Chia s'appuie plutôt sur la vérification de l'existence de certaines propriétés dans des fichiers uniques pré-générés appelés tracés.

Cela se fait dans un processus en deux étapes appelé agriculture consistant en:

  1. Traçage où de gros fichiers uniques (généralement 101.6 Go) sont créés.

Plus un nœud possède de parcelles (stockage plus important utilisé), plus grandes sont les chances de gagner la récompense de ce bloc. Il y a 4608 chances de gagner quotidiennement et la probabilité de gagner la récompense de ce bloc est basée principalement sur le nombre de parcelles que l'on possède en proportion de la taille totale du réseau. Un calculateur de gains est fourni ici.

Par conséquent, pour maximiser les récompenses, nous voulons avoir la plus grande quantité de stockage possible et suffisamment de ressources informatiques pour remplir ladite mémoire de tracés.

Comme pour la plupart des problèmes de conception, il existe une infinité de solutions valables à la combinaison d'appareils pouvant être utilisés pour cultiver Chia. Pour aider à affiner les options, j'ai commencé par décider de certaines contraintes et priorités :

  1. Le coût en $/To doit être minimisé malgré une complexité supplémentaire (dans des limites raisonnables).

Tracé — Traitement

Selon la configuration matérielle, la création d'un seul tracé peut prendre entre 4 et 20 heures. Par conséquent, choisir le bon matériel de traçage peut faire la différence entre remplir toute votre ferme en quelques jours plutôt qu'en mois.

Il est important de considérer non seulement la vitesse à laquelle chaque tracé est réalisé, mais également le nombre de tracés simultanés qui peuvent être créés. Par exemple, une configuration qui crée 10 tracés simultanés à 12 heures chacun produira 20 tracés (~ 2 To/jour) alors qu'une configuration qui trace 1 tracé simultané toutes les 4 heures ne produira que 6 tracés par jour (0.6 To/jour).

Pour minimiser les coûts, j'ai décidé de rechercher des serveurs déclassés. Ces serveurs ont des propriétés intéressantes qui pourraient en faire de puissants traceurs, notamment :

  1. Un grand nombre de carottes peut permettre plusieurs parcelles en parallèle. La phase 1 (environ la moitié du temps de tracé) est multithread (généralement configurée pour être entre 2 et 4 threads), mais les phases restantes sont à thread unique.

Après avoir passé en revue des dizaines d'options et de configurations possibles, j'ai opté pour un HP ProLiant DL380p Gen8 avec 2x Intel E5-2670 et 192 Go de RAM DDR3. Avec l'hyper-threading activé, ce serveur pourrait théoriquement prendre en charge le traçage simultané de jusqu'à 16 tracés en phase 1 pour moins de 400 $.

Traçage — Stockage temporaire

En raison de la charge d'écriture élevée lors de la création du tracé (environ 1.6 To écrit pour un tracé ak=32), le choix du support de stockage temporaire peut avoir un impact significatif sur le temps et le coût de traçage. Quelques points à considérer :

  1. Plus le stockage est rapide, plus les tracés peuvent être créés rapidement. Ce fil traite des temps de tracé de 4 heures en utilisant RAMDISK (monter un dossier sur la RAM).

J'ai fini par opter pour l'achat d'un HP StorageWorks D12 à 2600 baies avec des disques SAS 15K 450 Go. Avec cette configuration, je peux tracer simultanément sur chaque lecteur sans risquer de conflit d'E/S au niveau du lecteur. Les disques JBOD + étaient nettement moins chers qu'une configuration équivalente avec des disques NVMe (sans même prendre en compte le coût de remplacement une fois que TBW a été atteint).

Ferme — Stockage à long terme

Contrairement au stockage de traçage, le stockage de récolte ne nécessite pas de débit élevé ni d'IOP. Pour cette raison, la réduction des coûts était la priorité la plus élevée.

Il y a plusieurs configurations possibles dont certaines sont discutées ici. Cependant, après avoir recherché sur eBay des options d'occasion, certaines choses sont devenues claires :

  1. Les disques durs 3.5 pouces plus grands ont tendance à être les moins chers. Cela a du sens puisque la plupart des appareils sont aujourd'hui passés aux tailles plus petites de 2.5 "ou 1.8".

Une fois que je me suis concentré sur l'utilisation de disques durs SAS de 3.5 pouces, j'ai dû trouver un moyen de les connecter réellement à mon abatteur/traceur. Tenant compte de la contrainte de ne pas construire le boîtier/le fond de panier, j'ai commencé à rechercher des boîtiers d'occasion pouvant abriter ces disques tout en maintenant le coût par baie le plus bas.

Je suis tombé sur plusieurs options sur eBay et j'ai fini par acheter quelques modèles différents, dont un HP 24PAR à 3 baies et deux IBM DS12 à 3512 baies.

Liste complète

La liste finale des composants est présentée ci-dessous. Il comprend les principaux composants décrits ci-dessus, mais également des pièces auxiliaires nécessaires pour assembler le système.

Une mention digne est la carte HBA. C'est la carte PCIe qui expose les connecteurs externes SAS auxquels se connecteront les câbles des JBOD. Lors de l'achat, assurez-vous que vous obtenez une carte en mode cible d'initiateur (IT) afin que les lecteurs apparaissent directement dans le système d'exploitation, par opposition à une carte en mode IR. En plus, vous voudrez peut-être faire flasher une carte avec un système d'exploitation plus récent (version 20).

La configuration est principalement intuitive. Les câbles se connectent aux trous dans lesquels ils s'insèrent. Cependant, le câblage SAS qui relie les JBOD et la machine de traçage/récolte peut être connecté en guirlande.

Dans mon cas, j'ai deux câbles sortant du serveur (un sur chaque port du HBA). L'un des câbles se connecte à l'entrée de la matrice de stockage temporaire (HP D2600) et la sortie de cette matrice se connecte à la matrice HP 3PAR. L'autre câble se connecte à la première baie IBM et la sortie de celui-ci se connecte à la deuxième baie IBM. Les JBOD ont généralement un port d'entrée (principal) et un port de sortie (généralement étiqueté avec une flèche vers l'extérieur).

j'ai installé Ubuntu LTS 20.04 sur le serveur car il s'agit d'une distribution Linux largement utilisée, ce qui signifie qu'il serait plus facile de trouver des forums de dépannage en cas de problème. Les étapes ci-dessous décrivent la configuration restante.

Étape 1 : Assurez-vous que tous les lecteurs sont disponibles

La première étape consiste à vérifier quels lecteurs sont détectés par le système d'exploitation. Ceci peut être accompli en exécutant le lsscsi commander. Dont la sortie est illustrée ci-dessous.

Notez que la commande ci-dessus ne fournit pas d'informations sur le système de fichiers ou la taille des lecteurs. Pour cela, lancez le lsblk commander.

Important: Notez que tous les lecteurs n'apparaissent pas sous les deux commandes ! Les lecteurs qui apparaissent sous lsscsi mais pas lsblk peut avoir une certaine incompatibilité qui empêche le système d'exploitation de les rendre disponibles pour le montage, etc. Un exemple de ceci est /dev/sdaw.

Dans mon cas, ce problème était dû au fait que la taille du secteur était de 520, ce qui n'est pas pris en charge par mon noyau Linux installé (une discussion sur ce sujet peut être trouvée ici et de ici). Vous pouvez déterminer si c'est votre cas en consultant le dmesg journal de la commande pour un message d'erreur comme [sdaw] Unsupported sector size 520.

Pour résoudre ce problème, j'ai reformaté les disques en utilisant une taille de bloc de 512 avec la commande sg_format -v --format --size=512 /dev/sdX. L'exécution de cette commande peut prendre un certain temps (plusieurs heures) et la sortie est illustrée ci-dessous.

À la fin, le lecteur devrait apparaître dans le lsblk sortie.

Étape 2 : Créer un système de fichiers sur les lecteurs

Pour formater les disques avec le ext4 système de fichiers, j'ai exécuté la commande suivante : sudo mkfs -t ext4 — verbose /dev/sda.

Étape 3 : Monter les disques

Maintenant que nous pouvons accéder aux disques et qu'ils ont été formatés avec le système de fichiers souhaité, nous pouvons monter ces lecteurs.

  1. Créez les dossiers dans lesquels nous monterons les lecteurs. Par example: /mnt/farm/00 à /mnt/farm/23 pour les lecteurs qui stockeront les tracés finaux, et /mnt/plot-tmp/00 à /mnt/plot-tmp/11 pour les emplacements de traçage temporaires.

Étape 4: Exécutez le logiciel Chia Blockchain

  1. Suivez les instructions officielles spécifiées ici pour installer la blockchain Chia (je n'ai pas installé l'interface graphique).

Étape 5 : Configurer Plotman (facultatif)

L'intrigueur est un gestionnaire de traçage qui prendra en charge la création de nouvelles tâches de traçage. C'est un outil pratique (non requis).

  1. Installez Plotman en suivant les instructions ici.
interface utilisateur:
use_stty_size : vrai
répertoires :
log : /home/plotter/plotman-logs
tmp :
- /mnt/plot-tmp/f00
- /mnt/plot-tmp/f01
- /mnt/plot-tmp/f02
- /mnt/plot-tmp/f03
- /mnt/plot-tmp/f04
- /mnt/plot-tmp/f05
- /mnt/plot-tmp/f06
- /mnt/plot-tmp/f07
- /mnt/plot-tmp/f08
- /mnt/plot-tmp/f09
- /mnt/plot-tmp/f10
- /mnt/plot-tmp/f11
dst :
#- /mnt/farm/00 COMPLET
#- /mnt/farm/01 COMPLET
#- /mnt/farm/02 COMPLET
#- /mnt/farm/03 COMPLET
#- /mnt/farm/04 COMPLET
#- /mnt/farm/05 COMPLET
#- /mnt/farm/06 COMPLET
#- /mnt/farm/07 COMPLET
#- /mnt/farm/08 COMPLET
#- /mnt/farm/09 COMPLET
#- /mnt/farm/10 COMPLET
#- /mnt/farm/11 COMPLET
- /mnt/ferme/12
- /mnt/ferme/13
- /mnt/ferme/14
- /mnt/ferme/15
- /mnt/ferme/16
- /mnt/ferme/17
- /mnt/ferme/18
- /mnt/ferme/19
- /mnt/ferme/20
- /mnt/ferme/21
- /mnt/ferme/22
- /mnt/ferme/23
Planification:
tmpdir_stagger_phase_major : 2
tmpdir_stagger_phase_minor : 1
tmpdir_stagger_phase_limit : 1
tmpdir_max_jobs : 1
global_max_jobs : 20
global_stagger_m : 40
polling_time_s : 30
traçage:
k : 32
e: False # Utilisez l'option de tracé -e
n_threads : 2 # Threads par tâche
n_buckets : 128 # Nombre de buckets dans lesquels diviser les données
job_buffer: 8096 # Par mémoire de travail

Quelques points à mentionner :

  1. Plotman n'arrête pas de planifier les lecteurs de batterie (au moment de la rédaction de cet article) lorsque le lecteur est plein. Par conséquent, vous devez les supprimer (ou les commenter comme ci-dessus).

Étape 6 : Exécutez le traceur

À ce stade, tout ce qui est nécessaire pour commencer à tracer est d'exécuter plotman interactive.

Remarque : Le travail de très longue durée de traçage /dev/farm/usb2 est une exécution de débogage qui n'est pas censée s'exécuter jusqu'à la fin.

J'espère que cela peut vous être utile pour vous donner une idée de ce qui est nécessaire pour cultiver Chia !

À l'heure actuelle, ma ferme est pleine au tiers et je prévois de publier des mises à jour au fur et à mesure qu'elle se remplit et lorsque je commence à re-tracer pour les pools.

Un merci spécial à Katie Gandomi pour l'aide au développement.

Bonne agriculture!

Source: https://levelup.gitconnected.com/building-a-200tb-chia-farming-rig-c9478ed7b92f?source=rss——-8—————–cryptocurrency

Horodatage:

Plus de Moyenne