Uma versão deste artigo foi originalmente publicada em Médio.
À luz de alguns eventos impressionantes recentes na esfera de mineração Bitcoin, fiquei inspirado para configurar minha própria operação de mineração solo pequena de quatro milhões de hashes por segundo (MH/s) e ver como poderia melhorá-la. Alguns dos aspectos que achei que poderiam funcionar estão relacionados à conectividade e em tornar minha configuração mais “pura” no sentido de descentralização e falta de confiança.
Então, inicialmente comecei a investigar como exatamente um solo minera no mundo de mineração extremamente industrializado de hoje. Não estou interessado em mineração em pool de pagamento por ação, já que isso acaba com a diversão da mineração solo e introduz alguma confiança. Quero contribuir diretamente com segurança de taxa de hash não adulterada para a rede Bitcoin.
Nota: estou assumindo que o leitor sabe que a mineração solo é incrivelmente difícil e é mais do que provável que você nunca gere um bloco. Apenas divulgação completa aqui. Tendo dito isto…
Anos atrás, a mineração solo exigia a criação de um pool completo de nível industrial projetado para milhares de mineradores individuais remotos agrupando suas taxas de hash. Lembro-me de tentar configurar um usando o código Eligius ou um dos outros projetos de pool não tão conhecidos no GitHub e foi difícil fazer todos os componentes de software individuais funcionarem. Sabendo disso, vamos apenas dizer que eu não estava esperando que a mineração solo fosse mais fácil hoje.
CK Pool tem sua própria contraparte “solo” (que, honestamente, eu amo que isso exista), e é uma espécie de pool de mineração pseudo-solo onde os mineradores individuais recebem 98% da recompensa do bloco (pagando uma taxa de pool de 2%) quando eles geram um bloco e os outros participantes do pool recebem 0%. Compare isso com a mineração em pool típica, onde todos os contribuidores de taxa de hash recebem uma parte da recompensa do bloco. O Solo CK Pool é ótimo, mas, em última análise, o uso do pool introduz alguma confiança que não deveria existir em uma configuração de mineração solo pura. Há alguma incompatibilidade com a versão mais recente do Bitcoin Core e também com o código CK Pool mais recente, com base na minha tentativa de usá-lo para esta configuração de mineração.
Depois de vasculhar os problemas do DuckDuckGo e do GitHub, me deparei com BFMGiner‘s de se comunicar com um bitcoind local para fins de mineração solo(!). Eu não tinha ideia de que essa funcionalidade existia, pois o BFMGiner era normalmente usado para fazer interface com GPUs ou hardware ASIC durante a mineração.
Nota: O CGMiner também possui esta funcionalidade. Obrigado Con!
Portanto, com esse novo conhecimento do BFMGiner, podemos eliminar qualquer software de pool difícil de configurar ou qualquer pool confiável e contar apenas com o BFMGiner e um nó completo do Bitcoin Core. Isso se encaixa na minha configuração de mineração solo purista.
Isso deixa as melhorias na conectividade. Como isso pode ser reforçado é usando o Blockstream Satellite para complementar o conjunto de peers que meu nó usa enquanto meu ISP está funcionando e como um failover no caso de meu ISP ficar instável e cair minha conexão. Dessa forma, meu hardware de mineração pode saber qual bloco é o bloco mais recente a ser construído e nenhum esforço é desperdiçado.
Uma área de pesquisa é o bloco saída, Contudo. Existem opções como Starlink ou Iridium que podem ser usadas para transmitir um bloco recém-encontrado. O Starlink provavelmente é um exagero em termos de custo devido à probabilidade de realmente minerar um bloco sozinho e os próprios blocos serem relativamente pequenos em tamanho. Mas é uma boa opção. O SMS é outra opção que explorarei em futuros posts.
Como minerar sozinho como um chefe
O guia assume o Ubuntu 20.04. Aviso: alguma compilação é necessária.
É realmente muito fácil agora. Não há mais necessidade de configurar um pool de mineração completo. O BFMGiner pode lidar com tudo o que precisamos. Então vamos preparar tudo.
Configurar o Blockstream Satellite
Siga o excelente guia da Blockstream para montar uma antena de satélite, alinhá-la e instalar todo o software necessário para começar a receber dados de Bitcoin via satélite geossíncrono.
Instale blocksat-cli e Bitcoin Satellite, o nó Bitcoin Core corrigido que a Blockstream mantém para conectividade via satélite.
Configurar BFMGiner
O BFMGiner é um software de mineração GPU/ASIC que também suporta mineração solo usando um bitcoind local!
Este software conectará nosso hardware de mineração ao nosso nó Bitcoin satélite local.
$ git clone https://github.com/luke-jr/bfgminer && cd bfgminer
Para o Ubuntu, tudo que você precisa fazer é instalar as dependências e depois compilar normalmente.
$ sudo apt install automake autoconf libtool pkg-config libcurl4-gnutls-dev libjansson-dev uthash-dev
Então construa.
$ ./autogen.sh
$ ./configure
$ fazer
Com seu bitcoind sincronizado e recebendo dados via satélite (debug.log deve gerar dados de taxa de bits se receber com sucesso), aponte o BFMGiner para seu nó local. Certifique-se de definir server=1 e rpcuser=user rpcpassword=pass in bitcoin.conf
$ ./bfgminer -T -D -P -o ‘127.0.0.1:8332’ -O user:pass –stratum-port 3334 –generate-to
Isso dirá ao BFMGiner para extrair dados do seu nó e em qual porta escutar os mineradores de estrato (basicamente todos os ASICs modernos usam estrato).
Quando o BFGminer estiver em execução, basta apontar seu hardware ASIC para o endereço IP em que seu bitcoind e BFMGiner estão sendo executados (porta 3334) em vez de um pool de mineração normal como o Slush Pool. Você deve começar a ver compartilhamentos de baixa dificuldade sendo enviados pelo hardware de mineração na saída do console do BFGminer. É isso! Você está minerando sozinho como um chefe e tem uma fonte de dados blockchain de backup via satélite geossíncrono. Quão incrível é isso? Boa sorte com a mineração!
Saiba mais sobre o Blockstream Satellite aqui:
Este é um post convidado por Grubles. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou Revista Bitcoin.