Guia Completo: A Pilha Web3 para Desenvolvedores

Deseja iniciar sua jornada na criação de projetos Web3? Este guia detalhará as camadas e ambientes de desenvolvimento mais populares disponíveis.

É inegável a crescente atenção em torno do tema Web3. Muitos profissionais deixaram seus empregos em grandes empresas de tecnologia e startups promissoras para explorar novas oportunidades no universo Web3.

Se você está sentindo um chamado semelhante, por onde começar? Este artigo é dedicado a todos que desejam se aventurar no desenvolvimento Web3. Nosso foco será em diversas categorias, cada uma com recursos valiosos para impulsionar sua jornada.

Para facilitar a consulta, dividiremos os recursos em seções distintas.

As seções incluem:

  • **Camadas.** As blockchains mais utilizadas no desenvolvimento.
  • **Ambiente de Desenvolvimento.** Ferramentas para auxiliar na implantação nessas camadas.
  • **Identidade.** Como construir em torno de identidades de carteira e utilizar o login criptográfico.
  • **Armazenamento.** Criação de armazenamento permanente de dados usando tecnologia P2P.
  • **API.** Acessando as redes principais diretamente para obter informações.
  • **Front-end.** Frameworks populares para a construção de interfaces de usuário.

Uma “pilha” é um termo usado para descrever uma combinação específica de tecnologias usadas para atingir um objetivo particular. Seja desenvolvimento full-stack ou, como neste caso, a pilha Web3. É importante notar que a tecnologia envolvida na criação de aplicações e produtos Web3 está em constante evolução.

Em certa medida, muitas coisas estão mudando à medida que mais pessoas se familiarizam com a criação de software em blockchain. Portanto, nosso objetivo neste guia é mencionar recursos que já foram testados e utilizados em projetos do mundo real.

Se tudo isso parece interessante, podemos começar.

Camadas

A base de todo projeto Web3 começa com uma camada – a rede blockchain específica onde seu aplicativo ou produto será executado.

#1. Ethereum

Ethereum ganhou destaque devido à sua proposta original de contratos inteligentes.

Desde então, desenvolvedores a transformaram na camada blockchain preferida para a criação de aplicativos Web3 de ponta. É também a camada escolhida para muitos projetos NFT, por isso, se você deseja trabalhar em aplicações relacionadas a NFTs, o Ethereum oferece muitas oportunidades desde o início.

#2. Polygon

Polygon é uma sidechain do Ethereum, oferecendo práticas de segurança mais robustas, mantendo taxas de transação (gás) mais baixas. É uma escolha popular para projetos onde o número de transações é extremamente alto, mas o custo por transação é baixo.

Como Polygon é uma sidechain, também é frequentemente chamada de Blockchain de Camada 2. No entanto, o rápido desenvolvimento do Polygon o torna uma escolha popular não apenas para aplicativos NFT, mas também para dApps e sistemas de pagamento.

Outras camadas Web3 notáveis:

  • Solana. Uma blockchain criada com o objetivo de criar aplicativos DeFi em grande escala.
  • NEAR Protocol. Blockchain de contrato inteligente com recursos abundantes para desenvolvedores.
  • Polkadot. Protocolo cross-blockchain para a construção de projetos de governança.
  • Tezos. Uma plataforma com foco em eficiência energética para criar plataformas criativas descentralizadas.
  • Fantom. Plataforma de contrato inteligente de código aberto para criação de dApps.

Ambiente de Desenvolvimento

Um ambiente de desenvolvimento permite que você evite a etapa de “começar do zero”. Atualmente, a maioria desses ambientes são baseados no Ethereum.

#1. Hardhat

Hardhat é um ambiente de desenvolvimento para desenvolvedores Ethereum. Ele auxilia os desenvolvedores na automação do processo de criação e montagem de aplicativos descentralizados e também de contratos inteligentes. Sua popularidade vem de sua Hardhat Network integrada, uma cópia individual da rede Ethereum que você pode usar para testar seus aplicativos localmente.

