terça-feira, 16 de janeiro de 2024

Monero - Mineração de criptomoeda com um Raspberry!



Fala pessoal, tudo bem?

Uma das coisas que acho fantástico na tecnologia é a infinidade de criações que são possíveis.
São tantas áreas e avanços que contemplam esse mundo, que realmente ficaríamos horas e horas conversando e o assunto não teria fim.

Um assunto que acho muito legal, é quanto as criptomoedas. Claro que isso é minha humilde opinião. 

Mas o que são criptomoedas?

São formas de moeda digital que utilizam criptografia para garantir transações seguras e controlar a criação de novas unidades. Aqui estão alguns pontos-chave:
  1. Moeda Digital Descentralizada: São ativos digitais que existem apenas em formato eletrônico e não são emitidos por governos ou bancos centrais. Em vez disso, são descentralizadas, operando em uma rede de computadores através de tecnologias como blockchain.


  2. Blockchain: A maioria das criptomoedas utiliza o blockchain, um registro público e imutável de todas as transações feitas com essa moeda. O blockchain é formado por blocos de transações encadeados de forma segura e cronológica.


  3. Segurança e Criptografia: As transações e a criação de novas unidades de criptomoeda são protegidas por criptografia avançada. Isso garante a segurança e autenticidade das transações, permitindo a transferência de fundos de forma confiável e transparente.


  4. Decentralização e Consenso: As criptomoedas geralmente operam em uma rede descentralizada, o que significa que não há uma autoridade central controlando as transações. O consenso entre os participantes da rede é alcançado por meio de protocolos específicos, como o Proof of Work (PoW) ou Proof of Stake (PoS).


  5. Diversidade e Uso: Existem milhares de criptomoedas, cada uma com suas características e propósitos distintos. Algumas são usadas como investimento, outras para transações do dia a dia e outras ainda para aplicações específicas, como contratos inteligentes.


  6. Volatilidade e Speculação: O mercado de criptomoedas é conhecido por sua volatilidade. Os preços podem variar significativamente em curtos períodos, o que torna o investimento em criptomoedas um campo de alto risco e muitas vezes especulativo.

Em resumo, as criptomoedas são formas digitais de dinheiro que operam em uma rede descentralizada, usando criptografia para garantir segurança e permitir transações entre usuários sem a necessidade de intermediários tradicionais, como bancos.


O intuito desse post não é dar uma visão ampla sobre criptomoedas, nem muito menos recomendar que você compre, venda, minere criptomoedas, nem recomendar o uso de qualquer exchange ou carteira onde você pode armazenar suas criptomoedas. Mas sim, trazer de uma forma bem legal do uso da tecnologia para isso.

Para esse "laboratório" nós vamos precisar:
  • Um Raspberry PI 3 ou 4;
  • Cartão SD;
  • Fonte de alimentação para seu Raspberry PI;
  • Uma cold wallet para Monero (cripto que iremos abordar nesse laboratório);
  • E um pool para que possamos fazer parte da blockchain de mineração de Monero;
Mas é possível isso?
A resposta é SIM!!!

Mas o que é Monero?

Monero é uma criptomoeda que se destaca por sua ênfase na privacidade e anonimato das transações. Ao contrário do Bitcoin, que é pseudo-anônimo, as transações na rede Monero são completamente privadas e não rastreáveis.

Como funciona:

  1. Privacidade: A Monero utiliza um protocolo chamado "Ring Confidential Transactions" (RingCT) e "Ring Signatures" para mascarar o remetente, o destinatário e o valor da transação. Isso é feito misturando as transações de várias fontes, tornando praticamente impossível rastrear uma transação específica.


  2. Ring Signatures: Esta tecnologia mistura as chaves de assinatura de várias transações, tornando impossível identificar qual chave específica foi usada para assinar a transação.


  3. RingCT: Ele oculta o valor das transações, permitindo que as transações sejam verificadas sem revelar o valor exato transferido.


    Proof of Work (Prova de Trabalho): Assim como o Bitcoin, a Monero usa um sistema de mineração para adicionar novas transações ao blockchain. No entanto, a Monero utiliza um algoritmo de mineração diferente (CryptoNight), que é otimizado para ser executado em CPUs comuns, tornando a mineração mais acessível para usuários comuns.

No geral, a Monero se concentra em fornecer um alto nível de privacidade e fungibilidade, onde cada unidade de moeda é indistinguível das outras. Isso a torna atraente para aqueles que valorizam a confidencialidade nas transações financeiras.


