WEB3DEV

Cover image for Hardhat ou Truffle? Qual desses eu escolho sendo um desenvolvedor iniciante em Blockchain
Banana Labs
Banana Labs

Posted on

Hardhat ou Truffle? Qual desses eu escolho sendo um desenvolvedor iniciante em Blockchain

Esse artigo é uma tradução de Pari Tomar feita por @bananlabs. Você pode encontrar o artigo original aqui.

Na vida de um desenvolvedor blockchain, uma das mais dolorosas dificuldades é encontrar o mais adequado framework para ele/ela. As pessoas passam dias ou semanas tentando encontrar a ferramenta mais adequada para elas.

De maneira semelhante, no mundo da Blockchain, um dos maiores debates é escolher entre Hardhat ou Truffle.

Esses ambientes de desenvolvimento ajudam os desenvolvedores a administrar muitas das tarefas que são inerentes ao desenvolvimento de aplicações descentralizadas e smart contracts.

Se você está apenas começando agora sua carreira no mundo da blockchain e, assim como nós, embora há algum tempo, está se perguntando qual escolher: Hardhat ou Truffle, então você está no lugar certo!!🥳🥳

Nos parágrafos abaixo, nós discutimos ambos frameworks e prosseguimos fazendo uma pequena comparação entre esses dois tipos.

Ferramenta Hardhat

hardhat framework logo

Hardhat é um ambiente de desenvolvimento para Ethereum que é voltado para desenvolvedores que permite realizar tarefas frequentes.

Muito mais que apenas implantar (deploying) e executar testes, Hardhat também oferece algumas funcionalidades a mais que o torna mais poderoso e único.

Consideremos estas funcionalidades uma a uma.

1. A rede do Hardhat

O Hardhat framework já vem com a rede Hardhat integrada, um nó Ethereum de rede local projetada para o desenvolvimento incluindo muitas funcionalidades tais como, mensagens de erro automatizadas, forking da rede principal e modos de mineração.

Deste modo, se você usa o Hardhat, então por padrão você já está usando a rede Hardhat. Esta minera um bloco com cada transação recebida na ordem e sem nenhum atraso.

2. Plugins

Em seguida temos os plugins.

Plugins, em palavras simples, são extensões que podem ser carregadas em um programa para melhorar sua funcionalidade.

30+ plugins usados para o desenvolvimento com o Hardhat, esta é a razão por que eles são considerados a espinha dorsal do Hardhat.

Listamos abaixo alguns dos mais populares plugins com suas funcionalidades:

3. Ambiente de Teste

Hardhat oferece um procedimento muito simples para o teste de smart contracts, possibilitando que os desenvolvedores escrevam testes automatizados quando estiverem desenvolvendo os smarts contracts.

Hardhat oferece uma ótima documentação para se entender os métodos de teste com o Hardhat.

Se você é iniciante em testes com Hardhat, veja nosso artigo anterior para se obter um melhor entendimento de testes com Hardhat.

O Universo das Ferramentas do Truffle

Truffle framework logo

Semelhante ao Hardhat, o Truffle é também um ambiente de desenvolvimento dedicado à blockchain da Ethereum.

Truffle é um framework de desenvolvimento altamente popular e tem uma ampla comunidade por trás da ferramenta.

Para o desenvolvimento de aplicações descentralizadas, o desenvolvedor usa o Truffle Suite.

O Truffle Suite é um ecossistema para o desenvolvimento em Web3 que consiste em três diferentes ferramentas: Truffle, Ganache e Drizzle.

imagem do truffle suite

  • Truffle: ele é um ambiente de desenvolvimento que utiliza a EVM para o desenvolvimento de smart contracts.

  • Ganache: Ganache é uma ferramenta para se configurar localmente sua própria blockchain da Ethereum que pode ser utilizada para se implementar e testar seus smart contracts.

Além disso, Ganache possibilita aos desenvolvedores evitar o pagamento desnecessário de taxas de gas durante o processo de desenvolvimento.

  • Drizzle: Drizzle é uma coleção de bibliotecas frontend com uma loja Redux em sua base.

Com isto o desenvolvimento frontend se torna muito mais fácil para os desenvolvedores.

Truffle oferece diversas funcionalidades tais como:

1. Gerenciamento de Smart Contracts

Truffle auxilia no gerenciamento de artefatos dos smart contracts, desta maneira, é possível focar em outras partes do processo de desenvolvimento e gastar menos tempo na organização dos arquivos.

2. Migração por Script e Deployment

Com o Truffle é possível escrever os scripts de deployment que permitem que você leve em consideração que seus Dapps mudarão com o tempo.

3. Poderoso Console Interativo

Truffle oferece dois diferentes consoles para se escolher a melhor ferramenta que atenda suas necessidades.

(A) Console Truffle: um console interativo básico conectado a qualquer cliente Ethereum. Para abrir o console utilize o comando: truffle console. Quando o console abrir você verá imediatamente o seguinte prompt:

truffle console prompt

O console Truffle deixará você se conectar com os contratos implantados (deployed) no cliente EVM e interagir com os contratos de maneira similar àquela feita através do javascript.

(B) Truffle Develop: um console interativo que também instancia uma blockchain para desenvolvimento. Ele serve ao mesmo propósito que o hardhat node.

