Een Chia Farming Rig van 200 TB bouwen PlatoBlockchain data-intelligentie. Verticaal zoeken. Ai.

Een chialandbouwinstallatie van 200 TB bouwen

Een compleet overzicht van componentselectie tot softwareconfiguratie voor een Chia cryptocurrency-landbouwsysteem (mijnbouw).

Een Chia Farming Rig van 200 TB bouwen PlatoBlockchain data-intelligentie. Verticaal zoeken. Ai.

Chia is een nieuwe cryptocurrency die gericht is op het bereiken van gedecentraliseerde consensus met een lager energieverbruik per transactie dan zijn soortgenoten. Dit wordt bereikt via een proof of space-algoritme in plaats van bewijs van werk.

Terwijl proof of work afhankelijk is van het continu berekenen van een wiskundig probleem (meestal hashes zoals SHA256) in een poging resultaten te vinden die overeenkomen met een gewenst patroon, vertrouwt Chia in plaats daarvan op het controleren op het bestaan ​​van bepaalde eigenschappen in unieke, vooraf gegenereerde bestanden die plots worden genoemd.

Dit gebeurt in een tweestapsproces genaamd landbouw bestaande uit:

  1. Plotten waar grote unieke bestanden (meestal 101.6 GB) worden gemaakt.

Hoe meer plots (meer opslagruimte gebruikt) een knooppunt heeft, hoe groter de kans om de beloning van dat blok te winnen. Er zijn dagelijks 4608 kansen om te winnen en de kans om de beloning van dat blok te winnen is voornamelijk gebaseerd op het aantal plots dat iemand bezit in verhouding tot de totale netwerkgrootte. Er is een inkomstencalculator beschikbaar hier.

daarom Om de beloningen te maximaliseren, willen we over de grootst mogelijke hoeveelheid opslagruimte beschikken en voldoende computerbronnen om de opslag met plots te vullen.

Zoals bij de meeste ontwerpproblemen zijn er oneindig veel geldige oplossingen voor de combinatie van apparaten die kunnen worden gebruikt om Chia te kweken. Om de opties te helpen beperken, begon ik met het bepalen van een aantal beperkingen en prioriteiten:

  1. De kosten in $/TB moeten ondanks de extra complexiteit (binnen redelijke grenzen) worden geminimaliseerd.

Plotten - Verwerken

Afhankelijk van de hardware-installatie kan het maken van één plot tussen de 4 en 20 uur duren. Daarom kan het kiezen van de juiste plothardware het verschil maken tussen het vullen van uw hele boerderij in dagen of maanden.

Het is belangrijk om niet alleen rekening te houden met de snelheid waarmee elke plot wordt gemaakt, maar ook met het aantal gelijktijdige plots dat kan worden gemaakt. Een opstelling die bijvoorbeeld 10 gelijktijdige plots maakt op elk 12 uur, zal 20 plots produceren (~2TB/dag), terwijl een opstelling die elke 1 uur één gelijktijdige plot maakt, slechts 4 plots per dag zal produceren (6TB/dag).

Om de kosten te minimaliseren, besloot ik te zoeken naar buiten gebruik gestelde servers. Deze servers hebben een aantal interessante eigenschappen waardoor ze krachtige plotters kunnen worden, waaronder:

  1. Een groot aantal kernen kan meerdere parallelle plots mogelijk maken. Fase 1 (ongeveer de helft van de plottijd) is multithreaded (meestal geconfigureerd met tussen de 2 en 4 threads), maar de overige fasen zijn single-threaded.

Nadat ik tientallen opties en mogelijke configuraties had doorgenomen, heb ik genoegen genomen met een HP ProLiant DL380p Gen8 met 2x Intel E5–2670 en 192 GB DDR3 RAM. Als hyperthreading is ingeschakeld, kan deze server hypothetisch het gelijktijdig plotten van maximaal 16 plots in fase 1 ondersteunen voor minder dan $ 400.

Plotten — Tijdelijke opslag

Vanwege de hoge schrijfbelasting tijdens het maken van een plot (ongeveer 1.6 TB geschreven voor een k=32 plot), kan de keuze voor een tijdelijk opslagmedium een ​​aanzienlijke impact hebben op de plottijd en -kosten. Een paar punten om te overwegen:

  1. Hoe sneller de opslag, hoe sneller plots kunnen worden aangemaakt. Deze draad bespreekt 4 uur plottijden met behulp van RAMDISK (koppel een map aan RAM).

