Última atualização: 09/11/2021 às 01:00
Guia: Monero Node com Docker
Introduçāo
Este é um guia adaptado para português brasileiro, originalmente escrito por Seth for Privacy. A proposta desse guia é apenas facilitar a instalaçāo de um nó Monero utilizando Docker container.
Vale mencionar também que o guia a seguir foi baseado a partir de um computador Linux, rodando uma distribuiçāo baseada no Debian. Sim, funciona no Ubuntu, Pop OS, Parrot OS, Kubuntu e no Linux Mint. É possível instalar o Docker no Windows ou no Mac, porém eu não pretendo abordar isso neste guia. Também é possível usar esse guia para instalar o node em uma Virtual Private Server (VPN).
Hardware necessário
- Para rodar o node completo (full node), você precisa de pelo menos 2 vCPU/cores, 4GB de memória RAM e 180GB de espaço em disco (SSD recomendável).
- O nó prunado (prunned) precisa das mesmas especificaçōes (2 vCPU/cores e 4GB de memória RAM), porém menos armazenamento: 80GB já basta.
Motivação
A rede Monero depende de uma rede distribuída de nós. Cada nó valida as transações, além de propagar transações para o resto da rede e ajudar os novos nós a se sincronizarem de forma fácil e rápida com o resto da rede. Rodar um nó oferece sólidas garantias de privacidade, aumenta a descentralização, estabilidade e velocidade da rede Monero.
Docker?
O Docker é uma plataforma de código aberto, desenvolvido na linguagem Go e criada pela empresa Docker.Inc. Basicamente, a plataforma garante maior facilidade na criação e administração de ambientes isolados, garantindo a rápida disponibilização de programas para o usuário final.
O Docker tem como objetivo criar, testar e implementar aplicações em um ambiente separado da máquina original, chamado de container. Dessa forma, o desenvolvedor consegue empacotar o software de maneira padronizada. Isso ocorre porque a plataforma disponibiliza funções básicas para sua execução, como: código, bibliotecas, runtime e ferramentas do sistema.
Imagina que o seu computador seria um barco apto para navegar e carregar coisas mundo afora. A proposta do Docker é acrescentar aplicações (caixas) prontas em cima do seu barco, sem que você precise se preocupar como instalar, manejar, atualizar e por aí vai.
A instalaçāo utilizando Docker tem uma série de beneficíos para o usuário, como manter o software automaticamente atualizado (Watchtower). simplicidade e carregamento automatico com o sistema operacional (Debian Linux, no nosso caso).
Preparação
Antes de tudo, precisamos instalar alguns pacotes. Abra um terminal e digite:
sudo apt update && sudo apt-get upgrade -y
sudo apt install -y ufw curl
Agora nós instalamos o Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
su - $USER
A próxima etapa agora é preparar as regras do firewall para permitir que o nó Monero consiga acessar a rede de forma segura e também permitir conexões via SSH.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 18080/tcp
sudo ufw allow 18089/tcp
sudo ufw enable
Instalando Docker e rodando Monero
Sim, chegou a hora :) A instalação a seguir roda o monerod (daemon) no background e baixa a blockchain. Destaco aqui que o container inclui apenas o monerod (daemon), sendo que você precisa instalar a sua carteira (wallet) de forma separada. Trata-se de uma decisão pessoal, eu recomendo a Feather Wallet pela usabilidade e velocidade de carregamento.
Agora selecione qual implementação você deseja instalar, a versão completa do nó ou a prunada. São dois comandos e você deve copiar e colar um por vez.
Blockchain completa (full node):
docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist
docker run -d \
--name watchtower --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower --cleanup \
monerod tor
Blockchain prunada (prunned):
docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist --prune-blockchain
docker run -d \
--name watchtower --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower --cleanup \
monerod tor
Pronto, é só isso. Agora resta aguardar. Para acompanhar o download dos blocos, apenas digite no terminal:
docker logs --follow monerod
Atualizando o Node
Como estamos executando o Monero em um contêiner do Docker e implantamos o Watchtower junto com ele, o nó será reiniciado automaticamente com a versão mais recente do monerod sempre que uma nova versão for marcada no Git. Sim, você não precisa mais fazer o update manualmente :)
Tor (opcional)
Se expor sua porta RPC no Tor como um serviço oculto, siga estes comandos.
sudo apt-get install tor
sudo systemctl enable tor
sudo mkdir /var/lib/tor/hidden_service
sudo chown debian-tor:debian-tor /var/lib/tor/hidden_service
Agora você precisa abrir o arquivo torrc e adicionar as linhas abaixo no final. Sinta-se livre para usar qualquer editor de texto. No meu caso, eu escolhi o Gedit do Gnome.
sudo gedit /etc/tor/torrc
E adicione as linhas abaixo:
Tor Monero RPC HiddenService
HiddenServiceDir /var/lib/tor/hidden_service/monero-rpc
HiddenServicePort 18089 127.0.0.1:18089
Salve o arquivo e depois feche o editor de texto.
Chegou a hora de reiniciar o Tor e visualizar qual o seu endereço .onion para acessar o seu nó. Execute os comandos abaixo:
sudo systemctl restart tor
sudo cat /var/lib/tor/hidden_service/monero-rpc/hostname
O endereço .onion é o seu novo Monero RPC Hidden Service. Lembre-se também que é necessário usar a porta 18089 ao se conectar com o nó. Para testar a conectividade, basta abrir o Tor Browser e acessar http: //substituiapeloenderecoonion:18089/get_info e verifique se você visualiza um bloco de texto (JSON).
Usando o nó
Isso dependerá da carteira que você escolheu usar. Normalmente, o processo envolve apenas adicionar a especificação do endereço IP ou adicionar endereço Onion. Para acessar na mesma máquina, adicione 127.0.0.1:18089 ou substituiapeloenderecoonion:18089.
Aguarde a wallet sincronizar com os blocos e pronto, você está apto a utilizar Monero com absoluta soberania e privacidade.
Na Feather Wallet, clique em File → Settings → Node → From custom list e adicione o seu endereço IP ou .onion seguido da porta 1809. Exemplo: 127.0.0.1:1809
Monero GUI Wallet: selecione Settings → Node → Remote Node. Agora adicione o .onion
address ou o seu endereço IP, seguido da porta. Selecione Mark as Trusted Daemon também :)
Se houver dúvidas, veja esse link para verificar como se conectar a um nó remoto.
Espero ter ajudado. Saudaçōes, paz e um futuro próspero!
Nenhum comentário
Comentar