Construirea unei platforme agricole Chia de 200 TB PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Construirea unei platforme agricole Chia de 200 TB

O revizuire completă de la selecția componentelor până la configurarea software-ului pentru un sistem de exploatare a criptomonedei Chia.

Construirea unei platforme agricole Chia de 200 TB PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Chia este o nouă criptomonedă care își propune să obțină un consens descentralizat cu un consum mai mic de energie pe tranzacție decât colegii săi. Acest lucru se realizează prin intermediul a Algoritmul de dovadă a spațiului în loc de dovada muncii.

În timp ce dovada muncii se bazează pe calcularea continuă a unei probleme de matematică (de obicei hash-uri, cum ar fi SHA256) în încercarea de a găsi rezultate care se potrivesc cu un model dorit, Chia se bazează în schimb pe verificarea existenței anumitor proprietăți în fișiere unice pre-generate numite ploturi.

Acest lucru se face într-un proces în două etape numit agricultură constând din:

  1. Trasarea unde sunt create fișiere unice mari (de obicei 101.6 GB).

Cu cât un nod are mai multe parcele (de stocare mai mare folosită), cu atât este mai mare șansa de a câștiga recompensa acelui bloc. Există 4608 șanse de câștig zilnic și probabilitatea de a câștiga recompensa acelui bloc se bazează în primul rând pe numărul de parcele pe care le deține, proporțional cu dimensiunea totală a rețelei. Este oferit un calculator de câștiguri aici.

Prin urmare, pentru a maximiza recompensele dorim să avem cea mai mare cantitate de stocare posibilă și suficiente resurse de calcul pentru a umple spațiul de stocare menționat cu parcele.

Ca și în cazul majorității problemelor de proiectare, există o infinitate de soluții valide pentru combinația de dispozitive care pot fi folosite pentru a cultiva Chia. Pentru a ajuta la restrângerea opțiunilor, am început prin a decide asupra unor constrângeri și priorități:

  1. Costul în USD/TB ar trebui redus la minimum în ciuda complexității suplimentare (în limita motivului).

Plot – Procesare

În funcție de configurația hardware, crearea unui singur plot poate dura între 4 și 20 de ore. Prin urmare, alegerea hardware-ului potrivit pentru plotare poate fi diferența între a vă umple întreaga fermă în zile față de luni.

Este important să se ia în considerare nu numai viteza cu care este realizată fiecare parcelă, ci și numărul de parcele concurente care pot fi create. De exemplu, o configurație care creează 10 diagrame concomitente la 12 ore fiecare va produce 20 de diagrame (~2TB/zi), în timp ce o configurație care prezintă 1 diagramă simultană la fiecare 4 ore va produce doar 6 diagrame pe zi (0.6TB/zi).

Pentru a minimiza costurile, am decis să caut servere scoase din funcțiune. Aceste servere au câteva proprietăți interesante care le-ar putea face plotere puternice, inclusiv:

  1. Numărul mare de nuclee poate permite mai multe parcele în paralel. Faza 1 (aproximativ jumătate din timpul de plot) este multithread (de obicei configurată să fie între 2 și 4 fire), dar fazele rămase sunt cu un singur thread.

După ce am trecut peste zeci de opțiuni și configurații posibile, m-am mulțumit cu un HP ProLiant DL380p Gen8 cu 2x Intel E5–2670 și 192 GB de RAM DDR3. Cu hyper-threading activat, acest server ar putea suporta ipotetic trasarea simultană a până la 16 parcele în faza 1 pentru mai puțin de 400 USD.

Plot - Stocare temporară

Datorită încărcării mari de scriere în timpul creării plotului (aproximativ 1.6 TB scris pentru plot ak=32), alegerea mediului de stocare temporară poate avea un impact semnificativ asupra timpului și costului de plotare. Câteva puncte de luat în considerare:

  1. Cu cât stocarea este mai rapidă, cu atât mai rapid pot fi create parcele. Acest fir discută 4 ore de timpi de diagramă folosind RAMDISK (montează un folder pe RAM).

Am ajuns să optez pentru a cumpăra un HP StorageWorks D12 cu 2600 locații și unități SAS de 15K 450GB. Cu această configurare, pot complot simultan pentru fiecare unitate, fără a risca conflicte IO la nivel de unitate. Unitățile JBOD + au fost semnificativ mai ieftine decât o configurare echivalentă cu unități NVMe (fără măcar a lua în considerare costul de înlocuire după ce a fost atins TBW).

Fermă — Depozitare pe termen lung

Spre deosebire de stocarea de plotare, stocarea de recoltare nu necesită un debit mare sau IOP-uri. Din acest motiv, reducerea costurilor a fost cea mai mare prioritate.

Există mai multe configurații posibile, dintre care unele sunt discutate aici. Cu toate acestea, după ce am căutat pe eBay opțiuni second-hand, câteva lucruri au devenit clare:

  1. Hard disk-urile mai mari de 3.5″ tind să aibă cel mai mic cost. Acest lucru are sens, deoarece majoritatea dispozitivelor din zilele noastre au trecut la dimensiuni mai mici de 2.5″ sau 1.8″.

Odată ce m-am limitat la utilizarea hard disk-urilor SAS de 3.5 inchi, trebuia să găsesc o modalitate de a le conecta efectiv la harvester/plotter-ul meu. Ținând cont de constrângerea de a nu construi carcasa/backplane-ul, am început să caut carcase uzate care ar putea găzdui aceste unități, menținând în același timp cel mai mic cost per locație.

Am dat peste mai multe opțiuni pe eBay și am ajuns să cumpăr câteva modele diferite, inclusiv un HP 24PAR cu 3 de locații și două IBM DS12 cu 3512 locații.