Uiteindelijk heb ik ervoor gekozen om een ​​12-bay HP StorageWorks D2600 met 15K 450GB SAS-schijven te kopen. Met deze opstelling kan ik tegelijkertijd naar elke schijf plotten zonder het risico te lopen dat er IO-conflicten op schijfniveau ontstaan. De JBOD+-schijven waren aanzienlijk goedkoper dan een gelijkwaardige opstelling met NVMe-schijven (zonder zelfs maar rekening te houden met de vervangingskosten nadat TBW is bereikt).

Boerderij — Langetermijnopslag

In tegenstelling tot de plotopslag vereist de oogstopslag geen hoge doorvoer of IOP's. Om deze reden had het minimaliseren van de kosten de hoogste prioriteit.

Er zijn verschillende mogelijke opstellingen, waarvan er enkele worden besproken hier. Na het zoeken op eBay naar tweedehands opties werden echter een paar dingen duidelijk:

  1. De grotere 3.5″ harde schijven hebben doorgaans de laagste kosten. Dit is logisch omdat de meeste apparaten tegenwoordig zijn overgestapt op de kleinere formaten van 2.5″ of 1.8″.

Toen ik me eenmaal bezighield met het gebruik van 3.5″ SAS-harde schijven, moest ik een manier vinden om ze daadwerkelijk op mijn harvester/plotter aan te sluiten. Omdat ik vasthield aan de beperking om de behuizing/backplane niet te bouwen, ging ik op zoek naar gebruikte behuizingen waarin deze schijven konden worden ondergebracht, met behoud van de laagste kosten per bay.

Ik kwam verschillende opties tegen op eBay en kocht uiteindelijk een paar verschillende modellen, waaronder een 24-bay HP 3PAR en twee 12-bay IBM DS3512.

Volle lijst

De definitieve lijst met componenten wordt hieronder weergegeven. Het omvat de belangrijkste componenten die hierboven zijn besproken, maar ook aanvullende onderdelen die nodig zijn om het systeem samen te stellen.

Een vermelding waard is de HBA-kaart. Het is de PCIe-kaart die de externe SAS-connectoren blootlegt waarop de kabels van de JBOD's zullen worden aangesloten. Wanneer u deze koopt, zorg er dan voor dat u een initiator target (IT)-moduskaart aanschaft, zodat de schijven rechtstreeks in het besturingssysteem verschijnen in plaats van een IR-moduskaart. Als leuk extraatje wil je misschien een kaart laten flashen met een nieuwer besturingssysteem (versie 20).

De installatie is grotendeels intuïtief. Kabels worden aangesloten op de gaten waarin ze passen. De SAS-bekabeling die de JBOD's en de plot-/oogstmachine met elkaar verbindt, kan echter in serie worden geschakeld.

In mijn geval heb ik twee kabels die de server verlaten (één op elke poort van de HBA). Eén van de kabels wordt aangesloten op de ingang van de tijdelijke opslagarray (HP D2600) en de uitgang van die array wordt aangesloten op de HP 3PAR-array. De andere kabel wordt aangesloten op de eerste IBM-array en de uitgang daarvan wordt aangesloten op de tweede IBM-array. De JBOD's hebben meestal een invoerpoort (primaire) en een uitvoerpoort (meestal gemarkeerd met een pijl naar buiten).

ik installeerde Ubuntu LTS 20.04 op de server omdat het een veelgebruikte Linux-distributie is, wat betekent dat het gemakkelijker is om forums voor probleemoplossing te vinden als er zich problemen voordoen. De onderstaande stappen schetsen de resterende configuratie.

Stap 1: Zorg ervoor dat alle schijven beschikbaar zijn

De eerste stap is om te controleren welke schijven door het besturingssysteem worden gedetecteerd. Dit kan worden bereikt door het uitvoeren van de lsscsi commando. De output daarvan is hieronder weergegeven.

Houd er rekening mee dat de bovenstaande opdracht geen informatie geeft over het bestandssysteem of de grootte van de schijven. Voer daarvoor de lsblk opdracht.

