Share Difficulty expressa o grau de exigência que um resultado de mineração deve cumprir para ser aceito pelo pool como share, uma prova contínua do trabalho realizado. Uma dificuldade maior significa, em média, menos resultados válidos para o mesmo número de tentativas. É uma configuração diferente da dificuldade de encontrar um bloco na rede Bitcoin.
A mineração produz hashes: resultados de cálculo que podem ser interpretados como números. Para que o pool possa aceitar um resultado, ele não pode ultrapassar o alvo estabelecido. Um alvo menor é mais rigoroso, pois menos resultados ficam abaixo dele. Share Difficulty, portanto, aumenta quando o alvo numérico diminui. Para quem se interessa pelo protocolo: Stratum V2, o conjunto de regras de comunicação com o pool, envia esse limite no campo target da mensagem SetTarget. Não é preciso conhecer o formato da mensagem para entender a ideia: um teto numérico mais baixo torna a condição mais difícil para o minerador. [1]
Imagine que o pool aumente a dificuldade de Petra de 1024 para 2048. Com a mesma capacidade de cálculo e a dificuldade medida na mesma escala, esperamos aproximadamente metade dos resultados válidos durante um período igual. A máquina continua tentando na mesma velocidade; apenas menos resultados passam pelo filtro mais rigoroso. Os intervalos individuais continuam aleatórios. Petra não deve esperar que cada share seguinte apareça exatamente depois do dobro do tempo. [2]
Contar apenas mensagens seria comparar coisas diferentes. Por isso, a Braiins explica a contabilização por meio de unidades de trabalho ponderadas pela dificuldade. Dois resultados aceitos com dificuldade 1024 têm juntos o mesmo peso que um com dificuldade 2048. Menos mensagens, portanto, não provam uma contribuição menor. Petra também não deve confundir esse peso contábil com o número exato de cálculos realmente executados: trata-se de evidência estatística de trabalho. A remuneração depende ainda das regras do pool. [3]
Alterar Share Difficulty não acelera por si só o ASIC, o chip especializado da máquina de mineração. Também não muda o alvo da rede para um bloco Bitcoin. Com o mesmo número de tentativas independentes e a mesma dificuldade de rede, a chance de encontrar um bloco permanece igual. O pool só muda quais resultados intermediários deseja receber. Reduzir a dificuldade dos shares não facilita a produção de blocos Bitcoin. [3]
Com a mesma configuração, máquinas menos potentes e mais potentes enviariam quantidades de resultados muito diferentes. VarDiff, o ajuste automático da dificuldade, equilibra essa diferença e reduz o tráfego desnecessário. A Braiins também permite definir um mínimo. Ele é um limite inferior, não uma atribuição fixa: o pool pode escolher uma dificuldade maior conforme a capacidade de cálculo. Ao comparar suas configurações com o valor atual na tela, Petra precisa primeiro identificar se está vendo o mínimo ou a dificuldade realmente atribuída. [2]
O software precisa saber a que trabalho uma mudança se refere. Segundo a especificação atual de Stratum V2, SetTarget vale para trabalhos recebidos depois e para trabalhos futuros recebidos anteriormente cujo ntime_start esteja vazio. Esse campo define a marca de tempo inicial no cabeçalho do bloco, que resume seus dados essenciais. Um campo vazio indica um trabalho que ainda aguarda ativação. Um trabalho já recebido com ntime_start preenchido conserva seu alvo. Para investigar uma rejeição, portanto, não basta comparar o resultado com o limite mais recente: é necessário associá-lo ao trabalho correto. Normalmente, o software de mineração faz isso. [1]
Petra também pode encontrar o indicador best share. A Braiins Solo, por exemplo, usa esse nome para o share de maior dificuldade encontrado durante uma sessão de mineração. A dificuldade atribuída descreve a condição suficiente para enviar um resultado; best share descreve a raridade do resultado realmente encontrado. Um recorde não é progresso acumulado rumo a um bloco. Nem mesmo um resultado excepcional aumenta a chance da próxima tentativa independente. [4]
Um mínimo manual alto demais pode tornar os envios tão espaçados que a estimativa de capacidade de cálculo oscile bastante. O monitoramento pode então emitir um alerta mesmo com o ASIC funcionando. Uma pausa curta sem share não comprova, por si só, uma falha. Petra compara a dificuldade atribuída, o período observado, o trabalho aceito e o estado da conexão. Juntas, essas informações ajudam a distinguir a aleatoriedade normal de um problema real. [2]
Para ter uma visão mais completa, leia este verbete junto com Mining Share, Mining Target, Hashrate, Mining Pool, Bitcoin. Também há referências a este verbete em Mining Pool, Stratum V1, Stratum V2, Mining Share.