Costruire un impianto agricolo Chia da 200 TB per Data Intelligence PlatoBlockchain. Ricerca verticale. Ai.

Costruire un impianto agricolo Chia da 200 TB

Una revisione completa dalla selezione dei componenti alla configurazione del software per un sistema di farming (mining) di criptovaluta Chia.

Costruire un impianto agricolo Chia da 200 TB per Data Intelligence PlatoBlockchain. Ricerca verticale. Ai.

Chia è una nuova criptovaluta che mira a raggiungere un consenso decentralizzato con un consumo energetico per transazione inferiore rispetto ai suoi pari. Ciò si ottiene tramite a dimostrazione dell'algoritmo spaziale invece di prova di lavoro.

Mentre la prova del lavoro si basa sul calcolo continuo di un problema matematico (di solito hash come SHA256) nel tentativo di trovare risultati che corrispondano a un modello desiderato, Chia si basa invece sulla verifica dell'esistenza di determinate proprietà in file unici pregenerati chiamati grafici.

Questo viene fatto in un processo in due fasi chiamato agricoltura consiste in:

  1. Tracciare dove vengono creati file univoci di grandi dimensioni (solitamente 101.6 GB).

Maggiore è il numero di lotti (maggiore spazio di archiviazione utilizzato) di un nodo, maggiore è la possibilità di vincere la ricompensa di quel blocco. Ci sono 4608 possibilità di vincere ogni giorno e la probabilità di vincere la ricompensa di quel blocco si basa principalmente sul numero di lotti posseduti in proporzione alla dimensione totale della rete. Viene fornito un calcolatore dei guadagni qui.

Perciò, per massimizzare i premi vogliamo avere la massima quantità di spazio di archiviazione possibile e risorse di calcolo sufficienti per riempire detto spazio di archiviazione con grafici.

Come per la maggior parte dei problemi di progettazione, esistono un'infinità di soluzioni valide per la combinazione di dispositivi che possono essere utilizzati per coltivare Chia. Per aiutare a restringere le opzioni ho iniziato decidendo alcuni vincoli e priorità:

  1. Il costo in $/TB dovrebbe essere ridotto al minimo nonostante la complessità aggiuntiva (entro limiti ragionevoli).

Tracciare - Elaborazione

A seconda della configurazione dell'hardware, la creazione di una singola trama può richiedere dalle 4 alle 20 ore. Pertanto, la scelta dell'hardware di plottaggio giusto può fare la differenza tra riempire l'intera fattoria in giorni anziché in mesi.

È importante considerare non solo la velocità con cui viene realizzata ciascuna trama, ma anche il numero di trame simultanee che possono essere create. Ad esempio, una configurazione che crea 10 grafici simultanei a 12 ore ciascuno produrrà 20 grafici (~2 TB/giorno), mentre una configurazione che traccia 1 grafico simultaneo ogni 4 ore produrrà solo 6 grafici al giorno (0.6 TB/giorno).

Per ridurre al minimo i costi, ho deciso di cercare server dismessi. Questi server hanno alcune proprietà interessanti che potrebbero renderli potenti plotter, tra cui:

  1. Un numero elevato di nuclei può consentire la realizzazione di più appezzamenti in parallelo. La fase 1 (circa la metà del tempo di trama) è multithread (solitamente configurata per essere compresa tra 2 e 4 thread), ma le fasi rimanenti sono a thread singolo.

Dopo aver esaminato dozzine di opzioni e possibili configurazioni, ho optato per un HP ProLiant DL380p Gen8 con 2x Intel E5–2670 e 192 GB di RAM DDR3. Con l'hyper-threading abilitato, questo server potrebbe ipoteticamente supportare la stampa simultanea fino a 16 grafici nella fase 1 per meno di $ 400.

Tracciatura: archiviazione temporanea

A causa dell'elevato carico di scrittura durante la creazione del tracciato (circa 1.6 TB scritti per ak=32 plot), la scelta del supporto di memorizzazione temporaneo può avere un impatto significativo sui tempi e sui costi di tracciamento. Alcuni punti da considerare:

  1. Quanto più veloce è l'archiviazione, tanto più veloce sarà la creazione dei grafici. Questo thread discute i tempi di trama di 4 ore utilizzando RAMDISK (montare una cartella sulla RAM).

