La arquitectura y las tecnologÃas que se implementan en el desarrollo de aplicaciones descentralizadas, o dapps, difiere enormemente del desarrollo de software convencional. Entender este nuevo paradigma de desarrollo de software, sus similitudes y diferencias con el tradicional, nos ayudará a ser mejores como profesionales Web3.
Desarrollo de software Web2 vs. Web3
Con la aparición de las tecnologÃas Blockchain en el año 2009 de la mano de Satoshi Nakamoto y Bitcoin, al dÃa de hoy, se ha creado y continúa evolucionando un nuevo paradigma para el desarrollo de aplicaciones descentralizadas. Las dapps (descentralize applications), son aplicaciones que funcionan de forma distribuida haciendo uso de diferentes servicios descentralizados que ninguna organización en particular controla, son administrados por toda una comunidad.
Blockchain es el principal servicio descentralizado que se utiliza como base de datos para persistir información y tener inmutabilidad en los mismos. Pero, las aplicaciones descentralizadas van más allá de Blockchain, existe todo un esquema de tecnologÃas que se usan y que podemos comparar con el desarrollo de software tradicional para entender el gran cambio y conocimiento que debemos tener para desarrollar este tipo de apps.
Web2 (apps)
Web3 (dapps)
Front-end
Angular, React, Vue, etc.
Angular, React, Vue, etc.
Backend
API Rest (Python, NodeJS, PHP, etc)
Smart Contracts (Rust, Solidity, C/C++, otro)
Protocolo
HTTP, HTTPS
JSON RPC
Clientes
Fetch, Axios, etc.
@solana/web3.js, Ether.js, otro
Cloud
AWS, Azure, Heroku, etc.
Solana, Ethereum, BNB, etc.
BBDD
MySQL, MongoDB, etc.
Blockchain, IPFS, otro
Auth
User/Pass, OAuth, etc.
Wallets (Phantom, Metamask, etc.)
Repositorio
Público/Privado
Público en GitHub
El único factor que podemos observar que no ha cambiado son las tecnologÃas front-end que se utilizan. Continúa vigente Angular, React, Vue o cualquier otra tecnologÃa de Javascript para el desarrollo de interfaces gráficas. En el backend comienzan los cambios. Las tÃpicas API Rest que conocemos y que solemos desarrollar en Python, NodeJS, Java u otro lenguaje, se convierten en contratos inteligentes desarrollados en Rust, Solidity, C/C++, dependiendo la Blockchain en la que trabajemos.
Los servidores donde desplegamos nuestras aplicaciones, como AWS, Google Cloud Platform, Azure, o cualquier otro de preferencia, ya no existen. Los contratos inteligentes son desplegados directamente en la Blockchain de forma descentralizada.
No necesariamente una aplicación será 100% Web2, o 100% Web3. Podemos encontrar, y seguro trabajaremos en, aplicaciones hÃbridas que utilizan componentes de ambos paradigmas.
Medir el grado de descentralización de una aplicación nos permitirá evaluar que tan centralizada o no sea la misma. Que tan cerca o lejos se encuentre del paradigma Web2 o Web3. Dependiendo la necesidad, nos enfocaremos más o menos en las tecnologÃas de cada lado.
Conclusión
Un rotundo cambio de paradigma y parecieran ser demasiadas tecnologÃas y conceptos que debemos conocer para trabajar en Web3. Poco a poco podrás interiorizar las diferencias entre ambos mundos y convertirte en todo un profesional Blockchain.
El conocimiento que ya tienes de Web2, se complementa con conocimiento Web3. Uno no quita al otro, trabajan en conjunto y el nuevo paradigma Web3 agrega más tecnologÃas y nos exige ser profesionales más completos.
La arquitectura para el desarrollo de una DApp en Solana no deja de ser muy similar a la de Ethereum.
Los contratos inteligentes son el backend de la aplicación. El front-end (Angular, React, Vue) es una app común y corriente, pero en lugar de utilizar clientes HTTP, se utilizan clientes JSON RPC, Solana Web3 es el cliente por excelencia para DApp en esta arquitectura. Finalmente, toda la comunicación y autorización para el envÃo de una transacción se realiza por medio de una Wallets. En Solana se suele utilizar Phantom, asà como se utiliza Metamask en Ethereum.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.