Bygga en 200TB Chia Farming Rig PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Bygger en 200TB Chia Farming Rig

En komplett översyn från komponentval till mjukvarukonfiguration för ett Chia-system för lantbruk med kryptovaluta.

Bygga en 200TB Chia Farming Rig PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Chia är en ny kryptovaluta som syftar till att uppnå decentraliserad konsensus med lägre energiförbrukning per transaktion än sina konkurrenter. Detta uppnås via en bevis på rymdalgoritm istället för bevis på arbetet.

Medan bevis på arbete förlitar sig på att kontinuerligt beräkna ett matematiskt problem (vanligtvis hash som SHA256) i ett försök att hitta resultat som matchar ett önskat mönster, litar Chia istället på att kontrollera förekomsten av vissa egenskaper i unika förgenererade filer som kallas plots.

Detta görs i en tvåstegsprocess som kallas odling bestå av:

  1. plottning där stora unika filer (vanligtvis 101.6 GB) skapas.

Ju fler plotter (större lagring som används) en nod har, desto högre är chansen att vinna det blockets belöning. Det finns 4608 chanser att vinna dagligen och sannolikheten att vinna det blockets belöning baseras i första hand på antalet tomter man äger i proportion till den totala nätverksstorleken. En inkomstkalkylator tillhandahålls här..

Därför, för att maximera belöningarna vill vi ha så mycket lagring som möjligt och tillräckligt med datorresurser för att fylla upp nämnda lagring med plotter.

Som med de flesta designproblem finns det en oändlighet av giltiga lösningar på kombinationen av enheter som kan användas för att odla Chia. För att begränsa alternativen började jag med att bestämma mig för några begränsningar och prioriteringar:

  1. Kostnaden i $/TB bör minimeras trots ytterligare komplexitet (inom rimliga gränser).

Plottning — Bearbetning

Beroende på hårdvaruinställningen kan en enda plot ta mellan 4 till 20 timmar att skapa. Att välja rätt plottningshårdvara kan därför vara skillnaden mellan att fylla hela din gård på dagar kontra månader.

Det är viktigt att inte bara ta hänsyn till hastigheten med vilken varje plot görs utan också antalet samtidiga plots som kan skapas. Till exempel kommer en uppsättning som skapar 10 samtidiga plotter på 12 timmar vardera att producera 20 plots (~2TB/dag) medan en uppsättning som plottar 1 samtidiga plot var 4:e timme endast kommer att producera 6 plots per dag (0.6TB/dag).

För att minimera kostnaden bestämde jag mig för att söka efter avvecklade servrar. Dessa servrar har några intressanta egenskaper som kan göra dem till kraftfulla plottrar, inklusive:

  1. Stort antal kärnor kan tillåta flera plotter parallellt. Fas 1 (ungefär hälften av plottningstiden) är flertrådad (vanligtvis konfigurerad att vara mellan 2 och 4 trådar), men återstående faser är enkelgängade.

Efter att ha gått igenom dussintals alternativ och möjliga konfigurationer nöjde jag mig med en HP ProLiant DL380p Gen8 med 2x Intel E5–2670 och 192 GB DDR3 RAM. Med hyper-threading aktiverad kan den här servern hypotetiskt stödja plottning av upp till 16 plotter i fas 1 samtidigt för under $400.

Tomtsättning — Tillfällig förvaring

På grund av den höga skrivbelastningen under skapandet av plotten (cirka 1.6TB skrivet för ak=32 plot), kan valet av temporärt lagringsmedium ha en betydande inverkan på plottningstiden och kostnaden. Några punkter att tänka på:

  1. Ju snabbare lagring, desto snabbare kan tomter skapas. Denna tråd diskuterar 4 timmars plottider med RAMDISK (montera en mapp till RAM).

Det slutade med att jag valde att köpa en 12-fack HP StorageWorks D2600 med 15K 450GB SAS-enheter. Med den här inställningen kan jag plotta till varje enhet samtidigt utan att riskera IO-stridigheter på enhetsnivå. JBOD +-enheterna var betydligt billigare än en motsvarande installation med NVMe-enheter (utan att ens ta hänsyn till ersättningskostnaden efter att TBW har uppnåtts).

Gård — Långtidsförvaring

Till skillnad från plottinglagret kräver skördelagret inte hög genomströmning eller IOPs. Av denna anledning var minimering av kostnaderna högsta prioritet.

Det finns flera möjliga inställningar av vilka några diskuteras här.. Men efter att ha sökt på eBay efter begagnade alternativ blev några saker tydliga:

  1. De större 3.5-tums hårddiskarna tenderar att ha den lägsta kostnaden. Detta är vettigt eftersom de flesta enheter nuförtiden har flyttat till de mindre storlekarna 2.5 tum eller 1.8 tum.

När jag väl började använda 3.5″ SAS-hårddiskar behövde jag hitta ett sätt att faktiskt ansluta dem till min skördare/plotter. Jag höll mig till begränsningen att inte bygga höljet/bakplanet och började leta efter begagnade höljen som kunde hysa dessa enheter samtidigt som jag bibehöll den lägsta kostnaden per fack.

Jag stötte på flera alternativ på eBay och det slutade med att jag köpte några olika modeller inklusive en 24-fack HP 3PAR och två 12-fack IBM DS3512.

Full lista

Den slutliga listan över komponenter visas nedan. Det inkluderar de huvudkomponenter som diskuterats ovan men också tillbehör som krävs för att sätta ihop systemet.

