Como rodar seu próprio light node do Ethereum

Confira o passo a passo de instalação e uso de um light node com Lucca Benedetti
Simbolo da rede Ethereum

Fonte.Shutterstock

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.

Publicidade

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:

Publicidade

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.

Informações da porta utilizada pelo servidor HTTP do Geth.

Rodando seu light node

Agora, com o Geth instalado, é só rodar o seguinte comando em seu terminal:

geth –syncmode light –http

Informações da porta utilizada pelo servidor HTTP do Geth.

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.

Informações da porta utilizada pelo servidor HTTP do Geth.

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.

Publicidade

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

Screenshot carteira MetaMask

Selecione a aba “Networks

Screenshot carteira MetaMask

Clique em “Localhost 8545”

Screenshot carteira MetaMask

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.

Informações da porta utilizada pelo servidor HTTP do Geth
Screenshot carteira MetaMask

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.

Screenshot carteira MetaMask

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.

Publicidade