WEB3DEV

Cover image for ūüĒ• Principais Camadas da Arquitetura Web3 Explicadas: Frontend, Backend e Dados
Fatima Lima
Fatima Lima

Posted on

ūüĒ• Principais Camadas da Arquitetura Web3 Explicadas: Frontend, Backend e Dados

A arquitetura da Web 3.0 pode ser confusa, mas vamos deixar claro o entendimento

Image description

Conte√ļdo

  • Introdu√ß√£o
  • Camada Backend no DApp Web 3.0
  • Camada Frontend no DApp Web 3.0
  • Camada de Dados no DApp Web 3.0
  • Conclus√£o
  • O Blog √© alimentado por Cappuccino
  • Aprenda Mais

Introdução

Quando falamos de arquitetura Web 3.0, queremos dizer DApps, que significa aplicativos descentralizados. Historicamente, a arquitetura da Web 2.0 consiste nos componentes mais familiares para nós:

  • frontend ‚ÄĒ um aplicativo do lado do cliente que o navegador vai buscar no servidor de hospedagem e entregar ao usu√°rio. Normalmente escrito em ūüÖįÔłŹ Angular, ‚öõÔłŹ React e qualquer outro framework da moda;
  • backend ‚ÄĒ um aplicativo do lado do servidor (em alguns casos - sem servidor, significa armazenado na nuvem). Normalmente, um aplicativo, que assume toda a l√≥gica pesada, incluindo o gerenciamento do banco de dados. Ele est√° interagindo com o lado do cliente atrav√©s da API e √© escrito usando uma das linguagens backend populares: JAVA, NodeJs, C#, GO, Ruby, Python. JAVA, NodeJs, C#, GO, Ruby, Python.
  • database ‚ÄĒ poderiam ser servidores de banco de dados NoSQL ou SQL. Basicamente, armazenando todos os dados do cliente e do servidor. Os bancos de dados mais populares s√£o Postgresql, Mongo.

Image description

√Č claro que h√° muito mais componentes, dependendo da escalabilidade, mas isto est√° fora de nosso assunto. A quest√£o principal √© qual √© a diferen√ßa entre a Web 2.0 e a Web 3.0?

Camada Backend no DApp Web 3.0

A maior diferen√ßa do DApp √© a descentraliza√ß√£o. Voc√™ n√£o precisa de um banco de dados ou servidor web centralizado, voc√™ aproveita a blockchain para distribuir o aplicativo entre a rede de computadores. A blockchain atuar√° como uma "m√°quina de estado" ūü§Ė - mantendo o estado e a estabilidade do programa atrav√©s da valida√ß√£o das regras pr√©-definidas. A m√°quina de estado √© distribu√≠da entre todos os participantes de uma rede blockchain e a valida√ß√£o √© arquivada por meio do consenso sobre a estabilidade do programa.

A lógica backend é implementada através de contratos inteligentes que serão posteriormente implantados em máquinas de estado compartilhado (rede blockchain). Assim, o backend reside em uma rede ponto a ponto (peer-to-peer) com a qual todos podem contribuir, correspondendo a alguns critérios (por exemplo, possuir e bloquear moeda criptográfica para votar as mudanças ou fazer uma proposta para o programa). Mas como funciona então o front end?

Image description

Camada Frontend no DApp Web 3.0

A principal arquitetura do front-end, no caso do DApp, está focada na comunicação com contratos inteligentes (programas descentralizados). E será diferente da comunicação comum do frontend-backend.

Todos os nós da rede blockchain estão carregando o estado do programa e se você quiser se comunicar com o contrato inteligente, você tem que se comunicar com um dos nós. Pode ser:

  • Provedores de n√≥s de terceiros, como Infura, Alchemy, e Quicknode
  • Ou configure voc√™ mesmo seu pr√≥prio n√≥ executando a m√°quina de estado;

Lan√ßar a infraestrutura da blockchain pode ser bastante desafiador, especialmente quando se quer dimension√°-la para adicionar mais n√≥s. H√° momentos em que um provedor de usu√°rio ser√° √ļtil. O lado negativo √© que isso cria um componente de depend√™ncia centralizado.

Todos os provedores est√£o implementando as especifica√ß√Ķes JSON-RPC para se comunicarem com as redes da blockchain. RPC, ou Remote Procedure Call (chamada de procedimento remoto) - √© um protocolo solicita√ß√£o-resposta que define as regras para permitir ao cliente enviar a mensagem para a m√°quina remota, a fim de executar a fun√ß√£o e recuperar a resposta. Em tal comunica√ß√£o, o programa √© executado como est√° localizado na m√°quina cliente, o que significa que o cliente n√£o sabe sobre a m√°quina remota. Toda a comunica√ß√£o √© feita atrav√©s de HTTP ou Web Sockets.

Quando os provedores est√£o conectados √† blockchain, o cliente √© capaz de obter informa√ß√Ķes sobre o estado da blockchain. Mas como os clientes escrevem para a rede blockchain? Todas as transa√ß√Ķes de solicita√ß√£o de escrita precisam ser assinadas com a chave privada do cliente. Cada transa√ß√£o custar√° a um cliente uma taxa de gas, uma moeda criptogr√°fica que ir√° avaliar outros n√≥s (mineradores) que verificam as transa√ß√Ķes.

Tal provedor, como a Metamask, est√° agindo como um signat√°rio e provedor de transa√ß√Ķes. Ele armazena a chave privada no navegador e assina quando o cliente faz uma solicita√ß√£o de transa√ß√£o. Ele tamb√©m se conecta com a rede blockchain.

Image description

Camada de Dados no DApp Web 3.0

ūüí° S√£o seus dados, apenas tome posse deles !

Armazenar os dados na blockchain pode ser muito caro devido √†s taxas de gas da transa√ß√£o e √© mais razo√°vel usar uma solu√ß√£o que n√£o seja blockchain, como armazenamento ponto a ponto ‚ÄĒ IPFS ou Swarm.

IPFS ‚ÄĒ √© um protocolo de sistema de arquivo ponto a ponto, que permite armazenar dados atrav√©s de uma rede de m√°quinas. Sem o suporte nativo de navegadores populares, o IPFS utiliza portas privadas ou p√ļblicas para se conectar com a rede.

Swarm ‚ÄĒ √© semelhante ao IPFS, com a √ļnica diferen√ßa que o sistema se sustenta atrav√©s dos contratos inteligentes na rede blockchain Ethereum.

Para fazer com que o seu frontend tamb√©m seja descentralizado, voc√™ pode usar as mesmas solu√ß√Ķes de armazenamento ponto a ponto.

E, finalmente, para simplificar a consulta dos dados armazenados em blockchain ou rede ponto a ponto, The Graph. Ele converte as consultas de GraphQL em eventos de contrato inteligente e portas de acesso ponto a ponto.

Image description

Conclus√£o

A arquitetura DApp Web 3.0 pode parecer bastante contundente ūü§Į. √Č, mas est√£o aparecendo mais ferramentas que t√™m como objetivo simplificar a experi√™ncia de constru√ß√£o, como [hardhat](https://hardhat.org/) e thirdweb. Mas n√£o fique c√©tico:

Se voc√™ quer aprender como construir aplicativos web com a stack da web 3.0, aplaudaūüĎŹ e me siga na m√≠dia e twitter, Estou trabalhando num tutorial para construir o mercado NFT, clique em seguir se voc√™ n√£o quiser perder. ūüėČ

Esse artigo foi escrito por Vitalii Shevchuck e traduzido por F√°tima Lima. O original pode ser lido aqui

Top comments (0)