Ett värt att nämna är HBA-kortet. Det är PCIe-kortet som exponerar SAS externa kontakter som kablarna från JBOD:erna kommer att anslutas till. När du köper det, se till att du får ett initiator target (IT)-lägeskort så att enheterna visas direkt för operativsystemet i motsats till ett IR-lägeskort. Som en trevlig att ha, kanske du vill få ett kort flashat med ett nyare OS (version 20).

Inställningen är för det mesta intuitiv. Kablar ansluts till hålen där de passar. SAS-kablarna som förbinder JBOD:erna och plottnings-/skördmaskinen är dock kedjefästiga.

I mitt fall har jag två kablar som lämnar servern (en på varje port från HBA). En av kablarna ansluts till ingången på den temporära lagringsmatrisen (HP D2600) och utgången från den matrisen ansluts till HP 3PAR-matrisen. Den andra kabeln ansluts till den första IBM-matrisen och utgången från den ansluts till den andra IBM-matrisen. JBOD:erna har vanligtvis en ingångsport (primär) och en utgångsport (vanligtvis märkt med en utåtriktad pil).

Jag installerade Ubuntu LTS 20.04 på servern eftersom det är en mycket använd Linux-distribution vilket innebär att det skulle vara lättare att hitta felsökningsforum om några problem skulle uppstå. Stegen nedan beskriver den återstående konfigurationen.

Steg 1: Se till att alla enheter är tillgängliga

Det första steget är att kontrollera vilka enheter som upptäcks av operativsystemet. Detta kan åstadkommas genom att köra lsscsi kommando. Vars utdata visas nedan.

Observera att kommandot ovan inte ger information om filsystemet eller storleken på enheterna. För det, kör lsblk kommando.

Viktigt: Observera att inte alla enheter visas under båda kommandona! De enheter som visas under lsscsi men inte lsblk kan ha viss inkompatibilitet som gör att operativsystemet inte gör dem tillgängliga för montering, etc. Ett exempel på detta är /dev/sdaw.

I mitt fall orsakades det här problemet på grund av att sektorstorleken är 520 vilket inte stöds av min installerade Linux-kärna (diskussion om detta ämne kan hittas här. och här.). Du kan avgöra om detta är ditt fall genom att titta över dmesg kommandots logg för ett felmeddelande som [sdaw] Unsupported sector size 520.

För att lösa detta formaterade jag om enheterna med en blockstorlek på 512 med kommandot sg_format -v --format --size=512 /dev/sdX. Det här kommandot kan ta en betydande tid att köra (flera timmar) och resultatet visas nedan.

När det är klart bör enheten dyka upp i lsblk utgång.

Steg 2: Skapa filsystem på enheter

För att formatera enheterna med ext4 filsystemet körde jag följande kommando: sudo mkfs -t ext4 — verbose /dev/sda.

Steg 3: Montera enheter

Nu när vi kan komma åt enheterna och de har formaterats med önskat filsystem, kan vi montera dessa enheter.

  1. Skapa mapparna där vi ska montera enheterna. Till exempel: /mnt/farm/00 till /mnt/farm/23 för enheterna som kommer att lagra de sista tomterna, och /mnt/plot-tmp/00 till /mnt/plot-tmp/11 för de tillfälliga ritplatserna.

Steg 4: Kör Chia Blockchain Software

  1. Följ de officiella instruktionerna som anges här. för att installera Chia blockchain (jag installerade inte GUI).

Steg 5: Konfigurera Plotman (valfritt)

Plotman är en plottledare som ska ta över skapandet av nya plottjobb. Det är ett bekvämlighetsverktyg (inget krav).

  1. Installera Plotman enligt instruktionerna här..
användargränssnitt:
use_stty_size: Sant
kataloger:
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 FULL
#- /mnt/farm/01 FULL
#- /mnt/farm/02 FULL
#- /mnt/farm/03 FULL
#- /mnt/farm/04 FULL
#- /mnt/farm/05 FULL
#- /mnt/farm/06 FULL
#- /mnt/farm/07 FULL
#- /mnt/farm/08 FULL
#- /mnt/farm/09 FULL
#- /mnt/farm/10 FULL
#- /mnt/farm/11 FULL
- /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
schemaläggning:
tmpdir_stagger_phase_major: 2
tmpdir_stagger_phase_minor: 1
tmpdir_stagger_phase_limit: 1
tmpdir_max_jobs: 1
globala_max_jobs: 20
global_stagger_m: 40
polling_time_s: 30
plotta:
k: 32
e: Falskt # Använd plottningsalternativet -e
n_trådar: 2 # trådar per jobb
n_buckets: 128 # Antal hinkar att dela upp data i
job_buffer: 8096 # Per jobbminne

Några punkter värda att nämna:

  1. Plotman slutar inte schemalägga till farm drives (när detta skrivs) när enheten är full. Därför måste du ta bort dem (eller kommentera dem enligt ovan).

Steg 6: Kör plottern

Vid det här laget är allt som behövs för att börja plotta att köra plotman interactive.

Obs: Det mycket långvariga jobbet som planerar att /dev/farm/usb2 är en felsökningskörning som inte är avsedd att köras till slut.

Hoppas att denna kan var till hjälp för att ge dig en uppfattning om vad som krävs för att odla Chia!

Från och med nu är min gård 1/3 av vägen full och jag planerar att lägga upp uppdateringar när den fylls upp och när jag börjar planera om för pooler.

Ett särskilt tack till Katie Gandomi för hjälp med utveckling.

Lycka till med jordbruket!

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

Tidsstämpel:

Mer från Medium