Pular para o conteúdo
0%

Tipos de nós Ethereum: full vs. archive vs. light

Alchemy team headshot

Escrito por Alchemy

Publicado em 11 de agosto de 20226 min de leitura

A blockchain Ethereum é uma rede mundial distribuída de computadores na qual os nós compartilham poder de processamento, recursos e responsabilidades de verificação de blocos para que a rede possa chegar a um consenso (ou seja, concordar sobre um estado compartilhado).

Este post examina os diferentes tipos de nós Ethereum usados na blockchain Ethereum (full nodes, archive nodes e light nodes) e suas diferenças.

O que é um full node?

Um full node mantém uma cópia completa dos dados da blockchain e contribui com a rede recebendo transações e blocos de outros full nodes, validando-os e repassando-os a outros full nodes.

Quando uma transação de smart contract é executada, os full nodes Ethereum executam todas as instruções do smart contract. Juntos, os full nodes determinam se a execução do smart contract está produzindo o resultado esperado. No entanto, rodar full nodes Ethereum é caro e consome bastante energia.

Clients de full node

Um client é uma implementação de software Ethereum que verifica todas as transações de cada bloco, garantindo que a rede seja segura e que os dados de transação sejam válidos. Os clients de full node Ethereum validam todas as transações de cada bloco, fornecendo à rede segurança e precisão de dados.

Cada client Ethereum vem com seu próprio conjunto de capacidades e vantagens. As implementações podem ser adaptadas a diferentes grupos de usuários devido à sua diversidade. Considere recursos, suporte, linguagem de programação web3 e licenças ao escolher um client de nó Ethereum.

Implementações de software de full node (clients da camada de execução)

Existem quatro tipos principais de implementações de full node da camada de execução:

  1. Geth (Go Ethereum) - escrito em Go
  2. Nethermind - escrito em C# e .NET
  3. Erigon - escrito em Go
  4. Hyperledger Besu - escrito em Java

Após o Merge, quando o Ethereum passar de Proof-of-Work para Proof-of-Stake, cada full node precisará rodar um client da camada de consenso em conjunto com um dos clients de camada de execução mencionados acima.

Implementações de software de full node (clients da camada de consenso)

Existem cinco clients principais de camada de consenso:

  1. Prysm - desenvolvido pela Prysmatic Labs em Go
  2. Teku - desenvolvido pela equipe do Besu em Java
  3. Lighthouse - desenvolvido pela Sigma Prime e escrito em Rust
  4. Nimbus - desenvolvido pela equipe do Nimbus, escrito em Rust
  5. Lodestar - desenvolvido pela ChainSafe Systems em Typescript

O que é um light node?

Um light node armazena dados do cabeçalho do bloco, como o hash do bloco anterior e um timestamp, em vez dos dados completos do bloco como um full node faz. Light nodes enviam requisições sob demanda a full nodes, validando apenas as partes do estado que seus usuários precisam.

Dispositivos de baixa capacidade, como computadores pessoais, podem se beneficiar de light nodes porque eles não realizam tarefas dispendiosas de armazenamento e gravação de dados.

Exemplos de casos de uso para light nodes incluem:

  1. Consultar saldos
  2. Validar se uma transação foi confirmada pela rede
  3. Verificar logs de eventos

Além de computadores pessoais, light nodes também podem ser executados de forma eficiente em dispositivos de baixa capacidade, como celulares ou Raspberry Pis.

O que é um archive node?

Um archive node mantém os mesmos dados que um full node, além de todo o histórico de estados da blockchain desde o Genesis Block (ou seja, o primeiro bloco).

Embora os full nodes possam reconstruir dados de estados antigos da blockchain, esse processo de sincronização é demorado e ineficiente. Esses dados podem precisar ser fornecidos rapidamente dependendo do caso de uso. No entanto, archive nodes conseguem rastrear transações porque possuem dados históricos desde o primeiro bloco.

Archive nodes podem armazenar gigabytes de dados passados, o que os torna menos desejáveis para o usuário comum, mas valiosos para provedores de serviços como block explorers, carteiras e empresas de análise on-chain.

Erigon vs. Geth

A implementação oficial em Golang do protocolo Ethereum é o Go Ethereum (ou Geth). O Geth é o client Ethereum mais popular, possui o maior número de usuários e oferece uma ampla variedade de ferramentas baseadas em Go para desenvolvedores, todas open-source e licenciadas sob a GNU LGPL v3.