Alla fine ho optato per l'acquisto di un HP StorageWorks D12 a 2600 alloggiamenti con unità SAS da 15 e 450 GB. Con questa configurazione, posso tracciare simultaneamente su ciascuna unità senza rischiare conflitti di I/O a livello di unità. Le unità JBOD+ erano significativamente più economiche di una configurazione equivalente con unità NVMe (senza nemmeno considerare il costo di sostituzione una volta raggiunto il TBW).

Azienda agricola: stoccaggio a lungo termine

A differenza dell'archiviazione di plottaggio, l'archiviazione di raccolta non richiede throughput o IOP elevati. Per questo motivo, la massima priorità era ridurre al minimo i costi.

Esistono diverse configurazioni possibili, alcune delle quali verranno discusse qui. Tuttavia, dopo aver cercato su eBay opzioni di seconda mano, alcune cose sono diventate chiare:

  1. I dischi rigidi da 3.5″ più grandi tendono ad avere il costo più basso. Ciò ha senso poiché la maggior parte dei dispositivi oggigiorno è passata alle dimensioni più piccole da 2.5″ o 1.8″.

Una volta che mi sono limitato all'utilizzo dei dischi rigidi SAS da 3.5", avevo bisogno di trovare un modo per collegarli effettivamente al mio raccoglitore/plotter. Attenendomi al vincolo di non costruire il contenitore/backplane, ho iniziato a cercare contenitori usati che potessero ospitare queste unità mantenendo il costo per alloggiamento più basso.

Mi sono imbattuto in diverse opzioni su eBay e ho finito per acquistare alcuni modelli diversi tra cui un HP 24PAR a 3 alloggiamenti e due IBM DS12 a 3512 alloggiamenti.

Lista completa

L'elenco finale dei componenti è mostrato di seguito. Comprende i componenti principali discussi sopra ma anche le parti accessorie necessarie per mettere insieme il sistema.

Una menzione degna di nota è la scheda HBA. È la scheda PCIe che espone i connettori esterni SAS a cui si collegheranno i cavi dei JBOD. Al momento dell'acquisto, assicurati di ricevere una scheda in modalità IT (initiator target) in modo che le unità vengano visualizzate direttamente sul sistema operativo anziché su una scheda in modalità IR. È bello avere una scheda con un sistema operativo più recente (versione 20).

La configurazione è per lo più intuitiva. I cavi si collegano ai fori in cui si inseriscono. Tuttavia, il cablaggio SAS che collega i JBOD e la macchina per il tracciamento/raccolta è collegabile in catena.

Nel mio caso, ho due cavi in ​​uscita dal server (uno su ciascuna porta dell'HBA). Uno dei cavi si collega all'ingresso dell'array di archiviazione temporanea (HP D2600) e l'uscita di tale array si collega all'array HP 3PAR. L'altro cavo si collega al primo array IBM e l'output si collega al secondo array IBM. I JBOD solitamente hanno una porta di input (primaria) e una porta di output (solitamente etichettata con una freccia rivolta verso l'esterno).

Ho installato Ubuntu LTS 20.04 sul server poiché è una distribuzione Linux ampiamente utilizzata, il che significa che sarebbe più facile trovare forum per la risoluzione dei problemi in caso si verificassero problemi. I passaggi seguenti descrivono la configurazione rimanente.

Passaggio 1: assicurarsi che tutte le unità siano disponibili

Il primo passo è verificare quali unità vengono rilevate dal sistema operativo. Ciò può essere ottenuto eseguendo il file lsscsi comando. Il cui output è mostrato di seguito.

Tieni presente che il comando precedente non fornisce informazioni sul file system o sulla dimensione delle unità. Per questo, esegui il file lsblk comando.

Importante: Tieni presente che non tutte le unità compaiono in entrambi i comandi! Le unità visualizzate sotto lsscsi ma non lsblk potrebbe avere qualche incompatibilità che impedisce al sistema operativo di renderli disponibili per il montaggio, ecc. Un esempio di ciò è /dev/sdaw.