#2. Truffle

Truffle é um framework baseado em JavaScript para construir contratos inteligentes. Ele parte do princípio de que você está usando o EVM (Ethereum Virtual Machine), fornecendo as ferramentas para acelerar o processo de desenvolvimento. Algumas dessas ferramentas incluem testes automatizados, um compilador de contratos e ferramentas separadas para acessar seus contratos diretamente do console.

Outros ambientes de desenvolvimento Web3 notáveis:

  • Foundry. Kit de ferramentas baseado em Rust para criar aplicativos no Ethereum.
  • Brownie. Framework baseado em Python para construir e testar contratos inteligentes.
  • Anchor. Um framework para trabalhar com Solana, escrito em Rust.
  • Embark. Framework completo para construir no Ethereum.
  • Waffle. Framework personalizado para testar contratos inteligentes.

Identidade

Ao contrário da autenticação tradicional com nome de usuário e senha, na Web3, os desenvolvedores implementam o uso de carteiras, mas também de chaves públicas.

#1. WalletConnect

WalletConnect é um protocolo de código aberto usado para conectar-se a dApps por meio de uma carteira móvel. O conceito principal de uso do WalletConnect se baseia na leitura de um código QR, que os usuários podem utilizar para verificar sua identidade e aprovar uma nova conexão com o aplicativo Web3.

Se você conhece carteiras como Pillar ou MetaMask, todas elas se integram diretamente com o WalletConnect. Isso também significa que você tem acesso a muitos recursos para desenvolvedores. Além disso, o protocolo funciona com todas as principais blockchains, e mais cadeias são adicionadas com frequência.

#2. Spruce

Spruce é uma startup apoiada pela Y Combinator que visa levar o conceito de identidade descentralizada para áreas fora do blockchain. Este kit tem como objetivo ajudar os usuários a verificar sua identidade digital em várias plataformas: mídia social, sites pessoais e redes blockchain.

Armazenamento

Como você armazena mídia – vídeos, fotos, etc. – na Web3? Isso é feito principalmente usando protocolos de armazenamento de arquivos P2P.

#1. IPFS

IPFS é o protocolo de armazenamento P2P (peer-to-peer) líder mundial. Depois de carregar um arquivo para o IPFS, esse arquivo é redimensionado, protegido por um hash personalizado e recebe uma impressão digital como seu identificador exclusivo.

Em seguida, outros nós (sistemas ou pessoas) que fazem parte dessa rede podem acessar o arquivo, verificá-lo e armazená-lo em seu cache. Uma vez armazenado em cache, o arquivo fica acessível para qualquer pessoa com o método de acesso correto.

Em última análise, o objetivo do IPFS não é apenas fornecer um sistema de armazenamento descentralizado, mas também garantir que o conteúdo tenha uma duração de várias décadas, em vez de anos. Por exemplo, um site desaparece após algum tempo, e todo o seu conteúdo, incluindo mídia, é perdido. O IPFS oferece uma solução para esse problema.

#2. Skynet

Skynet oferece compartilhamento de arquivos acessível usando a rede de nuvem descentralizada Sia. Você pode usá-lo diretamente da página inicial. Basta enviar um arquivo, e você receberá um link. Ele dura 90 dias, a menos que você se inscreva para obter uma chave de API. No contexto do desenvolvimento, o Skynet facilita a replicação do mesmo caso de uso, mas dentro de seu próprio aplicativo descentralizado.

#3. Filebase

Filebase é uma startup SaaS que fornece um link direto com a API Amazon S3. Você pode usar essa API para buscar dados de seus buckets S3 e redistribuí-los em várias opções de armazenamento descentralizado.

Atualmente, o Filebase suporta opções de armazenamento baseadas em Web3, como Skynet, IPFS, Sia e Storj, entre outras. Como desenvolvedor, isso significa que você pode simplificar o processo de fornecimento de serviços de armazenamento descentralizado de arquivos para seus clientes.

