15 de fevereiro de 2023
Você esteve se perguntando o que é a camada de consenso do nó Erigon, mas não pôde chegar ao fundo dela? Se sim, você veio ao lugar certo, visto que vamos dissecar o tópico sobre o nó Erigon neste artigo. Entre outros detalhes, aprenderemos por que a frase “camada de consenso do nó Erigon” está tecnicamente incorreta e enganosa. Afinal, Erigon não é um nó de camada de consenso, mas um dos cinco principais clientes de camada de execução.
Depois de executar com sucesso uma das maiores atualizações da Ethereum - The Merge - em setembro de 2022, a blockchain Ethereum não mais utiliza o consenso Proof of Work (PoW). A mudança para o consenso Proof of Stake (PoS) e The Merge (formalmente conhecido como “Eth1” e “Eth2”) trouxe algumas mudanças significativas para a rede. Além de algumas de suas modificações, trouxe algumas mudanças de nomenclatura que podem ter confundido a comunidade Ethereum. Embora nos concentraremos principalmente na “camada de consenso do nó Erigon”, faremos questão de explicar o que são as camadas de execução e consenso da Ethereum. Além disso, veremos a principal diferença entre as duas camadas de nó.
Vale a pena ressaltar que você não precisa executar nós Ethereum para começar a construir dApps (aplicativos descentralizados) matadores, extraordinários. Na verdade, tudo o que você precisa para se juntar à revolução da Web3 é ter proficiência em JavaScript e uma conta Moralis gratuita.
O que é o Erigon?
Erigon é um cliente de camada de execução.O Erigon começou sua jornada com um nome diferente: “Turbo-Geth”. Este último foi uma bifurcação (fork) do Go Ethereum (Geth) que se concentrou principalmente em velocidade e eficiência de espaço de disco. Agora, Erigon é uma implementação completamente re-arquitetada da Ethereum.
Os desenvolvedores por trás desse cliente de camada de execução usaram a linguagem de programação Go para escrevê-lo. No entanto, implementações do Erigon em outras linguagens já estão sendo desenvolvidas. O objetivo principal do Erigon é fornecer uma implementação da Ethereum rápida, altamente modular e adequadamente otimizada. Este tipo de execução da Ethereum é usada principalmente para executar nós de arquivo que gerenciam grandes quantidades de dados em cadeia (on-chain).
Então, agora você sabe que o Erigon não é um cliente de camada de consenso, mas um cliente de camada de execução. Contudo, o termo “camada de consenso do nó Erigon” pode se referir a qualquer nó de camada de consenso em execução juntamente com o Erigon. Afinal, para executar um nó completo da Ethereum, você precisa executar um cliente de camada de execução (por exemplo, o Erigon) e um cliente de camada de consenso da Ethereum ao mesmo tempo!
Tudo o que você precisa saber sobre um nó de arquivo do Erigon
Como você pode ver na imagem acima, o Erigon atualmente representa cerca de dez por cento da camada de execução da Ethereum. Ao lado do Nethermind, é um candidato primordial para roubar alguns dos clientes do Geth.Certifique-se de cobrir os detalhes abaixo. Isso o ajudará a decidir se você quer optar pela combinação “camada de consenso do nó Erigon” ou combinar seu nó de camada de consenso com outro cliente de camada de execução.
Uma visão geral do cliente Erigon
- Linguagem de programação: Go;
- Sistemas operacionais: Linux, Windows, macOS;
- Redes: rede de teste Sepolia, rede de teste Goerli, rede principal Ethereum e outras;
- Estratégica de sincronização: completa (full);
Poda de estado (State pruning): arquivo, podado (pruned);
Características principais:
- Estado de armazenamento mais eficiente;
- Sincronização inicial mais rápida;
- JSON-RPC daemon;
- Execução de todos os componentes por “Docker Compose” (ainda não disponível para Windows);
- Painel do Grafana.
Poda de estado (State pruning): arquivo, podado (pruned);
Características principais:
- Estado de armazenamento mais eficiente;
- Sincronização inicial mais rápida;
- JSON-RPC daemon;
- Execução de todos os componentes por “Docker Compose” (ainda não disponível para Windows);
- Painel do Grafana.
Requisitos de sistema para execução de Nó do Erigon
Se você decidir usar a combinação da camada de consenso do nó Erigon, você precisa conhecer os requisitos de sistemas a seguir:
Armazenamento (Storage) Space (SSD ou NVMe)
3 TB (mínimo) para cobrir o estado atual da Ethereum (mais de 1.8 TB), arquivos temporários (200 GB) e um nó da rede principal completo (mais de 400 GB).
Outras cadeiras:
Nó completo da Goerli: 189 GB no beta, 114 GB no alpha;
Arquivo de cadeia da Gnosis: 370 GB;
-
Cadeia Inteligente BNB (BNB Smart Chain):
- Arquivo: 7 TB;
- Completo: 1 TB.
Arquivo da rede principal da Polygon: 5 TB;
Arquivo da rede de teste (Mumbai) da Polygon: 1 TB.
Memória (RAM)
- Pelo menos 16 GB.
Versão Golang (Go)
- 1.18 ou superior (GCC 10+ ou Clanf+g; kernel v4 ou superior [Linux]).
3 TB (mínimo) para cobrir o estado atual da Ethereum (mais de 1.8 TB), arquivos temporários (200 GB) e um nó da rede principal completo (mais de 400 GB).
Outras cadeiras:
Nó completo da Goerli: 189 GB no beta, 114 GB no alpha;
Arquivo de cadeia da Gnosis: 370 GB;
Cadeia Inteligente BNB (BNB Smart Chain):
- Arquivo: 7 TB;
- Completo: 1 TB.
Arquivo da rede principal da Polygon: 5 TB;
Arquivo da rede de teste (Mumbai) da Polygon: 1 TB.
- Pelo menos 16 GB.
Versão Golang (Go)
- 1.18 ou superior (GCC 10+ ou Clanf+g; kernel v4 ou superior [Linux]).
Quanto tempo demora para um nó Erigon sincronizar?
De acordo com a página do ethereum.org sobre nós e clientes, o Erigon pode efetuar a sincronização de um nó de arquivo completo usando em torno de 2 TB de espaço de disco em menos de três dias. No entanto, de acordo com outras fontes, normalmente, leva mais tempo. No geral, quanto mais RAM você tiver, mais rápido o Erigon pode sincronizar.
Aqui estão alguns tempos de sincronização típicos em relação à RAM:
- 16 GB de RAM: aproximadamente seis dias;
- 32 GB de RAM: aproximadamente cinco dias;
- 64 GB de RAM: aproximadamente quatro dias.
Como configurar um nó Erigon?
A sequência de comandos a seguir o ajudará a configurar a versão estável mais recente de um nó Erigon:
git clone --recurse-submodules https://github.com/ledgerwatch/erigon.git
cd erigon
git checkout devel
make erigon
./build/bin/erigon
Os comandos acima farão o truque para você se você deseja apenas executar um nó. Contudo, se você quer aplicar opções mais avançadas, como construir a ramificação de desenvolvimento de ponta, certifique-se de usar o link do GitHub (sem “.git”) na linha de comando superior acima.
Agora que você sabe o que o Erigon é, está na hora de explicarmos o que são as camadas de execução e consenso da Ethereum e qual é a diferença principal entre elas. Ao cobrir esses aspectos, você será capaz de compreender completamente a frase “camada de consenso do nó Erigon”.
O que é a camada de execução (EL - Execution Layer) da Ethereum?
A camada de execução (EL) da Ethereum é uma rede de nós de execução da Ethereum executando um software de cliente de execução (Geth, Nethermind, Erigon, etc.). Anteriormente (pré-Merge) conhecida como clientes “Eth1”, os clientes de execução lidam com transações na rede da Ethereum. Esses clientes ouvem novas transações transmitidas na rede e as executam usando a EVM (Ethereum Virtual Machine - máquina virtual da Ethereum). Assim, a camada de execução mantém o último estado e o banco de dados de todos os dados atuais da Ethereum de maneira descentralizada (dispersos entre os nós da camada).
A comunidade central da Ethereum mantém vários clientes de execução de código aberto. Além do mais, para estabelecer uma diversidade adequada de clientes e fortalecer a rede, os clientes de camada de execução foram desenvolvidos por diferentes equipes usando diferentes linguagens de programação. O objetivo ideal da comunidade da Ethereum é alcançar a diversidade sem que nenhum cliente domine o espaço. Dessa forma, a rede reduzirá ainda mais os pontos únicos de falha.
Os protocolos de rede da camada de execução se enquadram em uma das duas pilhas a seguir:
- Discovery;
- DevP2P.
A pilha Discovery é construída sobre UDP (User Datagram Protocol é um protocolo de Internet mais simples e sem conexão, no qual os serviços de verificação e recuperação de erros não são necessários). Ele permite que um novo nó ingresse na rede para encontrar pares com os quais se conectar. A pilha DEvP2P fica sobre TCP (Transmission Control Protocol é um protocolo orientado à conexão, o que significa que, uma vez que a conexão foi estabelecida, os dados podem ser transmitidos em duas direções). Ele permite que os nós troquem informações entre si. Obviamente, para que a rede funcione sem problemas, ambas as pilhas precisam funcionar em paralelo.
A camada de execução da Ethereum também é conhecida como motor (ou mecanismo) de execução, camada EL e anteriormente Eth1.
Aqui está uma lista dos principais clientes da camada de execução da Ethereum e as linguagens de programação correspondentes:
- Get (Go);
- Nethermind (C#, .Net);
- Erigon (Go);
- Besu (Java);
- Akula (Rust).
Observação: o OpenEthereum está obsoleto.
O que é a camada de consenso (CL - Consensus Layer) da Ethereum?
A camada de consenso da Ethereum (CL) é uma rede de nós de consenso da Ethereum executando um software de cliente de consenso (Prysm, Lighthouse, Teku, etc.). Esses clientes, também conhecidos como nós Beacon, clientes CL ou, anteriormente, clientes Eth2, implementam o algoritmo de consenso proof-of-stake (PoS). Este último permite que a rede chegue a um acordo com base nos dados validados pelos clientes de execução.
É importante notar que os clientes de consenso participam de uma rede ponto a ponto (P2P) separada com especificações diferentes. Para que essa camada funcione apropriadamente, os clientes de consenso precisam participar do que é conhecido como “fofoca de bloco” (block gossip). Ao fazer isso, todos os clientes participantes podem receber novos blocos dos pares. Então, quando for a vez deles de serem proponentes de blocos, os clientes de consenso podem transmitir esses blocos. Além disso, seguindo a liderança das camadas de execução, para que a camada de consenso da Ethereum funcione corretamente, vários protocolos devem oferecer suporte à descoberta de pares e estabelecer uma conexão segura. A camada de consenso alcança isso com as cinco pilhas/domínios a seguir:
- Discovery - para encontrar pares;
- ENRs - encontra pares específicos e conecta à bifurcação correta da Ethereum;
- LibP2P - suporta toda a comunicação do cliente após a descoberta;
- Gossip (fofoca) - esta garante que as informações essenciais se espalhem por toda a rede;
- Request-response (solicitação-resposta) - protocolos que lidam com clientes podem solicitar informações específicas de seus pares.
A seguir também está uma lista dos principais clientes da camada de consenso da Ethereum e suas linguagens de programação:
- Prysm (Go);
- Lighthouse (Rust);
- Teku (Java);
- Nimbus (Nim);
- Lodestar (TypeScript).
A diferença entre a camada de execução (EL) e a camada de consenso (CL) da Ethereum
O termo “camada de consenso do nó Erigon” só entra em jogo ao executar um nó completo da Ethereum (já que você precisa executar ambos os tipos de cliente). Isso também significa que ambas as camadas - EL e CL - devem se conectar. Embora ambos os tipos de cliente sejam executados em paralelo, sua conexão (conforme indicado na imagem acima) é vital para que a rede PoS da Ethereum funcione sem problemas. Afinal, sem essa conexão, o cliente de consenso não seria capaz de fornecer instruções ao cliente de execução. Ao mesmo tempo, o cliente de execução não seria capaz de passar pacotes de transações (blocos) para o cliente de consenso.
Com isso em mente, vejamos as principais diferenças entre EL e CL:
- EL lida com transações da rede Ethereum (fornece e armazena os dados);
- CL implementa o algoritmo de consenso PoS (implementa regras e verifica dados).
Portanto, se você optar por executar um cliente de execução do Erigon, também deverá executar uma camada de consenso do nó Erigon. No entanto, lembre-se de que você não precisa executar seu próprio nó para começar a criar dApps.
Desenvolvimento da Ethereum além do Erigon
Quando se trata de construir dApps, ter um provedor de API da Web3 confiável ao seu lado é o aspecto mais importante. É aqui que o Moralis entra em cena como uma das poucas ferramentas de desenvolvimento da Ethereum obrigatórias. Com a API da EVM (máquina virtual) do Moralis, você pode buscar quaisquer dados em cadeia (on-chain) na Ethereum e em outras cadeias líderes compatíveis com a EVM. Além disso, com a API de dados da Web3 definitiva ao seu alcance, você pode buscar dados analisados para tokens, NFTs, transações e muito mais. Por exemplo, você pode obter detalhes das transações da Ethereum e históricos e eventos da Ethereum com trechos de código curtos. Ainda mais, com a API IPFS da Ethereum do Moralis, você pode facilmente carregar arquivos e pastas para a solução de armazenamento de Web3 mais popular.
Outro produto proeminente do Moralis é a API de fluxos da Web3 (Web3 Streams API). O último permite monitorar um endereço da Ethereum (carteira ou contrato inteligente) e criar webhooks para eventos específicos na cadeia (on-chain). Essa ferramenta poderosa torna as bibliotecas da Web3 obsoletas quando se trata de ouvir a atividade da blockchain.
Além da compatibilidade entre cadeias (cross-chain), o Moralis oferece suporte a todas as principais linguagens de programação e plataformas de desenvolvimento. Graças à interoperabilidade de plataforma cruzada do Moralis, você pode usar suas habilidades de desenvolvimento herdadas para iniciar sua jornada de desenvolvimento de aplicativos blockchain.
Graças às soluções corporativas de blockchain do Moralis, você pode dimensionar seus projetos da Web3. Afinal, o Moralis tem um histórico comprovado de atendimento às necessidades de back-end para algumas das maiores carteiras da Web3, rastreadores de portfólio e outros aplicativos da Web3.
Recursos do Moralis
O Moralis também fornece uma pilha completa de recursos para ajudar você e sua equipe a se tornarem especialistas em blockchain. Começando com uma das documentações de desenvolvimento em Web3 mais agradáveis e práticas, tutoriais em vídeo e um blog de desenvolvimento de blockchain, você pode aprender como se tornar um desenvolvedor da Web3 gratuitamente. Dito isso, se você deseja adotar uma abordagem mais profissional para sua educação em criptografia, a Academia Moralis (Moralis Academy) é a escolha certa. Além de soluções para indivíduos, essa plataforma educacional online permite que você treine toda a sua equipe em desenvolvimento de blockchain.
O Moralis também fornece vários outros recursos práticos. Por exemplo, através da página Pure Faucets, você pode acessar torneiras de criptomoedas vetadas (torneira da Ethereum, torneira da rede de teste Sepolia, torneira da rede de teste Goerli, torneira da rede de teste Aptos, etc.). Além disso, você pode converter gwei para ETH (e vice-versa) com nossa calculadora amiga do usuário.
Além disso, com o Moralis, você pode construir dApps sem reinventar a roda e sem gastar muito tempo e recursos na construção da sua própria infraestrutura. Agora, caso você esteja interessado em desenvolver seus próprios contratos inteligentes (por exemplo, para criar um token ERC721), certifique-se de aprender sobre segurança de contrato inteligente, ERC721 versus ERC1155 e o OpenZeppelin no Remix.
O que é a camada de consenso do nó Erigon? - Resumo
No artigo de hoje, você aprendeu todos os fundamentos sobre o cliente de camada de execução do Erigon. Ao explorar esse cliente da Ethereum, você agora deve ser capaz de determinar se você quer ou não executar seu próprio nó Erigon ou, ao invés disso, procurar por outros nós de execução. Você também aprendeu o que são a camada de execução da Ethereum e a camada de consenso da Ethereum e suas principais diferenças. Como resultado, agora você compreende completamente o significado da frase “camada de consenso do nó Erigon”. Você também aprendeu que não precisa executar seu próprio nó para começar a criar dApps matadores. Afinal, você pode começar a CONSTRUIR com suas habilidades herdadas e uma conta gratuita do Moralis!
Esse artigo foi escrito por Moralis Blog e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.
Latest comments (0)