En komplet gennemgang fra komponentvalg til softwarekonfiguration til et Chia-kryptovaluta-landbrugssystem (minedrift).
Del er en ny kryptovaluta, der sigter mod at opnå decentraliseret konsensus med et lavere energiforbrug pr. transaktion end sine jævnaldrende. Dette opnås via en bevis for rumalgoritmen i stedet for Bevis for arbejde.
Mens bevis for arbejde er afhængig af kontinuerlig beregning af et matematisk problem (normalt hashes såsom SHA256) i et forsøg på at finde resultater, der matcher et ønsket mønster, er Chia i stedet afhængig af at kontrollere eksistensen af visse egenskaber i unikke forudgenererede filer kaldet plots.
Dette gøres i en to-trins proces kaldet landbrug bestående af:
- plotning hvor store unikke filer (normalt 101.6 GB) oprettes.
- og høst hvor de tidligere oprettede filer kontrolleres for en chance for at vinde den pågældende bloks belønning (i øjeblikket 2 Chia).
Jo flere plots (større brugt lagerplads) en node har, jo større er chancen for at vinde den pågældende bloks belønning. Der er 4608 chancer for at vinde dagligt, og sandsynligheden for at vinde den bloks belønning er primært baseret på antallet af plots, man ejer i forhold til den samlede netværksstørrelse. Der medfølger en indtjeningsberegner link..
Derfor, for at maksimere belønningerne ønsker vi at have den størst mulige lagerplads og nok computerressourcer til at fylde lageret op med plots.
Som med de fleste designproblemer er der en uendelighed af gyldige løsninger på kombinationen af enheder, der kan bruges til at dyrke Chia. For at hjælpe med at indsnævre mulighederne startede jeg med at beslutte mig for nogle begrænsninger og prioriteter:
- Omkostningerne i $/TB bør minimeres på trods af yderligere kompleksitet (inden for rimelighedens grænser).
- På grund af min begrænsede tid til rådighed til at afsætte til dette projekt, bør systemet for det meste være sammensat af hyldedele (ingen brugerdefinerede printkort, tilpasset chassis osv.).
Plotning — Bearbejdning
Afhængigt af hardwareopsætningen kan et enkelt plot tage mellem 4 og 20 timer at oprette. Derfor kan valget af den rigtige plotting hardware være forskellen mellem at fylde hele din gård op på dage kontra måneder.
Det er vigtigt ikke kun at overveje hastigheden, hvormed hvert plot er lavet, men også antallet af samtidige plot, der kan oprettes. For eksempel vil en opsætning, der opretter 10 samtidige plots på 12 timer hver producere 20 plots (~2TB/dag), mens en opsætning, der plotter 1 samtidige plot hver 4. time, kun vil producere 6 plots pr. dag (0.6TB/dag).
For at minimere omkostningerne besluttede jeg at søge efter dekommissionerede servere. Disse servere har nogle interessante egenskaber, der kunne gøre dem til kraftfulde plottere, herunder:
- Stort antal kerner kan give mulighed for flere plots parallelt. Fase 1 (omkring halvdelen af plottiden) er flertrådet (normalt konfigureret til at være mellem 2 og 4 tråde), men de resterende faser er enkelttrådede.
- Tilgængelig RAM er normalt mere end det, der kræves for at plotte (~4GB/samtidig plot).
- Designet til at fungere ved høj belastning i længere perioder.
Efter at have gennemgået snesevis af muligheder og mulige konfigurationer, nøjedes jeg med en HP ProLiant DL380p Gen8 med 2x Intel E5–2670 og 192 GB DDR3 RAM. Med hyper-threading aktiveret, kunne denne server hypotetisk understøtte samtidig plotning af op til 16 plots i fase 1 for under $400.
Udlodning — Midlertidig Opbevaring
På grund af den høje skrivebelastning under plotoprettelsen (omkring 1.6 TB skrevet for ak=32 plot), kan valget af midlertidigt lagringsmedium have en betydelig indflydelse på plotningstiden og omkostningerne. Et par punkter at overveje:
- Jo hurtigere lagring, jo hurtigere kan plots oprettes. Denne tråd diskuterer 4 timers plottider ved hjælp af RAMDISK (monter en mappe til RAM).
- I betragtning af det store skrivevolumen er det vigtigt at overveje mediets udholdenhed. En forbrugerklasse 1TB NVMe SSD har normalt omkring 600 TBW (terabytes skrevet) udholdenhed, før den forventes at mislykkes, hvilket ville betyde, at den kunne lave omkring 375 plots.
Jeg endte med at vælge at købe en 12-bay HP StorageWorks D2600 med 15K 450GB SAS-drev. Med denne opsætning kan jeg plotte til hvert drev samtidigt uden at risikere IO-stridigheder på drevniveau. JBOD +-drevene var væsentligt billigere end en tilsvarende opsætning med NVMe-drev (uden selv at tage hensyn til udskiftningsomkostningerne, efter at TBW er nået).
Gård — Langtidsopbevaring
I modsætning til plotlageret kræver høstlageret ikke høj gennemstrømning eller IOP'er. Af denne grund var minimering af omkostninger den højeste prioritet.
Der er flere mulige opsætninger, hvoraf nogle diskuteres link.. Men efter at have søgt på eBay efter brugte muligheder, blev et par ting klart:
- De større 3.5" harddiske har tendens til at have de laveste omkostninger. Dette giver mening, da de fleste enheder i dag er flyttet til de mindre 2.5" eller 1.8" størrelser.
- SAS-harddiske (ikke SSD'er) så ud til at have den laveste pris pr. TB med nogle partier så lave som $10/TB (fra maj 2021). Disse SAS-drev er ikke kompatible med SATA-kort (forbrugerkort) og sælges normalt på eBay efter at være blevet taget ud af drift fra en virksomheds datacenter.
Da jeg først var begyndt at bruge 3.5" SAS-harddiske, var jeg nødt til at finde en måde at forbinde dem til min høstmaskine/plotter. Ved at holde fast i begrænsningen af ikke at bygge kabinettet/bagplanet begyndte jeg at lede efter brugte kabinetter, der kunne huse disse drev og samtidig bevare den laveste pris pr.
Jeg stødte på flere muligheder på eBay og endte med at købe et par forskellige modeller, herunder en 24-bay HP 3PAR og to 12-bay IBM DS3512.
Fuld liste
Den endelige liste over komponenter er vist nedenfor. Det omfatter hovedkomponenterne diskuteret ovenfor, men også hjælpedele, der er nødvendige for at sætte systemet sammen.
En værdig omtale er HBA-kortet. Det er PCIe-kortet, der blotlægger de eksterne SAS-stik, som kablerne fra JBOD'erne vil forbinde til. Når du køber det, skal du sikre dig, at du får et initiator target (IT)-tilstandskort, så drevene vises direkte til OS i modsætning til et IR-tilstandskort. Som en rar at have, vil du måske få et kort flashet med et nyere OS (version 20).
Opsætningen er for det meste intuitiv. Kabler forbindes til de huller, de passer i. SAS-kablerne, der forbinder JBOD'erne og plotte-/høstemaskinen, kan dog kædes sammen.
I mit tilfælde har jeg to kabler, der forlader serveren (et på hver port fra HBA). Et af kablerne forbindes til indgangen på det midlertidige lagerarray (HP D2600), og outputtet fra det array forbindes til HP 3PAR-arrayet. Det andet kabel forbindes til det første IBM-array, og outputtet fra det forbindes til det andet IBM-array. JBOD'erne har normalt en input (primær) port og en output port (normalt mærket med en udadgående pil).
Jeg installerede Ubuntu LTS 20.04 på serveren, da det er en meget brugt Linux-distribution, hvilket betyder, at det ville være lettere at finde fejlfindingsfora, hvis der opstod problemer. Trinene nedenfor skitserer den resterende konfiguration.
Trin 1: Sørg for, at alle drev er tilgængelige
Det første trin er at kontrollere, hvilke drev der registreres af OS. Dette kan opnås ved at køre lsscsi
kommando. Hvis output er vist nedenfor.
Bemærk, at ovenstående kommando ikke giver information om filsystemet eller størrelsen af drevene. For det skal du køre lsblk
kommando.
Vigtig: Bemærk, at ikke alle drev vises under begge kommandoer! De drev, der vises under lsscsi
men ikke lsblk
kan have en vis inkompatibilitet, der gør, at OS ikke gør dem tilgængelige for montering osv. Et eksempel på dette er /dev/sdaw
.
I mit tilfælde var dette problem forårsaget på grund af, at sektorstørrelsen var 520, hvilket ikke understøttes af min installerede Linux-kerne (diskussion om dette emne kan findes link. , link.). Du kan afgøre, om dette er din sag ved at se over dmesg
kommandoens log for en fejlmeddelelse som [sdaw] Unsupported sector size 520
.
For at løse dette omformaterede jeg drevene med en blokstørrelse på 512 med kommandoen sg_format -v --format --size=512 /dev/sdX
. Denne kommando kan tage en betydelig mængde tid at køre (adskillige timer), og outputtet er vist nedenfor.
Efter færdiggørelsen skal drevet dukke op i lsblk
udgang.
Trin 2: Opret filsystem på drev
For at formatere drevene med ext4 filsystem, kørte jeg følgende kommando: sudo mkfs -t ext4 — verbose /dev/sda
.
Trin 3: Monter drev
Nu hvor vi kan få adgang til drevene, og de er blevet formateret med det ønskede filsystem, kan vi montere disse drev.
- Opret mapperne, hvor vi skal montere drevene. For eksempel:
/mnt/farm/00
til/mnt/farm/23
for de drev, der skal gemme de endelige plots, og/mnt/plot-tmp/00
til/mnt/plot-tmp/11
for de midlertidige plottesteder. - Kør
sudo blkid
for at få de unikke ID'er på dine drev (eller partitioner). Det vil udsende flere linjer som f.eks/dev/sdae: UUID=”29494f44–2f75–4c01-a766–18755eb583d7" TYPE=”ext4"
. - Rediger fstab-filen med
sudo vim /etc/fstab
og tilknyt hvert af drevene med deres tilsvarende/mnt/...
folder. Være forsigtig ikke at redigere de første linjer i filen, da disse er nødvendige for at montere OS-roddrevet. Min endelige fil er vist nedenfor. - Kør
sudo mount -a
for at montere alle de drev, der er angivet i fstab-filen. Det vil kun montere drev, der ikke allerede er monteret, så det er sikkert at køre flere gange. - Sørg for, at brugerne har adgang til drevene og dets filer ved at køre sudo
chmod -R 777 /mnt/farm/00
.
Trin 4: Kør Chia Blockchain Software
- Følg de angivne officielle instruktioner link. at installere Chia blockchain (jeg installerede ikke GUI).
- Kør
chia start farmer
for at starte dæmonerne til tegnebogen, høstmaskinen osv.
Trin 5: Konfigurer Plotman (valgfrit)
Plotman er en plotleder, der skal overtage oprettelsen af nye plottejobs. Det er et bekvemt værktøj (ikke påkrævet).
- Installer Plotman ved at følge instruktionerne link..
- Redigere
plotman.yaml
efter din plotters specifikationer. Min endelige fil er vist nedenfor.
brugergrænseflade:
use_stty_size: Sandt
mapper:
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 FULD
#- /mnt/farm/01 FULD
#- /mnt/farm/02 FULD
#- /mnt/farm/03 FULD
#- /mnt/farm/04 FULD
#- /mnt/farm/05 FULD
#- /mnt/farm/06 FULD
#- /mnt/farm/07 FULD
#- /mnt/farm/08 FULD
#- /mnt/farm/09 FULD
#- /mnt/farm/10 FULD
#- /mnt/farm/11 FULD
- /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
planlægning:
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
afstemningstider: 30
plotte:
k: 32
e: Falsk # Brug -e plotting mulighed
n_tråde: 2 # tråde pr. job
n_buckets: 128 # Antal buckets at opdele data i
job_buffer: 8096 # Pr. jobhukommelse
Nogle punkter der er værd at nævne:
- Plotman stopper ikke med at planlægge til farm-drev (i skrivende stund), når drevet er fuldt. Derfor skal du fjerne dem (eller kommentere dem som ovenfor).
- Plotman vil automatisk tilføje gårddrev til chia-høsteren.
- Jeg bruger
tmpdir_max_jobs
lig med 1, da jeg plotter til harddiske, som ikke har en god søgeydelse sammenlignet med SSD'er.
Trin 6: Kør plotteren
På dette tidspunkt er alt, hvad der er nødvendigt for at begynde at plotte, at køre plotman interactive
.
Bemærk: Det meget langvarige job, der plotter til /dev/farm/usb2
er en fejlretningskørsel, der ikke er beregnet til at køre til fuldførelse.
Håber denne kan var nyttig til at give dig en idé om, hvad der kræves for at dyrke Chia!
Lige nu er min gård 1/3 af vejen fuld, og jeg planlægger at sende opdateringer, efterhånden som den fyldes op, og når jeg begynder at planlægge puljer igen.
Særlig tak til Katie Gandomi for hjælp til udvikling.
Godt landbrug!
- adgang
- Yderligere
- Alle
- omkring
- Bugt
- blockchain
- Bygning
- købe
- Købe
- forårsagede
- odds
- kontrol
- komponent
- computing
- Konsensus
- forbruger
- forbrug
- cryptocurrency
- data
- dag
- decentral
- Design
- Udvikling
- Enheder
- DID
- Indtjening
- eBay
- energi
- EU
- EV
- gård
- landbrug
- Fornavn
- passer
- format
- fuld
- Give
- godt
- Hardware
- Høj
- hus
- hr
- HTTPS
- ia
- IBM
- idé
- KIMOs Succeshistorier
- Herunder
- oplysninger
- Intel
- IP
- IT
- Job
- Karriere
- stor
- Niveau
- Limited
- linux
- Liste
- belastning
- Lang
- LP
- Match
- matematik
- medium
- Mining
- måned
- netværk
- officiel
- Indstillinger
- Andet
- Mønster
- ydeevne
- Pools
- projekt
- bevis
- RAM
- Ressourcer
- Resultater
- gennemgå
- Belønninger
- rig
- Kør
- kører
- sikker
- Søg
- forstand
- Størrelse
- So
- Software
- solgt
- Løsninger
- SOLVE
- Space
- hastighed
- delt
- starte
- påbegyndt
- opbevaring
- butik
- support
- Understøttet
- systemet
- mål
- midlertidig
- tid
- transaktion
- opdateringer
- brugere
- versus
- bind
- tegnebog
- Hvad er
- Wikipedia
- vinde
- inden for
- Arbejde
- værd
- skrivning