Componentes Descentralizables en Aplicaciones Descentralizadas
Clase 4 de 24 • Curso de Dapps: Introducción al Desarrollo de Aplicaciones Descentralizadas
Resumen
¿Qué es una arquitectura de aplicación tradicional?
Las aplicaciones tradicionales generalmente se estructuran en tres capas:
- Capa de persistencia: Contiene la base de datos y el almacenamiento de archivos, manteniendo información crucial, como datos de usuarios y transacciones.
- Capa lógica: Administra los datos de la capa de persistencia, encargándose de procesar y manejar toda la lógica de negocios.
- Capa de cliente: Interactúa con los usuarios, permitiendo consumir la información mediante interfaces de usuario.
Dentro de cada capa, podemos encontrar diferentes proveedores y herramientas. Por ejemplo, Google Cloud y Amazon Web Services son comunes en la capa de persistencia. Para el desarrollo del backend, cualquier lenguaje de programación que soporte la ejecución de aplicaciones puede ser utilizado, siendo populares frameworks como React.js y Angular para la capa de cliente.
¿Cómo las aplicaciones descentralizadas cambian la arquitectura?
Aunque mantienen la estructura de capas, las aplicaciones descentralizadas utilizan distintos componentes:
- Capa de persistencia descentralizada: Utiliza tecnologías como IPFS para el manejo de archivos y Ethereum para la ejecución de smart contracts y almacenamiento de datos en una blockchain.
- Capa lógica con smart contracts: Se emplean lenguajes como Solidity y Vyper, que permiten compilar código para la Ethereum Virtual Machine.
- Capa de cliente adaptada: A pesar de seguir utilizando herramientas tradicionales, se incorporan librerías como Web3JS o EthersJS para comunicarse con la blockchain. Los usuarios acceden a las aplicaciones mediante wallets como MetaMask.
Estas aplicaciones también reemplazan los protocolos tradicionales de comunicación con nodos Ethereum usando JSON RPC y acceso web a través del Ethereum Name Service (ENS).
¿Qué factores determinan la descentralización de una aplicación?
La descentralización no es un estado absoluto; mide cuánto se pueden descentralizar las capas de una aplicación. Por ejemplo, una aplicación que opera desde un servidor central en AWS tiene una descentralización cercana a cero. Sin embargo, al integrar smart contracts y administración descentralizada, se incrementa este nivel.
Es esencial evaluar la capa de ejecución de los smart contracts, la confianza en los nodos de la blockchain, y la velocidad de creación de bloques. Otros aspectos cruciales incluyen:
- La posibilidad de modificar la lógica de negocios a través de gobernanzas descentralizadas.
- Proveer acceso a través de medios descentralizados en lugar de depender de herramientas centralizadas como DNS.
¿Qué objetivos perseguir al descentralizar una aplicación?
Al no poder descentralizar completamente todas las aplicaciones, se debe priorizar respuestas a ciertas preguntas:
- ¿Cuán descentralizada es la capa de ejecución de los smart contracts?
- ¿Confía la comunidad en los nodos donde se ejecutan dichos contratos?
- ¿Cuál es la latencia y eficiencia de la blockchain utilizada?
- ¿Cómo y quién puede modificar la lógica de la aplicación?
Al responder estas inquietudes y descentralizar la mayor cantidad de componentes posible, nos acercamos al ideal de la Web 3. Así, logramos crear aplicaciones más confiables, seguras y autónomas. Con ello, animamos a seguir aprendiendo y explorando más sobre esta innovadora tecnología.