Construindo uma plataforma de cultivo de Chia de 200 TB PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Construindo uma plataforma agrícola de Chia de 200 TB

Uma revisão completa desde a seleção de componentes até a configuração de software para um sistema de cultivo (mineração) de criptomoeda Chia.

Construindo uma plataforma de cultivo de Chia de 200 TB PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Chia é uma nova criptomoeda que visa alcançar um consenso descentralizado com menor consumo de energia por transação do que seus pares. Isto é conseguido através de um algoritmo de prova de espaço em vez de prova de trabalho.

Embora a prova de trabalho dependa da computação contínua de um problema matemático (geralmente hashes como SHA256) na tentativa de encontrar resultados que correspondam a um padrão desejado, Chia depende da verificação da existência de certas propriedades em arquivos exclusivos pré-gerados chamados gráficos.

Isso é feito em um processo de duas etapas chamado agricultura consiste de:

  1. Plotagem onde grandes arquivos exclusivos (geralmente 101.6 GB) são criados.

Quanto mais parcelas (maior armazenamento utilizado) um nó tiver, maior será a chance de ganhar a recompensa daquele bloco. Existem 4608 chances de ganhar diariamente e a probabilidade de ganhar a recompensa desse bloco é baseada principalmente no número de lotes que alguém possui em proporção ao tamanho total da rede. Uma calculadora de ganhos é fornecida SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Portanto, para maximizar as recompensas, queremos ter a maior quantidade de armazenamento possível e recursos computacionais suficientes para preencher esse armazenamento com parcelas.

Tal como acontece com a maioria dos problemas de design, há uma infinidade de soluções válidas para a combinação de dispositivos que podem ser usados ​​para cultivar Chia. Para ajudar a restringir as opções, comecei decidindo algumas restrições e prioridades:

  1. O custo em $/TB deve ser minimizado apesar da complexidade adicional (dentro do razoável).

Plotagem - Processamento

Dependendo da configuração do hardware, um único gráfico pode levar de 4 a 20 horas para ser criado. Portanto, escolher o hardware de plotagem certo pode ser a diferença entre preencher toda a sua fazenda em dias ou meses.

É importante considerar não apenas a velocidade com que cada plotagem é feita, mas também o número de plotagens simultâneas que podem ser criadas. Por exemplo, uma configuração que cria 10 gráficos simultâneos de 12 horas cada produzirá 20 gráficos (~2 TB/dia), enquanto uma configuração que cria 1 gráfico simultâneo a cada 4 horas produzirá apenas 6 gráficos por dia (0.6 TB/dia).

Para minimizar custos, decidi procurar servidores desativados. Esses servidores têm algumas propriedades interessantes que podem torná-los plotadores poderosos, incluindo:

  1. Um grande número de núcleos pode permitir vários gráficos em paralelo. A fase 1 (cerca de metade do tempo de plotagem) é multithread (geralmente configurada para ter entre 2 e 4 threads), mas as fases restantes são de thread único.

Depois de examinar dezenas de opções e configurações possíveis, optei por um HP ProLiant DL380p Gen8 com 2x Intel E5–2670 e 192 GB de RAM DDR3. Com o hyper-threading habilitado, este servidor poderia hipoteticamente suportar a plotagem simultânea de até 16 plotagens na fase 1 por menos de US$ 400.

Plotagem — Armazenamento Temporário

Devido à alta carga de gravação durante a criação da plotagem (cerca de 1.6 TB gravados para uma plotagem k=32), a escolha do meio de armazenamento temporário pode ter um impacto significativo no tempo e no custo da plotagem. Alguns pontos a considerar:

  1. Quanto mais rápido for o armazenamento, mais rapidamente as parcelas poderão ser criadas. Este tópico discute tempos de plotagem de 4 horas usando RAMDISK (montar uma pasta na RAM).

Acabei optando por comprar um HP StorageWorks D12 de 2600 compartimentos com unidades SAS de 15K e 450GB. Com esta configuração, posso plotar simultaneamente para cada unidade sem arriscar a contenção de E/S no nível da unidade. As unidades JBOD + eram significativamente mais baratas do que uma configuração equivalente com unidades NVMe (sem sequer levar em consideração o custo de substituição após o TBW ser atingido).

Fazenda – Armazenamento de Longo Prazo

Ao contrário do armazenamento de plotagem, o armazenamento de colheita não requer alto rendimento ou IOPs. Por esse motivo, minimizar custos era a maior prioridade.

Existem várias configurações possíveis, algumas das quais são discutidas SUA PARTICIPAÇÃO FAZ A DIFERENÇA. No entanto, depois de pesquisar no eBay por opções de segunda mão, algumas coisas ficaram claras:

  1. Os discos rígidos maiores de 3.5″ tendem a ter o custo mais baixo. Isso faz sentido, já que a maioria dos dispositivos hoje em dia mudou para tamanhos menores de 2.5″ ou 1.8″.

Depois que comecei a usar discos rígidos SAS de 3.5″, precisei encontrar uma maneira de realmente conectá-los à minha colheitadeira/plotter. Mantendo a restrição de não construir o gabinete/backplane, comecei a procurar gabinetes usados ​​que pudessem abrigar essas unidades, mantendo o menor custo por baia.

Encontrei várias opções no eBay e acabei comprando alguns modelos diferentes, incluindo um HP 24PAR de 3 baias e dois IBM DS12 de 3512 baias.

Lista completa

A lista final de componentes é mostrada abaixo. Inclui os componentes principais discutidos acima, mas também peças auxiliares necessárias para montar o sistema.