É isso mesmo, com isso já podemos iniciar a mineração das nossas próprias criptomoedas.
Vale reforçar que não é aquele poder de mineração igual temos com Bitcoin, por exemplo. Esse tipo de mineração precisamos de placas potentes, sistemas de refrigeração ... considerando que tudo isso gasta-se muita energia também.

A mineração do Monero é mais modesta e "simples", tanto que podemos fazer isso com um Raspberry. 😬

Então não espere ter milhões do dia pra noite, nem valores expressivos ...
A ideia aqui é didaticamente inserir o assunto e ainda por cima usufruir desses recursos tecnológicos e mostrar para o que podemos usar. Ok, se você pensou: "Baita coisa de nerd isso!!!"... Pois é... você entendeu... rsrs

A preparação do Raspberry você pode seguir esse procedimento: Instalando o Raspberry PI

Após a configuração do Raspberry, vamos acessa-lo via ssh e para isso você pode utilizar a ferramenta de sua preferência (Putty, CMD, terminal, etc).

No meu caso, vou utilizar o terminal do MacOS conectando por SSH.

Primeira coisa a se fazer é atualizar os repositórios do Raspberry. Para isso vamos digitar o comando:

$ sudo apt update



Agora precisamos fazer os pré-requisitos, que nada mais é do que instalação de alguns pacotes/programas:

$ sudo apt install git build-essential make libuv1-dev libssl-dev libhwloc-dev -y



Agora vamos fazer o clone do repositório do Git com o programa que vamos usar para fazer a mineração:

$ git clone https://github.com/xmrig/xmrig.git



Com o comando "ls -la", podemos ver que agora temos um diretório/uma pasta com o nome xmrig.


Para entrar no diretório xmrig, vamos utilizar o seguinte comando cd e em seguida vamos precisar criar um novo diretório chamado build com o comando mkdir. Dessa forma:

$ cd xmrig ; mkdir build



Esses outros arquivos e diretórios, eles já existem pois foram clonados através do comando git, ok?

Agora, nós vamos precisar entrar no diretório build que criamos e rodar um comando do linux para compilar o programa. A grosso modo, esse comando vai pegar os arquivos que estão nesse diretório do xmrig e criar nosso programa para mineração.

$ cd build ; cmake ..



Em seguida:

$ make



É normal demorar um pouco, teremos que esperar a compilação do programa finalizar.


Um ponto importante além de minerar uma criptomoeda, é o local onde ela será armazenada.
Vamos entender aqui alguns pontos:

O programa que estamos compilando no Raspberry será responsável por participar em pool de mineração, neste caso da cripto Monero, mas essas quantidades de cripto que você minerar no pool não podem ficar lá. De certo modo não é correto e seguro, então é recomendado que dado algumas quantidades mineradas você as transfira para sua carteira. 

Pode ser uma exchange? Pode! Mas também não é recomendado.

Uma exchange é o equivalente a uma corretora para troca, compra e venda de criptomoedas. Exemplo: Binance, Foxbit, Mercado Bitcoin, etc.
Algumas cobram taxas de transação (acho que todas na verdade), cobram pela transferência... mas acontece que você precisa delas para negociar suas criptos. Posso deixar tudo lá? Pode! Mas é por sua conta e risco. Se ocorrer algum problema com a exchange, você pode ser impedido de sacar, transferir, etc. Se a exchange for hackeada também... pode acontecer de você perder todas as suas criptos.

Aqui no nosso laboratório, nós vamos instalar uma carteira específica para receber os Moneros que forem minerados.

Você pode baixar acessando o link https://www.getmonero.org/, Downloads, Monero Gui Wallet:


Indo um pouco mais para baixo nessa tela de Downloads, você irá escolher a opção de acordo com seu sistema operacional.

Basicamente a instação é NNF (Next, Next, Finish).

Após a instalação você precisará abrir a Wallet e fazer a configuração dela.

Clicar na opção para criar uma nova carteira:



Defina um nome:


Na tela seguinte irá aparecer um conjunto de palavras que será necessário você salvar (tira foto, manda por e-mail, salva num Drive da vida... sei lá) ... mas você vai precisar disso caso queira recuperar em algum momento sua carteira e suas criptos.
A própria Wallet vai fazer um teste no passo seguinte para ver se você anotou tudo certinho.




