O assunto deste deste artigo é velocidade de mineração, chamado comumente de hashrate. Com ele, gostaríamos de esclarecer duas dúvidas muito comum dos mineradores:
- Por que ocorrem oscilações no meu hashrate?
- Por que existe diferença entre o hashrate exibido na tela do seu minerador e o exibido na pool?
Primeiro, precisamos entender como o hashrate é calculado no minerador e na pool:
A velocidade exibida na tela do minerador é uma velocidade praticamente constante e é calculada com base no valor que ela pode atingir, levando em consideração apenas o suas especificações de MEMORIA e PROCESSAMENTO. Ela é baseada na capacidade do seu hardware processar aquele algoritmo com aquele software. Em outras palavras, a velocidade que o seu equipamento é capaz processar aquele algoritmo naquele instante.
Já a pool, calcula o seu hashrate baseada nos shares válidos que são entregues a ela por seu equipamento. Estes dados são plotados em um gráfico que mostra a quantidade de shares entregues em intervalos de tempo pré-definidos pela pool. Este gráfico, como veremos, apresenta oscilações. Estas oscilações podem ser características do processamento ou indicar alguma falha. Não se assuste agora, usaremos um exemplo prático para melhor entendimento.
Oscilações características do processo
Estas oscilações, como o nome sugere, são uma característica do processo de mineração e não significam um problema. Em outras palavras, não há com o que se preocupar.
Vamos tentar explicar o porque disto através de exemplos:
Supondo que no seu software de mineração está apresentando uma velocidade de 30Mh/s. Ou seja, seu equipamento é capaz de processar 30 milhões de hashes (possibilidades de solução) por segundo.
Confira nossas sugestões de Pre-Sales para investir agora
Quando você minera em uma pool, seu minerador vai receber tarefas chamadas de “jobs” contendo os hashes que ele tem que resolver. Estes hashes possuem dificuldades de solução variadas. Ao processar esses jobs, o software devolve o resultado para a pool e a mesma confirma o recebimento com a mensagem “share accepted”. Ao fazer isso, ela (a pool) registra que naquele momento aquele minerador entregou um share.
Entendeu até aqui? Então agora imagine que vários desses “jobs” são processados simultaneamente por seu minerador. E que esse processamento não é linear, pois a dificuldade dos jobs varia de um para o outro. Sendo assim, há intervalos em que o software recebe muitos “jobs” da pool e há outros em que ele entrega muitos jobs concluídos (shares), pois como já foi dito a dificuldade é diferente para cada job (e consequentemente o tempo de conclusão também).
A partir deste registro feito na pool ela consegue então saber quantos shares são entregues pelo minerador em um espaço de tempo e isso é suficiente calcular a velocidade de mineração, que então é exibida no site da pool. Concluindo então, quando o minerador entrega poucos jobs nesse intervalo de tempo predefinido, a pool calcula uma velocidade mais baixa e quando o minerador entrega muitos jobs neste mesmo intervalo de tempo, a pool calcula velocidades maiores. E é aí que ocorre a oscilação e os picos, tanto pra cima quanto pra baixo.
Esta oscilação é mais visível quando o minerador possui pouco poder de processamento, como por exemplo, poucas GPUs. Vamos ilustrar isso atavés de 2 exemplos:
Exemplo 1
No exemplo 1 temos um minerador que possui apenas 1 GPU minerando com velocidade próxima a 30Mh/s:
Note que há momentos que a pool registrou velocidades perto de 45Mh/s e outros que chegou perto de 15Mh/s, mas fazendo uma média, a velocidade deste minerador é bem próxima de 30Mh/s.
Exemplo 2
Neste outro caso temos uma farm com 5 RIGs gerenciando 30GPUs, resultando numa velocidade média de 850Mhs/s:
Neste exemplo, como são muitas GPUs entregando muitas tarefas de forma assíncrona, são poucos momentos que a velocidade oscila de forma visível.
Comparando os 2 casos, percebemos a diferença. Com 1 GPU há uma oscilação de quase 50%. Já no caso da farm, com 30 GPUs a oscilação ficou menos perceptível, próxima de 15%.
Oscilações ocasionadas por outros fatores
Além das oscilações características, também podemos ter oscilações causados por fatores externos, o que geralmente caracteriza algum problema na mineração. Nestes casos são vários fatores que você precisa identificar e tomar ações para solucionar ou ao menos minimizar o problema. Abaixo vemos uma situação de oscilação que não é considerada característica:
Neste exemplo temos 2 evidências claras de que há algum problema. O primeiro é o fato de que há momentos que a pool não está comunicando com nenhum worker (linha amarela). O segundo é a oscilação em excesso, onde vários momentos a velocidade fica quase zero e outros com picos muito altos.
Muitos motivos podem causar este tipo de problema, entre eles podemos listar alguns dos principais:
- Instabilidade da conexão do minerador;
- Software/equipamento de mineração travando ou reinicializando por diversos motivos como: overclock acima do limite de estabilidade, superaquecimento, insuficiência no fornecimento de energia (fonte mal dimensionada);
- Configuração incorreta do software de mineração.
Considerações finais
As variações do hashrate portanto podem ser completamente normais, apenas demonstrando uma característica da mineração. Característica esta que varia de acordo com a pool, algoritmo, equipamento, software utilizado, entre outros fatores. Apesar disso, essa oscilação pode indicar algum problema, devido a travamentos, perdas de pacote, etc. Sendo assim, é importante saber diferenciar o que está causando oscilação no seu hashrate e assim saber se há algum problema para que você tome as medidas necessárias e tenha o melhor rendimento possível.
Lembrando que placas mal configuradas, com overclock’s errados, BIOS mod, podem apresentar no minerador um valor e entregar para pool outro e isso vale para qualquer pool.