Nel mio caso, questo problema è stato causato dalla dimensione del settore 520 che non è supportata dal kernel Linux installato (è possibile trovare la discussione su questo argomento qui ed qui). Puoi determinare se questo è il tuo caso esaminando il file dmesg registro del comando per un messaggio di errore come [sdaw] Unsupported sector size 520.

Per risolvere questo problema ho riformattato le unità utilizzando una dimensione di blocco pari a 512 con il comando sg_format -v --format --size=512 /dev/sdX. L'esecuzione di questo comando può richiedere molto tempo (diverse ore) e l'output è mostrato di seguito.

Al termine, l'unità dovrebbe essere visualizzata nel file lsblk produzione.

Passaggio 2: crea un file system sulle unità

Per formattare le unità con ext4 file system, ho eseguito il seguente comando: sudo mkfs -t ext4 — verbose /dev/sda.

Passaggio 3: montare le unità

Ora che possiamo accedere alle unità e che sono state formattate con il file system desiderato, possiamo farlo Mount queste unità.

  1. Crea le cartelle in cui monteremo le unità. Per esempio: /mnt/farm/00 a /mnt/farm/23 per le unità che memorizzeranno i grafici finali e /mnt/plot-tmp/00 a /mnt/plot-tmp/11 per le posizioni di tracciato temporanee.

Passaggio 4: esegui il software Chia Blockchain

  1. Seguire le istruzioni ufficiali specificate qui per installare la blockchain di Chia (non ho installato la GUI).

Passaggio 5: impostazione di Plotman (facoltativo)

Tramatore è un gestore di plottaggio che si occuperà della creazione di nuovi lavori di plottaggio. È uno strumento utile (non richiesto).

  1. Installa Plotman seguendo le istruzioni qui.
interfaccia utente:
use_stty_size: vero
directory:
log: /home/plotter/plotman-logs
tempo:
- /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 COMPLETO
#- /mnt/farm/01 COMPLETO
#- /mnt/farm/02 COMPLETO
#- /mnt/farm/03 COMPLETO
#- /mnt/farm/04 COMPLETO
#- /mnt/farm/05 COMPLETO
#- /mnt/farm/06 COMPLETO
#- /mnt/farm/07 COMPLETO
#- /mnt/farm/08 COMPLETO
#- /mnt/farm/09 COMPLETO
#- /mnt/farm/10 COMPLETO
#- /mnt/farm/11 COMPLETO
- /mnt/fattoria/12
- /mnt/fattoria/13
- /mnt/fattoria/14
- /mnt/fattoria/15
- /mnt/fattoria/16
- /mnt/fattoria/17
- /mnt/fattoria/18
- /mnt/fattoria/19
- /mnt/fattoria/20
- /mnt/fattoria/21
- /mnt/fattoria/22
- /mnt/fattoria/23
programmazione:
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
tracciando:
K: 32
e: False # Usa l'opzione di disegno -e
n_thread: 2 # Thread per lavoro
n_buckets: 128 # Numero di bucket in cui suddividere i dati
job_buffer: 8096 # Per memoria di lavoro

Alcuni punti degni di nota:

  1. Plotman non interrompe la pianificazione delle unità della farm (al momento della stesura di questo articolo) quando l'unità è piena. Pertanto, è necessario rimuoverli (o commentarli come sopra).

Passaggio 6: eseguire il plotter

A questo punto, tutto ciò che serve per iniziare a tracciare è correre plotman interactive.

Nota: il lavoro a esecuzione molto lunga su cui si sta pianificando /dev/farm/usb2 è un'esecuzione di debug che non è destinata a essere eseguita fino al completamento.

Spero che questo possa esserti stato utile per darti un'idea di ciò che è necessario per coltivare Chia!

A partire da ora, la mia fattoria è piena per 1/3 e ho intenzione di pubblicare aggiornamenti man mano che si riempie e quando inizio a riprogettare i pool.

Un ringraziamento speciale a Katie Gandomi per aiuto con lo sviluppo.

Buona agricoltura!

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

Timestamp:

Di più da Medio