Você pode abrir um Truffle Develop simplesmente utilizando o comando: truffle develop.

truffle develop prompt

4. Truffle Dashboard

Recentemente, Truffle introduziu o Truffle Dashboard, oferecendo um modo mais fácil de se utilizar sua carteira Metamask existente para seus deployments e transações. Utilizar o Truffle Dashboard não é apenas fácil, mas também é plug and play. Você pode usar o Truffle Dashboard dentro de qualquer projeto Hardhat também. Truffle oferece uma ótima documentação para ser seguida e usar o Truffle Dashboard em seu projeto.

Qual dos dois é o mais poderoso?
Vamos comparar algumas de suas funcionalidades e obter uma resposta final para nossa questão!!💪

1. Debugging

Solidity é difícil para debugar. Você apenas recebe uma mensagem de erro quando algo não funciona e na maioria das vezes é doloroso debugar exatamente o que deu errado.

Felizmente, Hardhat introduziu algo conhecido como console.log para Solidity.

Assim você pode simplesmente importar o plugin do console e usar ele dentro de suas funções.

Veja como fica:

exemplo de código

Adicione console.log dentro das funções:

exemplo de código

A saída de log vai ser exibida quando você executar seus testes:

exemplo de código

A EVM criada pelo Hardhat especificamente suporta esta funcionalidade e, desta forma, é nativa ao nó Hardhat.

Por outro lado, Truffle está melhorando o seu debugador e também tem alguns plugins para isto, no entanto, o Hardhat é considerado uma ferramenta mais fácil e poderosa para debugar.

2. Bibliotecas (Ethers e Web3)

Hardhat utiliza ethers.js por padrão mas pode ser facilmente modificado para se usar Web3.

Enquanto que o Truffle utiliza Web3 como plugin padrão para desenvolvimento.

Você pode utilizar também Ether.js com o Truffle mas é considerado mais complicado e difícil para se implementar.

Embora ethers.js e web3.js sejam similares, entretanto há um número mais elevado de desenvolvedores usando ethers.js por padrão; isto poderia sinalizar algo sobre qual você deveria / poderia escolher para desenvolvimento.

3. Nó Local da Rede Ethereum

Hardhat já vem com o Nó Hardhat embutido. Entretanto ele não vem com uma interface gráfica para que os desenvolvedores vejam as informações em tempo real da conta.

Truffle, por outro lado, utiliza o Ganache que deve ser configurado separadamente. Contudo ele vem com uma interface gráfica e uma interface por comandos o que possibilita uma maior flexibilidade ao desenvolvedor.

Se você preferir a interface gráfica você deveria escolher Ganache.

4. Implantar (Deployment)

Ao implantar (deploy) um contrato, Hardhat utiliza scripts de javascript básico para o deploy, então é fácil para se começar com isso e é relativamente simples de se usar.

Por outro lado, o Truffle utiliza um procedimento de implantação (deployment) que é baseado em migração (este é também arquivos js, mas tem uma ordem sequencial de execução) ele é um pouco mais complicado para iniciantes, mas pode ser de grande ajuda no longo prazo, uma vez que deve se ter em mente que suas necessidades de deployment podem mudar no futuro.

Mas pela facilidade de se começar com a implantação (deployment), Hardhat definitivamente leva o prêmio.

5. Testes

Para realizar os mais diversos testes, ambos Truffle e Hardhat utilizam a biblioteca Chai Assertion e Mocha como frameworks de teste, mas Hardhat também inclui waffle.

6. Estatísticas

Antes do Hardhat ser lançado, Web3 era o framework mais popular para se testar smart contracts.

Um tempo depois, como você pode perceber as tendências mudam com o tempo, e o Hardhat vem ganhando mais popularidade em comparação com o Truffle.

De acordo com as estatísticas do NPMJS, Truffle tem quase 30k downloads por semana. Enquanto que o Hardhat tem por volta de 86k downloads por semana, o que é duas vezes mais em comparação com o Truffle.

estatísticas dos frameworks

7. Disponibilidade de suporte / Uma mãozinha de ajuda

A comunidade do Truffle no Github é bem ativa e prestativa, por outro lado o Hardhat oferece um servidor no Discord para suporte da comunidade. Devemos ressaltar que todo o framework Truffle é suportado pela Consensys e, por isso, você pode esperar um tratamento de um “suporte técnico” especializado. O Hardhat é também desenvolvido e mantido por uma organização: A Fundação Nomic, tem igualmente um incrível e bom sistema de suporte através de seu servidor no Discord.

Conclusão

É muito complicado afirmar qual deles é o melhor. A escolha entre Truffle e Hardhat depende da preferência pessoal de cada um e para cada uso específico, sendo que ambos são duas poderosas ferramentas.

Se você é novo no uso de cada framework, então você definitivamente deveria explorar ambos e decidir qual dos dois é o melhor para você.

Contudo, esperamos que este artigo tenha possibilitado oferecer a você um insight sobre as diferenças entre ambos e ter auxiliado você a escolher qual deles utilizar.

Conta pra gente qual desses frameworks você prefere marcando a @uv_labs no Twitter.

Deixe sua curtida se você gostou do nosso trabalho.

Autores (abertos ao feedback): 👇

Pari Tomar, Mayon Francis e Amateur-Dev

Top comments (0)