Belangrijk: Houd er rekening mee dat niet alle schijven onder beide commando's verschijnen! De schijven die verschijnen onder lsscsi maar niet lsblk kan een incompatibiliteit hebben die ervoor zorgt dat het besturingssysteem ze niet beschikbaar maakt voor montage, enz. Een voorbeeld hiervan is /dev/sdaw.

In mijn geval werd dit probleem veroorzaakt doordat de sectorgrootte 520 was, wat niet wordt ondersteund door mijn geïnstalleerde Linux-kernel (discussie over dit onderwerp kun je vinden hier en hier). U kunt bepalen of dit bij u het geval is door naar de pagina te kijken dmesg commandologboek voor een foutmelding zoals [sdaw] Unsupported sector size 520.

Om dit op te lossen heb ik de schijven opnieuw geformatteerd met een blokgrootte van 512 met de opdracht sg_format -v --format --size=512 /dev/sdX. Het uitvoeren van deze opdracht kan een aanzienlijke hoeveelheid tijd in beslag nemen (enkele uren) en de uitvoer wordt hieronder weergegeven.

Na voltooiing zou de schijf moeten verschijnen in het lsblk uitgang.

Stap 2: Maak een bestandssysteem op schijven

Om de schijven te formatteren met de ext4 bestandssysteem, heb ik het volgende commando uitgevoerd: sudo mkfs -t ext4 — verbose /dev/sda.

Stap 3: Schijven monteren

Nu we toegang hebben tot de schijven en ze zijn geformatteerd met het gewenste bestandssysteem, kunnen we dat doen monteren deze schijven.

  1. Maak de mappen waarin we de schijven gaan monteren. Bijvoorbeeld: /mnt/farm/00 naar /mnt/farm/23 voor de schijven waarop de definitieve plots worden opgeslagen, en /mnt/plot-tmp/00 naar /mnt/plot-tmp/11 voor de tijdelijke plotlocaties.

Stap 4: Voer Chia Blockchain-software uit

  1. Volg de officiële instructies hier om de Chia-blockchain te installeren (ik heb de GUI niet geïnstalleerd).

Stap 5: Plotman instellen (optioneel)

Plotman is een plotmanager die de creatie van nieuwe plotbanen overneemt. Het is een gemakshulpmiddel (niet vereist).

  1. Installeer Plotman volgens de instructies hier.
gebruikersomgeving:
use_stty_size: waar
mappen:
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 VOL
#- /mnt/farm/01 VOL
#- /mnt/farm/02 VOL
#- /mnt/farm/03 VOL
#- /mnt/farm/04 VOL
#- /mnt/farm/05 VOL
#- /mnt/farm/06 VOL
#- /mnt/farm/07 VOL
#- /mnt/farm/08 VOL
#- /mnt/farm/09 VOL
#- /mnt/farm/10 VOL
#- /mnt/farm/11 VOL
- /mnt/farm/12
- /mnt/farm/13
- /mnt/farm/14
- /mnt/farm/15
- /mnt/farm/16
- /mnt/farm/17
- /mnt/farm/18
- /mnt/farm/19
- /mnt/farm/20
- /mnt/farm/21
- /mnt/farm/22
- /mnt/farm/23
het roosteren:
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
plotten:
k: 32
e: False # Gebruik de plotoptie -e
n_threads: 2 # Threads per taak
n_buckets: 128 # Aantal buckets waarin gegevens moeten worden gesplitst
job_buffer: 8096 # Per taakgeheugen

Enkele punten die het vermelden waard zijn:

  1. Plotman stopt niet met het plannen van boerderijschijven (op het moment van schrijven) wanneer de schijf vol is. Daarom moet u ze verwijderen (of commentaar geven zoals hierboven).

Stap 6: Voer de plotter uit

Op dit punt is rennen het enige dat nodig is om te beginnen met plotten plotman interactive.

Opmerking: De zeer langlopende taak die wordt geplot /dev/farm/usb2 is een debug-run die niet bedoeld is om volledig te worden uitgevoerd.

Ik hoop dat dit je geholpen heeft om je een idee te geven van wat er nodig is om Chia te kweken!

Vanaf nu is mijn boerderij voor 1/3 vol en ik ben van plan updates te posten zodra deze vol raakt en wanneer ik opnieuw plannen ga maken voor zwembaden.

Met speciale dank aan Katie Gandomi voor hulp bij de ontwikkeling.

Fijne landbouw!

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

Tijdstempel:

Meer van Medium