Como rodar seu próprio light node do Ethereum.

Introdução

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:

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 geth

e pressionar enter.

Prontinho! Após digitar sua senha de administrador e confirmar a instalação, o processo deve começar e terminar rapidamente.

Processo de instalação do Geth
Processo de instalação do Geth

Rodando seu light node

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

geth --syncmode light --http

O que você deve ver quando rodar o geth pela primeira vez.
O que você deve ver quando rodar o geth pela primeira vez.

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.

Geth importando cabeçalhos de bloco.
Geth importando 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
Como abrir as configurações na MetaMask.
Como abrir as configurações na MetaMask.
  • Selecione a aba “Networks”.
Localização da aba "Networks" em sua carteira MetaMask.
Localização da aba "Networks" em sua carteira MetaMask.
  • Clique em “Localhost 8545”.
Localização do "Localhost 8545"
Localização do "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.
Informações da porta utilizada pelo servidor HTTP do Geth.
Informações da porta utilizada pelo servidor HTTP do Geth.
Mude o valor do "Chain ID" para 1.
Mude o valor do "Chain ID" para 1.
  • 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.
Selecione a rede "Localhost 8545".
Selecione a rede "Localhost 8545".

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:

Me siga no Twitter!

Subscribe to Lucca Benedetti
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.