Uma menção digna é a placa HBA. É a placa PCIe que expõe os conectores externos SAS aos quais os cabos dos JBODs serão conectados. Ao comprá-lo, certifique-se de obter uma placa de modo de destino inicial (IT) para que as unidades apareçam diretamente no sistema operacional, em vez de uma placa de modo IR. É bom ter um cartão atualizado com um sistema operacional mais recente (versão 20).

A configuração é principalmente intuitiva. Os cabos se conectam aos orifícios nos quais se encaixam. No entanto, o cabeamento SAS que conecta os JBODs e a máquina de plotagem/colheita pode ser conectado em série.

No meu caso, tenho dois cabos saindo do servidor (um em cada porta do HBA). Um dos cabos se conecta à entrada do array de armazenamento temporário (HP D2600) e a saída desse array se conecta ao array HP 3PAR. O outro cabo se conecta ao primeiro array IBM e a saída dele se conecta ao segundo array IBM. Os JBODs geralmente possuem uma porta de entrada (primária) e uma porta de saída (geralmente identificada com uma seta para fora).

Eu instalei Ubuntu LTS 20.04 no servidor, pois é uma distribuição Linux amplamente usada, o que significa que seria mais fácil encontrar fóruns de solução de problemas se surgisse algum problema. As etapas abaixo descrevem a configuração restante.

Etapa 1: certifique-se de que todas as unidades estejam disponíveis

A primeira etapa é verificar quais unidades estão sendo detectadas pelo sistema operacional. Isso pode ser feito executando o lsscsi comando. A saída é mostrada abaixo.

Observe que o comando acima não fornece informações sobre o sistema de arquivos ou tamanho das unidades. Para isso, execute o lsblk comando.

Importante: Observe que nem todas as unidades aparecem em ambos os comandos! As unidades que aparecem em lsscsi mas não lsblk pode ter alguma incompatibilidade que esteja fazendo com que o SO não os disponibilize para montagem, etc. /dev/sdaw.

No meu caso, esse problema foi causado devido ao tamanho do setor ser 520, o que não é suportado pelo meu kernel Linux instalado (a discussão sobre este tópico pode ser encontrada SUA PARTICIPAÇÃO FAZ A DIFERENÇA e SUA PARTICIPAÇÃO FAZ A DIFERENÇA). Você pode determinar se este é o seu caso examinando o dmesg log do comando para uma mensagem de erro como [sdaw] Unsupported sector size 520.

Para resolver isso reformatei as unidades usando um tamanho de bloco de 512 com o comando sg_format -v --format --size=512 /dev/sdX. Este comando pode levar um tempo significativo para ser executado (várias horas) e a saída é mostrada abaixo.

Após a conclusão, a unidade deve aparecer no lsblk saída.

Etapa 2: criar sistema de arquivos em unidades

Para formatar as unidades com o ext4 sistema de arquivos, executei o seguinte comando: sudo mkfs -t ext4 — verbose /dev/sda.

Etapa 3: montar unidades

Agora que podemos acessar as unidades e elas foram formatadas com o sistema de arquivos desejado, podemos montar essas unidades.

  1. Crie as pastas onde montaremos os drives. Por exemplo: /mnt/farm/00 para /mnt/farm/23 para as unidades que armazenarão os gráficos finais, e /mnt/plot-tmp/00 para /mnt/plot-tmp/11 para os locais de plotagem temporários.

Etapa 4: execute o software Chia Blockchain

  1. Siga as instruções oficiais especificadas SUA PARTICIPAÇÃO FAZ A DIFERENÇA para instalar o blockchain Chia (não instalei a GUI).

Etapa 5: configurar o Plotman (opcional)

Conspirador é um gerenciador de plotagem que assumirá a criação de novos trabalhos de plotagem. É uma ferramenta conveniente (não obrigatória).

  1. Instale o Plotman seguindo as instruções SUA PARTICIPAÇÃO FAZ A DIFERENÇA.
interface de usuário:
use_stty_size: Verdadeiro
diretórios:
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 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/fazenda/12
- /mnt/fazenda/13
- /mnt/fazenda/14
- /mnt/fazenda/15
- /mnt/fazenda/16
- /mnt/fazenda/17
- /mnt/fazenda/18
- /mnt/fazenda/19
- /mnt/fazenda/20
- /mnt/fazenda/21
- /mnt/fazenda/22
- /mnt/fazenda/23
agendamento:
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
plotagem:
k: 32
e: False # Use a opção de plotagem -e
n_threads: 2 # Threads por trabalho
n_buckets: 128 # Número de buckets para dividir os dados
job_buffer: 8096 # Por memória de trabalho

Alguns pontos que merecem destaque:

  1. Plotman não para de programar unidades de farm (no momento em que este livro foi escrito) quando a unidade está cheia. Portanto, você precisa removê-los (ou comentá-los como acima).

Etapa 6: execute a plotadora

Neste ponto, tudo o que é necessário para iniciar a plotagem é executar plotman interactive.

Nota: O trabalho de longa duração plotado para /dev/farm/usb2 é uma execução de depuração que não deve ser executada até a conclusão.

Espero que isso tenha sido útil para lhe dar uma ideia do que é necessário para cultivar Chia!

A partir de agora, minha fazenda está 1/3 cheia e pretendo postar atualizações à medida que ela for cheia e quando eu começar a plotar novamente para pools.

Agradecimentos especiais a Katie Gandomi para ajudar no desenvolvimento.

Agricultura feliz!

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

Carimbo de hora:

Mais de Médio