Si eres un principiante en el espacio Web3, la inercia inicial de entender las cosas puede ser abrumadora para ti.
Escribí este blog hace unos tres meses, cuando empecé a hacerme una idea de qué es Web3 y cómo funciona todo viniendo de un mundo Web2. Me desconcertaba estudiar qué, cómo y demás cuando empecé. Unos dicen que esta blockchain es mejor, y otros que otra. Algunos incluyen muchos productos en su arquitectura, haciéndola tan complicada que parece un mundo totalmente distinto. Basta con buscar en Google la pila tecnológica Web3: todo el mundo te da una explicación de lo que es desde su perspectiva, y un típico blog de marketing es lo que siempre encuentro, diría yo.
Así que cuando empecé a escribir este blog, me centré en una sola cosa: pasemos nuestros conocimientos de Web2 a Web3 y sepamos qué tecnologías soportan qué. Una vez que lo sepamos, será mucho más fácil elegir y comenzar nuestro viaje como desarrolladores. En general, este blog será muy extenso, aunque eso es lo que necesitas como principiante, ¿verdad?
Pero primero, tenemos que entender lo que queremos decir con Web3 – la idea de que la gente podría cambiar Internet tal y como la vemos.
¿Qué es Web3?
Uno de mis amigos mencionó recientemente que Web3 es sólo otro nombre elegante para el ecosistema blockchain. Está parcialmente en lo cierto y, al mismo tiempo, equivocado a otro nivel.
Aunque la base de Web3 se centra en blockchain, cuando empieces a desarrollar sobre ella, te darás cuenta de que blockchain es sólo una parte de ella. Para hacer una comparación, un blockchain en una aplicación Web3 podría ser similar a como una base de datos podría ser para una aplicación web típica (Web2) que podrías desarrollar. Como comparación, tomamos:
Web1 = el internet de la información; es decir, los sitios web HTML CSS con los que no puedes interactuar.
Web2 = el internet de las interacciones; es decir, plataformas modernas como Facebook, Twitter, etc., que te permiten estar conectado de extremo a extremo con los demás.
Web3 = la nueva internet del valor, es decir, la internet en la que se elimina la centralización de la información.
Así que si intentamos definir Web3, podemos decir que es el concepto que ayuda al desarrollo de aplicaciones descentralizadas(dApps). Sí, ¡la misma Internet descentralizada que escuchamos de Richard en Silicon Valley!
Sin embargo, no tenemos una plataforma de motor de compresión como la que él había construido para construir esto. En su lugar, tenemos una serie de protocolos y plataformas que permiten este sistema de desarrollo. Estos protocolos son un conjunto de reglas que rigen el funcionamiento de tu aplicación, mientras que las múltiples plataformas facilitan la creación de tu aplicación.
Vale, de acuerdo, pero ¿para qué necesitamos dApps en primer lugar?
El beneficio más significativo de crear una dApp es la propiedad y la identidad. La propiedad de los datos, el contenido, literalmente todo con su propia identidad – un concepto que se difuminó con la mayoría de edad de estas instituciones superiores como Google y Facebook.
Otra ventaja significativa de la que se habla es la componibilidad, uno de los pilares centrales de la Web3.
Todas y cada una de las empresas de software que existen en la actualidad se centran en recopilar datos de los usuarios, que constituyen su principal activo y las diferencian unas de otras. No el producto, sino los datos que poseen. Las empresas que compiten entre sí, con una interfaz de usuario y una interfaz de usuario similares y una lógica empresarial ligeramente diferente, son valiosas de forma independiente gracias a los “datos” que han recopilado.
Esto es lo que perturbará Web3, que hará que todas las aplicaciones sean componibles al compartir y consumir sus datos entre diferentes aplicaciones. Piensa en un metaverso donde puedas comprar cosas de Meta y utilizarlas en el ecosistema de Microsoft. Este es el aspecto más emocionante e interesante de Web3: ¡hacer la web realmente componible!
Pero eso no es todo; con el alto grado de confianza y fiabilidad que aportan estas aplicaciones, las posibilidades son infinitas; ni siquiera hemos imaginado cómo podría ser el futuro con las dApps omnipresentes. Creo que Web3 podría iniciar la misma revolución que el código abierto trajo al ecosistema de los desarrolladores.
Comprender la arquitectura de Web3
Ahora que hemos definido Web3, necesitamos entender cómo estos protocolos y plataformas trabajan juntos para ayudarnos a construir estas dApps.
Cuando nos imaginamos una aplicación web general, nos imaginamos una arquitectura constituida por lo siguiente:
Aunque no he representado cosas como cachés, colas, etc., una arquitectura general por encima se parece a esto.
Para una aplicación Web3, El frontend seguirá siendo el mismo, pero algunos cambios emocionantes comienzan a suceder en el lado backend de las cosas. Veamos cómo funciona:
Si comparamos Web2 y Web3, el Nodo Blockchain está haciendo el trabajo pesado y gestionando nuestros datos, que están descentralizados en una red de blockchains. Como es caro almacenar directamente en la cadena, tenemos un Almacenamiento de Archivos fuera de la cadena y una Base de Datos P2P que facilita el almacenamiento de datos. Por último, para construir una capa segura, tenemos una Cartera o una Autenticación basada en Clave Privada para verificar la identidad del individuo.
Tenga en cuenta que esto es sólo una descripción general de la arquitectura. En realidad, tenemos aplicaciones mucho más complejas y necesitamos parámetros arquitectónicos tanto de Web2 como de Web3.
La pila tecnológica Web3
Hasta ahora, hemos aprendido cómo es una arquitectura Web3 en general. Ahora, vamos a profundizar en cada uno de estos componentes para comprender mejor la pila tecnológica.
Empecemos desde abajo:
Blockchain
Si hablo de seleccionar una blockchain sobre la que construir, es una de las tareas más desafiantes que uno debe decidir. Hay muchos factores en juego; descentralización, rendimiento de las transacciones, tasas de gas, ecosistema/interoperabilidad, y muchos más, y no vamos a debatirlos todos porque no acabaría nunca. Es como elegir un lenguaje de programación. Todos funcionan; unos son mejores en casos concretos y otros para otros casos de uso.
Aunque, como principiante, podría recomendar empezar con Ethereum Virtual Machine (EVM) con Solidity. Esto se debe a la comunidad de desarrolladores masivamente presente a su alrededor.
EVM actúa como la máquina virtual, la base de toda la estructura operativa de Ethereum. Ethereum introdujo el concepto de contratos inteligentes y es la cadena de bloques más utilizada. Solidity es el lenguaje utilizado para crear contratos inteligentes. Es muy similar a JavaScript en sintaxis, lo que puede ser útil si eres un desarrollador Web2. Bajo el capó, Solidity se compila en instrucciones de bajo nivel llamadas opcodes para que el EVM las interprete.
Cuando hayas aprendido esto, será más fácil entender los conceptos de otras tecnologías en el ecosistema, como:
- Solana: Otra blockchain como Ethereum se centra en ofrecer tiempos de transacción más rápidos y tarifas más baratas. Los contratos inteligentes pueden escribirse en Rust, C y C++.
- Capa 2 (L2): L2 se refiere a un protocolo secundario construido sobre un sistema blockchain existente, generalmente Ethereum, tomando prestada la seguridad de consenso de la cadena principal. Hay muchas opciones aquí, pero las principales siguen siendo Polygon, Arbitrium, StarkEx & StarkNet, Optimism, etc.
- Cadenas de aplicación: Aunque como novato no necesitarás esto, creo que es la opción más emocionante que existe. Puedes construir tu propia cadena de bloques/sistema de consenso con plataformas como Tendermint/Cosmos, Polkadot, etc.
Nodo Blockchain
Para desplegar una aplicación en producción, se necesita un servidor. Un nodo blockchain hace este trabajo para blockchains. Los nodos blockchain son actores de la red o dispositivos que ejecutan el “software blockchain”. Por lo tanto, están autorizados a realizar un seguimiento del libro mayor distribuido, sirviendo como centros de comunicación para las tareas de la red. Un protocolo P2P (Peer to Peer) permite a los nodos comunicarse dentro de la red y transferir información sobre transacciones y nuevos bloques.
Puedes autogestionar nodos blockchain o conseguir un proveedor de servicios de nodos como Quicknode, Moralis, Infura, etc., que ofrecen API para crear flujos automatizados. Para el autoalojamiento, AWS Cloud y Azure disponen de imágenes para las cadenas más populares. Por lo demás, la mayoría de las cadenas te facilitan la ejecución de tus nodos/validadores. Lo único que puede ser una molestia es garantizar el tiempo de actividad y el mantenimiento, que depende de su red.
Base de datos P2P
La primera pregunta que cualquiera se haría aquí es: ¿Por qué necesitamos una base de datos cuando estamos usando blockchain en primer lugar? Además, ¿no obstaculizará nuestra idea de una dApp?
La respuesta es sencilla: almacenar datos en una cadena de bloques es lento y caro. Necesitamos una base de datos adicional para acceder a los datos fuera de la cadena, asegurándonos de que no estamos accediendo a la cadena una y otra vez. Para tener esa parte de descentralización, utilizamos bases de datos peer-to-peer o P2P que almacenan y alojan todos los datos en flujos para eliminar servidores de bases de datos centralizados, blockchains o almacenamiento local. ¡Piensa en cómo se descargan tus torrents!
La red Ceramic es el proveedor de bases de datos descentralizadas más común que existe, que yo conozca personalmente.
Almacenamiento de archivos descentralizado
Como cualquier otra aplicación, necesitamos un sistema de almacenamiento de archivos dedicado (similar a Amazon S3 para aplicaciones Web2). Las bases de datos son esencialmente datos tabulares, mientras que el almacenamiento de archivos son esos datos basados en carpetas que necesitas para almacenar tus grandes archivos multimedia. IPFS es el protocolo de sistema de archivos P2P más común, con un excelente apoyo de la comunidad. Arweave es otra opción centrada en guardar datos de forma permanente. Puedes utilizar plataformas como Filecoin, Skynet, Storj y 0Chain para alojar estos sistemas de almacenamiento de archivos/
Fuente: Medium
Libre Traducción: LBC