Você também recebe 5 GB de armazenamento gratuito como um novo usuário, e os preços são razoáveis, mesmo para planos pagos.

Outras soluções de armazenamento Web3 notáveis:

  • Arweave. Arweave é um protocolo que permite armazenar dados de forma permanente e sustentável com uma única taxa inicial.
  • Filecoin. Armazene qualquer tipo de mídia em um ambiente de nuvem descentralizado.
  • Swarm. Um nó de armazenamento P2P autossustentável que é incentivado por contratos inteligentes Ethereum.
  • Aleph. Crie dApps e deixe o Aleph gerenciar o armazenamento baseado em nuvem para você.

API

Diferentemente de uma pilha tradicional baseada em banco de dados, os desenvolvedores usam uma API para interagir com o blockchain e solicitar ou armazenar dados nele. As APIs também são chamadas de Clientes.

#1. The Graph

The Graph é uma solução de API completa para se conectar a várias blockchains. O objetivo dessa API é ajudar os desenvolvedores a acessar dados que, de outra forma, exigiriam a criação de algoritmos individuais. Por exemplo, os pontos de dados no blockchain derivam de endereços simples para transações complexas baseadas em contratos inteligentes.

Um exemplo disso seria rastrear o histórico de um NFT.

Embora seja possível rastrear o histórico de compras individuais com relativa facilidade, isso se torna mais difícil à medida que você tenta entender as relações com diferentes compras. Nesse caso, a API Graph oferece chamadas predefinidas e diretórios de índice para ajudá-lo a visualizar rapidamente um caso de uso específico.

#2. Web3.js

Web3.js é a API JavaScript mais popular para interagir diretamente com o Ethereum. É usada principalmente para desenvolver aplicativos clientes que interagem com a cadeia Ethereum. A coleção de sub-bibliotecas incluída no Web3.js fornece funcionalidades como transferências, gerenciamento de contrato inteligente e muito mais.

#3. Alchemy

Alchemy cresceu rapidamente e se tornou uma das plataformas Web3 mais respeitadas. Sua abordagem é educar desenvolvedores sobre como construir e escalar rapidamente aplicações Web3, fornecendo uma API Blockchain sofisticada e um conjunto de ferramentas para desenvolvedores.

#4. useDApp

useDApp é um framework baseado em React para interagir com a blockchain Ethereum. Ele consiste em React.js, a biblioteca Ethers.js, Waffle e componentes Web-3 React. Normalmente, ele é usado para criar front-ends de sites acessíveis que podem exibir várias consultas de dados com base nas necessidades do seu projeto.

Front-end

Que tipo de frameworks os desenvolvedores estão usando para construir as interfaces front-end para projetos Web3?

#1. React

A popularidade do React é incomparável. Não é surpresa que também seja a biblioteca de front-end mais popular para sites Web3. A arquitetura orientada a componentes significa que os desenvolvedores podem trabalhar em várias partes do front-end sem interferir no design principal.

Você pode conferir a biblioteca Web3-React no GitHub para um ponto de partida sólido.

#2. Next.js

Next.js é o sucessor do React, embora nenhum deles seja diretamente afiliado. Projetos Web3 de grande escala exigem um gerenciamento robusto de recursos, e o Next.js vem com ferramentas nativas para projetos estáticos e dinâmicos e é usado por empresas como Binance, Bitscreener, Hashnode e outras.

Para um início rápido, dê uma olhada no Next Web3 Boilerplate.

Introdução ao Desenvolvimento Web3

É muita informação para absorver, especialmente se você está começando agora. A realidade é que as coisas estão mudando muito rapidamente nesse campo. Embora os projetos iniciais fossem todos relacionados a NFTs, hoje em dia há mais ênfase em redes descentralizadas e plataformas individuais de blockchain.

No que diz respeito a começar com seu projeto Web3, esta referência deve ser suficiente. Também recomendo ficar de olho no Twitter e no Discord, já que essas são as duas comunidades mais ativas para acompanhar as últimas tendências da Web3.