WEB3DEV Español

Hector
Hector

Posted on

🔥Top de Capas de Arquitecturas de la Web3 Explicadas: Frontend, Backend y Data.

Este artículo es una traducción de Vitalii Shevchuk, hecha por Héctor Botero. Puedes encontrar el artículo original aquí.
Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_eshttps://twitter.com/web3dev_es en Twitter.

La arquitectura de la Web 3.0 puede ser confusa, pero haremos que puedas entender claramente

Image description

Contenido

Intro

Cuando hablamos de la arquitectura Web 3.0, hablamos de DApps lo cual significa aplicaciones descentralizadas (decentralized applications). Históricamente, la arquitectura de la Web 2.0 consiste de los componentes más familiares para nosotros:

  • frontend - el lado del cliente de una aplicación, la cual, el navegador obtiene desde el servidor del host y lo renderiza al usuario. Usualmente escrito en 🅰️Angular, ⚛️React y otros frameworks que en tendencia.
  • backend - la aplicación desde el lado del servidor (y en algunos casos sin servidor, es decir, almacenado en la nube). Usualmente es una aplicación que toma toda la lógica pesada, incluyendo administrar la base de datos. Está interactuando con el lado del cliente a través de una API y está escrito usando alguno de los lenguajes de programación de backend populares: JAVA, NodeJs, C#, GO, Ruby, Python.
  • base de datos - pueden ser servidores de base de datos NoSQL o SQL. Básicamente, almacena todos los datos del servidor y del cliente. Las bases de datos más populares son Postgresql y Mongo

Image description

Por supuesto, hay muchos más componentes dependiendo de la escalabilidad pero, eso está fuera de nuestro tópico. La pregunta principal es: ¿cuál es la diferencia entre la Web 2.0 y 3.0?

Capa Backend en la DApp de la Web 3.0

La mayor diferencia de una DApp es descentralización. No necesitas una base de datos centralizada o un servidor web, tu tomas ventaja de la blockchain para distribuir la aplicación entre las redes de las computadoras. El blockchain actuará como una máquina de estados 🤖 (state machine), manteniendo el estado y estabilidad del programa, a través de la validación de las reglas predefinidas. La máquina de estado es distribuida entre todos los participantes de una red de blockchain y la validación es archivada a través del consenso sobre la estabilidad del programa.

La lógica del backend es implementada a través de los contratos inteligentes que luego serán desplegados para máquinas de estados compartidas (de la red de blockchain). Así que el backend reside en la red de punto a punto en la que todos pueden contribuir cumpliendo algunos criterios (por ejemplo: poseer y bloquear una criptomoneda para poder votar los cambios o hacer una propuesta al programa). Pero entonces, ¿cómo funciona el frontend?

Image description

Capa Frontend en la Dapp de la Web 3.0

La arquitectura principal del frontend en el caso de las DApp está enfocada en la comunicación con los contratos inteligentes (de los programas descentralizados). Y será diferente a la comunicación frontend - backend usual.

Cada nodo en la red de la blockchain está sosteniendo el estado del programa y, si quieres comunicarte con el contrato inteligente, tienes que comunicarte con uno de los nodos, el cual puede ser:

  • Proveedores tercerizados como Infura, Alchemy y Quicknode
  • O configurar tu propio nodo ejecutando el estado de la máquina, por tu propia cuenta.

Ejecutar la infraestructura del blockchain puede parecer complicado, especialmente cuando quieres escalarlo para añadir más nodos. Hay utilidad cuando un usuario provee, lo malo de esto es que crea un componente donde hay una dependencia centralizada.

Todos los proveedores son implementados con las especificaciones JSON-RPC para comunicarse con las redes de la blockchain. RPC o Procedimiento de Llamada Remota (Remote Procedure Call) es un protocolo de pedido-respuesta que define las reglas que permiten al cliente enviar el mensaje en la máquina remota para ejecutar la función y retirar la respuesta. En ese tipo de comunicación, el programa es ejecutado como si estuviera localizado en la máquina del cliente. Esto quiere decir que el cliente no sabe sobre la máquina remota. Todas las comunicaciones van a través del HTTP o Web Sockets.

Cuando los proveedores están conectados a la blockchain, el cliente es capaz de obtener información sobre el estado del blockchain. Pero, ¿cómo los clientes escriben en la red del blockchain? Todos los pedidos escritos de las transacciones* necesitan ser firmados con la llave privada del cliente. Cada transacción le costará al cliente una tarifa de gas. Es una criptomoneda que apreciará otros nodos (mineros), los cuales verificarán las transacciones.

Un proveedor, como Metamask, actúa como si fuese el firmante de la transacción y el proveedor. Almacena la llave privada en el navegador y firma cuando el cliente hace el pedido de la transacción y también se conecta con la red del blockchain.

Image description

Capa de Datos en la Dapp de la Web 3.0

💡Son tus datos, ¡poséelos!

Almacenar datos en el blockchain puede ser costoso por las tarifas de transacciones de gas y es más razonable usar soluciones no relacionadas al blockchain como IPFS o Swarm.

IPFS es un sistema de protocolo de archivos de punto a punto, que permite almacenar tus datos a través de una red de máquinas. Sin el apoyo nativo de navegadores populares, IPFT usa gateways privados o públicos para conectarse a la red.

Swarm es similar a IPFT, con la única diferencia que el sistema se sostiene a través de los contratos inteligentes en la red de blockchain de Ethereum.

Para que puedas hacer que tu frontend también sea descentralizado, también puedes usar las mismas soluciones de almacenamiento de punto a punto.

Y, finalmente, para simplificar la consulta de los datos almacenados en el blockchain o a través de una red de punto a punto como The Graph, convierte las consultas GraphQL en eventos de contratos inteligentes y gateways punto a punto.

Image description

Conclusión

La arquitectura de las DApp Web 3.0 puede parecer abrumador 🤯. Lo es, pero hay más herramientas que aparecen que apuntan a simplificar la experiencia de construir como hardhat y thirdweb. Pero no seas escéptico.

Si quieres aprender a cómo construir aplicaciones web con el stack web 3.0, aplaude👏 y sígueme en medium y twitter. Estoy trabajando en un tutorial para construir un mercado de NFT, haz click en follow si no quieres perdértelo

Discussion (0)