Lista plina

Lista finală a componentelor este prezentată mai jos. Acesta include componentele principale discutate mai sus, dar și părți auxiliare care sunt necesare pentru a monta sistemul.

O mențiune demnă este cardul HBA. Este placa PCIe care expune conectorii externi SAS la care se vor conecta cablurile de la JBOD-uri. Când îl cumpărați, asigurați-vă că obțineți un card de mod țintă inițiator (IT), astfel încât unitățile să apară direct în sistemul de operare, spre deosebire de un card de mod IR. Ca un lucru plăcut, poate doriți să primiți un card flash cu un sistem de operare mai nou (versiunea 20).

Configurarea este în mare parte intuitivă. Cablurile se conectează la orificiile în care se potrivesc. Cu toate acestea, cablarea SAS care conectează JBOD-urile și mașina de trasat/recoltat poate fi conectată în lanț.

În cazul meu, am două cabluri care părăsesc serverul (câte unul pe fiecare port de la HBA). Unul dintre cabluri se conectează la intrarea matricei de stocare temporară (HP D2600), iar ieșirea matricei respective se conectează la matricea HP 3PAR. Celălalt cablu se conectează la prima matrice IBM, iar ieșirea acestuia se conectează la a doua matrice IBM. JBOD-urile au de obicei un port de intrare (primar) și un port de ieșire (de obicei etichetat cu o săgeată spre exterior).

Am instalat Ubuntu 20.04 LTS pe server, deoarece este o distribuție Linux utilizată pe scară largă, ceea ce înseamnă că ar fi mai ușor să găsiți forumuri de depanare dacă apar probleme. Pașii de mai jos descriu configurația rămasă.

Pasul 1: Asigurați-vă că toate unitățile sunt disponibile

Primul pas este să verificați ce unități sunt detectate de sistemul de operare. Acest lucru poate fi realizat prin rularea lsscsi comanda. A cărui ieșire este prezentată mai jos.

Rețineți că comanda de mai sus nu oferă informații despre sistemul de fișiere sau dimensiunea unităților. Pentru asta, rulați lsblk comanda.

Important: Rețineți că nu toate unitățile apar sub ambele comenzi! Unitățile care apar sub lsscsi dar nu lsblk poate avea unele incompatibilități care fac ca sistemul de operare să nu le facă disponibile pentru montare etc. Un exemplu în acest sens este /dev/sdaw.

În cazul meu, această problemă a fost cauzată din cauza dimensiunii sectorului de 520, care nu este acceptată de kernel-ul meu Linux instalat (discuția pe acest subiect poate fi găsită aici și aici). Puteți determina dacă acesta este cazul dvs. uitându-vă peste dmesg jurnalul comenzii pentru un mesaj de eroare precum [sdaw] Unsupported sector size 520.

Pentru a rezolva acest lucru, am reformatat unitățile folosind o dimensiune de bloc de 512 cu comanda sg_format -v --format --size=512 /dev/sdX. Această comandă poate dura o perioadă semnificativă de timp pentru a rula (câteva ore), iar rezultatul este afișat mai jos.

La finalizare, unitatea ar trebui să apară în lsblk ieșire.

Pasul 2: Creați un sistem de fișiere pe unități

Pentru a formata unitățile cu ext4 sistem de fișiere, am rulat următoarea comandă: sudo mkfs -t ext4 — verbose /dev/sda.

Pasul 3: Montați unitățile

Acum că putem accesa unitățile și acestea au fost formatate cu sistemul de fișiere dorit, putem monta aceste unități.

  1. Creați folderele în care vom monta unitățile. De exemplu: /mnt/farm/00 la /mnt/farm/23 pentru unitățile care vor stoca parcelele finale și /mnt/plot-tmp/00 la /mnt/plot-tmp/11 pentru locațiile temporare de parcelare.

Pasul 4: Rulați software-ul Chia Blockchain

  1. Urmați instrucțiunile oficiale specificate aici pentru a instala blockchain-ul Chia (nu am instalat GUI-ul).

Pasul 5: Configurați Plotman (opțional)

Plotman este un manager de plotting care va prelua crearea de noi locuri de muncă de plotting. Este un instrument comod (nu este necesar).

  1. Instalați Plotman urmând instrucțiunile aici.
interfața cu utilizatorul:
use_stty_size: Adevărat
directoare:
jurnal: /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
programare:
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
timp_de_votare: 30
complot:
k: 32
e: Fals # Utilizați opțiunea de trasare -e
n_threads: 2 # fire per job
n_buckets: 128 # Numărul de compartimente în care să împărțiți datele
job_buffer: 8096 # Per memorie de lucru

Câteva puncte care merită menționate:

  1. Plotman nu oprește programarea la drive-uri fermă (în momentul scrierii acestui articol) când unitatea este plină. Prin urmare, trebuie să le eliminați (sau să le comentați ca mai sus).

Pasul 6: Rulați plotterul

În acest moment, tot ceea ce este necesar pentru a începe să complotezi este să rulezi plotman interactive.

Notă: Lucrarea de lungă durată la care se complotează /dev/farm/usb2 este o rulare de depanare care nu este menită să ruleze până la final.

Sper că această cutie a fost de ajutor pentru a vă oferi o idee despre ceea ce este necesar pentru a cultiva Chia!

Începând de acum, ferma mea este plină la 1/3 din drum și plănuiesc să postez actualizări pe măsură ce se umple și când încep să re-plotez pentru piscine.

Multumiri speciale Katie Gandomi pentru ajutor la dezvoltare.

Fericire agricultură!

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

Timestamp-ul:

Mai mult de la Mediu