A arquitetura da Web 3.0 pode ser confusa, mas vamos deixar claro o entendimento
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.
É 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?
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.
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.
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)