Será necessário criar uma senha para a Wallet:


E por fim, clicar em "Create Wallet":


Podem ficar em paz, como eu criei essa carteira apenas para poder tirar os prints, ela não foi finalizada hahaha

Bem, agora nós precisamos fazer parte de um pool de mineradores. Para este caso, eu utilizei o https://moneroocean.stream/

Mas por que precisamos usar um pool de mineração?
Acontece que mesmo sendo possível a mineração de forma mais fácil da cripto Monero, mesmo podendo utilizar um Raspberry para isso, ele não tem grande poder computacional. Deste modo, se unir a um pool, faz com que as coisas acontecem de forma mais rápida. Unindo forçar, esse poder de processamento aumenta e assim conseguimos mais blocos minerados com um intervalo de tempo menor do que se fosse tudo feito sozinho.

Agora, nós vamos precisar juntar essas três pontas: o software que compilamos no Raspberry, o endereço do pool de mineração de Monero e o endereço da sua Wallet para que sejam feitos os depósitos dos seus Moneros.

Para isso, precisamos voltar no Raspberry e executar o seguinte comando:

Dentro daquela pasta build que compilamos o programa, Ok?

$ ./xmrig -o gulf.moneroocean.stream:10128 -u 438748DUuohdsoa8dsd80890948e9w8re90f0dsf89dsf0sd98r9djjadpaida9du9a0dua09sdu09asud0as9du0asud9u -p piJP

Onde: 
  • ./xmrig - é o formato para execução de programas de mineração;
  • -o - parâmetro para fornecermos o endereço do pool de mineração que neste caso é o gulf.moneroocean.stream na porta de comunicação 10128
  • -u - é o endereço da sua walleta. Isso mesmo, aquela que instalamos e configuramos. O endereço dela você consulta no menu do lado esquerdo "Receber" -> "Endereço" -> "Endereço primário"
  • -p - parâmetro para identificação dos mineradores dentro do pool. Neste caso eu coloquei como piJP, mas você pode escolher qualquer outro nome que faça sentido para você
Ao final, você deverá ver um resultado semelhante à esse:


Para acompanhar seu progresso quanto a mineração, você acessar o site do pool https://moneroocean.stream/ e onde aparece o campo "Your Monero Address ...", você adiciona o endereço da sua Wallet que foi o mesmo utilizado com o comando xmrig.

Vai demorar um tempo até processar e atualizar a página e até você conseguir suas primeiras criptos. 

Estes serão os campos onde o XMR Total Que foi o total minerado e XMR Paid é o valor que você já transferiu do pool para sua carteira.

Pontos importantes!

  1. Você pode ajustar o valor a ser transferido automaticamente para sua carteira quando ele for atingido, porém, o Monero Ocean cobra uma pequena taxa para isso (até aí OK, eles mantém todo pool de mineração);
  2. Existem um valor mínimo para poder fazer a transferência;
  3. Você pode criar envio de e-mails para acompanhar isso;
Clicando neste botão:


Você terá acesso a parte de configuração de threshold e pagamento:


Outro ponto importante!

Quando você transfere suas criptos do pool para sua carteira, eles são seus de fato e estão salvos no seu computador.
Posso perde-las? Sim, sempre pode! Basta você esquecer a senha, as palavras de recuperação, se seu computador for invadido e seus dados criptogrados também, mas de fato, é a forma mais segura de se manter e salvar suas criptos.

Não vou entrar no mérito de carteiras do modelo cold Wallet, isso fica pra próxima.

Entendido isso, fica uma dúvida agora: "Mas como então eu posso vender ou trocar meus Moneros?"

Você precisa transferi-las da sua Wallet para uma Exchange e lá dentro você faz tudo isso.
Este passo fica complicado de mostrar, por que cada exchange tem seu layout e opções, então vai depender da qual foi escolhida por vocês. Inclusive se tal Exchange tem a cripto Monero no seu portfólio. 

Mas basicamente, na wallet do seu computador, você vai no menu "Enviar" -> No campo endereço você irá informar o endereço da sua conta na Exchange (algumas criam endereços diferentes pra cada cripto) -> clicar em Enviar.


É isso.
Espero que todos se animem de explorar a mineração de Monero e fazer todo esse procedimento. 😃

Reforçando... isso é legal demais!!! rsrs

Abs e até a próxima pessoal.
:wq!

Nenhum comentário:

Postar um comentário