O Erigon é um fork do Geth focado em velocidade e economia de espaço em disco. O Erigon é uma implementação de client de nó Ethereum totalmente reestruturada, desenvolvida em Go, com planos de ser portada para outras linguagens no futuro. O Erigon busca entregar uma implementação Ethereum mais modular, mais rápida e mais enxuta.

Comparado ao Geth, o desenvolvimento paralelizado, o armazenamento plano, o pré-processamento e a sincronização em estágios do Erigon resultam em menor uso de armazenamento, sincronização mais rápida e, de modo geral, uma experiência melhor para desenvolvedores que precisam usar trace APIs.

Quais são as diferenças entre um full node e um archive node?

A principal diferença entre um full node e um archive node é que o archive node mantém registro de todos os estados anteriores da chain (ou seja, um retrato completo do ecossistema Ethereum), enquanto um full node só precisa armazenar um snapshot dos dados de estado atuais.

Em termos simples, archive nodes contêm todos os dados históricos desde o bloco um, enquanto full nodes contêm apenas os dados mais importantes e atuais necessários para validar novas transações, enquanto dados desnecessários da blockchain são "podados".

Como escolher o tipo certo de nó

Escolher o tipo certo de nó Ethereum para implantar depende do seu caso de uso e dos seus recursos, já que a configuração e a funcionalidade dos nós diferem significativamente.

Você pode usar o Ethereum de forma privada, autossuficiente e sem necessidade de confiança rodando seu próprio nó. Você não precisa confiar na rede porque os dados podem ser verificados com seu próprio client de nó.

Um full node tem a vantagem de poder se comunicar diretamente com qualquer smart contract na blockchain pública. Smart contracts também podem ser implantados na blockchain pública por full nodes.

No entanto, uso ilimitado de dados, armazenamento e capacidades diretas de smart contract não são gratuitos, e full nodes podem sobrecarregar os recursos de hardware e largura de banda da sua máquina.

Archive nodes armazenam todas as informações que um full node armazena e criam um histórico dos estados da blockchain. Mesmo depois que um client terminar a sincronização, archive nodes continuarão salvando dados anteriores.

Se sua aplicação exigir informações históricas da blockchain, você precisará rodar seu próprio archive node ou escolher um provedor de nós de blockchain que ofereça acesso a archive node.

Light nodes são comparáveis a full nodes, porém lidam apenas com uma pequena quantidade de dados. O light node salva dados da chain de cabeçalhos, mas só recebe dados adicionais quando solicitados. Eles conseguem validar a validade dos dados, mas não participam totalmente da validação de blocos.

Infraestrutura de nós da Alchemy

A Alchemy é um provedor de infraestrutura de nós web3 e uma plataforma para desenvolvedores blockchain que oferece a devs web3 escalabilidade, estabilidade e precisão de dados superiores por meio da Node API da Alchemy e de seu conjunto de ferramentas. O Cortex engine da Alchemy melhora todos os aspectos da funcionalidade dos nós usando sistemas distribuídos especializados e um serviço coordenador proprietário para garantir precisão de dados em tempo real.

Como os nós são de propósito geral e não são projetados para alta disponibilidade, apps que operam seu próprio nó podem apresentar latência e downtime acima da média em comparação a um provedor de nós.

Escalável, confiável e preciso

A Node API da Alchemy oferece uma arquitetura de nós escalável com garantia de 99,99% de uptime, permitindo que desenvolvedores de dApps continuem escalando sem interrupção do seu produto ou de seus usuários.

A infraestrutura de nós infinitamente escalável da Alchemy, sua confiabilidade, velocidade e precisão de dados incomparáveis são usadas para dar suporte à Polygon, que se mostrou um catalisador de adoção, resultando em um aumento significativo no número de apps construídos sobre a Polygon.

A 0x, a espinha dorsal global para exchanges descentralizadas, que permite que centenas de bilhões de trades fluam por todas as principais blockchains, confia na Alchemy para uma infraestrutura de nós confiável.

Acesso gratuito a archive node

A Alchemy oferece um plano gratuito robusto que fornece acesso gratuito a archive tanto na mainnet quanto nas testnets. Para saber mais sobre a Alchemy e obter acesso gratuito a archive, crie uma conta gratuita hoje.

Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.