O Ethereum é uma rede distribuída de computadores rodando software específico que verifica as transações em um bloco, sendo este software conhecido como client. Um “node” é um computador que roda um client do Ethereum. Até o Merge, apenas um software é necessário para rodar um full node (ou um light node, no nosso caso). Após o Merge, além de um client de execução, também será necessário rodar um client de consenso para manter um node.
Ao contrário do Bitcoin, em que existe apenas um software de client (o Bitcoin Core), existem diversos clients do Ethereum escritos em diferentes linguagens de programação, como Go, Rust, JavaScript, TypeScript, Python, C#, etc. O que todos estes clients tem em comum são as especificações sobre como a blockchain do Ethereum funciona, definidas no yellow paper.
Neste tutorial aprenderemos a rodar um light node utilizado o Geth, cliente do Ethereum escrito em Go. Um light node, ao contrário de um full node não faz o download da história completa da blockchain. Na verdade, um light node faz o download de apenas os cabeçalhos de blocos, resultando numa grande diferença de espaço de armazenamento necessário. Enquanto full nodes necessitam de 2TB ou mais de espaço livre, light nodes necessitam de ~400MB, tornando muito mais fácil para o usuário comum rodar em sua máquina pessoal.
Em teoria você poderia rodar qualquer client do Ethereum, entretanto, o único que atualmente suporta light nodes é o Geth.
Instalando o Geth
O geth está disponível para praticamente qualquer sistema operacional, e é possível compilar o programa a partir do código fonte se você assim desejar. No link abaixo você pode conferir o processo de instalação do Geth:
Confira mais detalhes da instalação: Installing Geth
No meu caso, estarei utilizando uma distribuição Linux baseada no Arch. Para instalar o geth é necessário abrir o terminal e digitar o seguinte comando:
sudo pacman -S gethe
pressionar enter.
Prontinho! Após digitar sua senha de administrador e confirmar a instalação, o processo deve começar e terminar rapidamente.
Rodando seu light node
Agora, com o Geth instalado, é só rodar o seguinte comando em seu terminal:
geth –syncmode light –http
Com o Geth rodando, o software irá procurar por peers de onde ele pode baixar os cabeçalhos dos blocos. Peers são outros usuários do software que estão rodando full nodes e compartilham os dados com os light nodes.
Assim que o Geth encontrar um peer ele começará a importar os cabeçalhos de bloco.
Porque rodar seu próprio light node
No passado já houveram problemas na utilização de Dapps devido a falhas no RPC utilizado pela metamask, o Infura. Mais recentemente, hackers tomaram o controle de RPCs muito utilizados da Fantom e Polygon, fazendo com que usuários perdessem fundos no processo.
Rodando seu próprio light node você deixa de ter de confiar em terceiros, como as empresas que mantém os RPCs mais utilizados, e tem uma maneira de se comunicar diretamente com os full nodes na rede, tornando a experiência mais segura e privada.
Utilizando seu node
Ótimo, agora você está rodando seu próprio light node, mas, como você usa ele?
Se você é como 99% dos usuários de DeFi, você utiliza a MetaMask como sua carteira. Nesta parte do tutorial, iremos aprender a como configurar nosso light node para que possamos utilizá-lo para interagir com o blockchain do Ethereum.
OBS: é possível utilizar seu light node com outras carteiras também.
Se lembra de como utilizamos a opção –http quando iniciamos o Geth? Essa opção nos permite conectar facilmente nossa carteira MetaMask ao nosso light node.
Primeiramente, abra as configurações em sua carteira MetaMask
Selecione a aba “Networks”
Clique em “Localhost 8545”
Agora, cheque se seu node está rodando na porta correta. No meu caso, o Geth já estava rodando na porta 8545, então eu só preciso ajustar o “Chain ID” nas configurações. Mude o valor do “Chain ID” para 1 e salve.
Agora, selecione o “Localhost 8545” na tela de seleção de rede de sua MetaMask. Se a opção não aparecer na lista, é necessário que você habilite as redes de teste nas configurações em Settings > Advanced > Show test networks.
Pronto! você já pode fazer transações e interagir com contratos inteligentes utilizando seu próprio light node! Parabéns!
É importante lembrar que para ter o máximo de privacidade e descentralização, o ideal é rodar seu próprio full node. O Geth, hoje, é de longe o client de execução mais utilizado. Se você deseja contribuir com a descentralização do Ethereum rodando seu próprio full node, sugiro que rode outros clients, como OpenEthereum, Nethermind, Besu e Erigon.
Para mais informações sobre nodes e clients do Ethereum, leia: Nodes and clients
Artigo publicado originalmente no LinkedIn do autor.
Sobre o autor
Lucca Benedetti é estudante de bacharelado com ênfase em Engenharia Química pela Universidade de São Paulo. Trabalha como Analista de Research no Mercado Bitcoin.