Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Componentes descentralizables de una aplicación

4/24
Recursos

¿Qué es una arquitectura de aplicación tradicional?

Las aplicaciones tradicionales generalmente se estructuran en tres capas:

  1. Capa de persistencia: Contiene la base de datos y el almacenamiento de archivos, manteniendo información crucial, como datos de usuarios y transacciones.
  2. Capa lógica: Administra los datos de la capa de persistencia, encargándose de procesar y manejar toda la lógica de negocios.
  3. 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.

Aportes 15

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Web2 vs Web3

más información sobre cómo se compone una dapp:

The Architecture of a Web 3.0 application
https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application

Componentes descentralizables de una aplicación:
Persistencia

  • IPFS, sistema descentralizado de archivos, hacer uso de imagenes.
  • Redes de etherum
  • Redes de polygon
  • Red OP
  • REd a

Lógica

  • solidity
  • Viper

compilados hacia la maquina virtual de ethereum
Cliente
aveces se utiliza herramientas tradicionales(el fronted de toda la vida)
aunque hay alternativas

  • W3js
  • etherjs
  • Metamask (aunque hay mas billeteras)

para la comunicación entre la capa logica y el cliente , lo que va en la mitad asi como un emparedado 😃 utilizamos:

  • JSON-RPC
  • ethereum ENS service

hay distintos matices de descentralización.

Otro criterio que agregaría para definir la descentralización de los proyectos que cuentan con una criptomoneda de gobernanza sería la distribución de la misma. Si entre una minoría de participantes tienen un porcentaje mayoritario de la moneda, aun no es un proyecto descentralizado.

Excelente curso Ernest 💪

Aquí tienen una explicación (en inglés) de la diferencias entre Arweave e IPFS para el almacenamiento de archivos: https://arweave.news/nfts-storage-arweave-vs-ipfs/

Básicamente los dos permiten el almacenamiento decentralizado de archivos, sin embargo, IPFS cuenta con un garbage collector que tiende a eliminar los archivos que no son utilizados con frecuencia. Además Arweave tiene el beneficio de que con el pago de un pequeño fee inicial se tiene acceso a los archivos por 200 años

++Componentes descentralizables de una aplicación
++
La estructuración de una aplicación esta conformada por tres capas

Persistencia:Tenemos una base de datos que almacena los datos de usuarios, transacciones o información relevante para el modelo de negocio.Y tenemos un almacenamiento de archivos que guarda imágenes ,documentos o archivos relevantes para el desarrollo de la aplicación.

Lógica:Esta encargada de administrar todos los datos de la capa de persistencia para finalmente mandárselas al cliente

Cliente:Estos clientes pueden comunicarse entre si para intercambiar información de mensajería a través de protocolos RTC para aplicaciones de video o reuniones en linea estas pueden compartir datos en tiempo real.

  • Componentes descentralizables de una aplicación.

Una aplicación normalmente esta estructurada en 3 distintas capas: la capa de Persistencia, la capa de Lógica y la capa del Cliente.

Usualmente en la capa de Persistencia tenemos elementos como una base de datos y un tipo de storage de archivos para subir imágenes, videos, etc.

La capa lógica se conecta con la capa de Persistencia, esta se encarga de administrar todos los datos para finalmente enviarlas a los Clientes.

Adicionalmente y opcionalmente estos clientes se pueden comunicar entre si para intercambiar información de mensajería a través de protocolos como RTC para aplicaciones de videos o compartir reuniones en línea, pueden compartir datos en tiempo real.

  • ELEMENTOS TRADICIONALES QUE COMPONEN ESTAS CAPAS

Persistencia: Vamos encontrar proveedores de servicios como Google Cloud, AWS o inclusive servicios de bases de datos como puede ser MongoDB, entre algunas otras.

Lógica: Vamos encontrar normalmente cualquier lenguaje de programación que nos permite desarrollar servidores o aplicaciones del lado del Backend, acá entra cualquier lenguaje de programación de nuestras preferencias ya que estos son programables casi en muchos de los lenguajes disponibles.

Cliente: Vamos encontrar herramientas como ReactJS, Angular, Vue.js o cualquiera de sus competidores.

  • En las Dapps, tenemos exactamente la misma arquitectura de componentes, sin embargo, la forma de resolver los problemas de estas partes o capas es completamente distinta, por ejemplo:

En la capa de persistencia: Vamos encontrar frameworks como IPFS que es …, adicional a eso redes como Ethereum que son de capa 1 y que es la capa de ejecución de Smart Contracts, se considera de persistencia porque allí se guardan los datos directamente de la Blockchain.

Tenemos alternativas como Polygon, https://www.optimism.io o inclusive https://www.arweave.org que es una alternativa a IPFS.

En la capa lógica: Vamos a utilizar algún lenguaje de programación que me permita compilar para la Ethereum Virtual Machine o para cualquier otra tecnología que me permita la ejecución dentro de algún Smart Contract, en este caso los 2 ejemplos más populares son Solidity y Viper.

En el lado del cliente: Si bien es cierto que seguiremos utilizando herramientas tradicionales como ReactJS, Angular o Vue.js, hay herramientas extras que están presentes dentro de estas aplicaciones como lo puede ser Web3.js y Ether.js, es requerido que los usuarios tengan acceso a un tipo de Wallet que puedan comunicarse con esta aplicación como lo es Metamask, entre otras opciones.

Todas estas tecnologías y componentes los veremos a detalles conforme avancemos en el curso, para tener afianzados estos conceptos.

Cabe destacar que no todas las aplicaciones tienen acceso o logran descentralizar al 100% porque depende mucho de la situación y modelo de negocio en que se encuentre. Para ello debemos aprender unas preguntas: min 6:18 de la clase.

Entre mayor sea la cantidad de componentes descentralizados de nuestra aplicación, estará más cerca del ideal de la web3.

  • Saludos criptonautas, les animo sigamos aprendiendo de este ecosistema.

  • ¡Felices Aprendizajes!

Para la comunicación entra la capa lógica y del cliente se reemplazan herramientas tradicionales como REST o GraphQL por protocolos como puede ser JSON-RPC (Forma en la que se comunican los nodos de Ethereum con el Cliente)

Aplicaciones tradicionales

  • Persistencia: Vamos a encontrar mayormente proveedores
    de servicio como por ejemplo: aws, Google Cloud, mongoDB.
  • Logica: Cualquier lenguaje de programacion que nos permita desarrollar servidores por el lado del backend como por ejemplo: node.js, GO, ruby, python, etc.
  • Cliente: Frameworks para el lado del cliente es decir la vista como: Vue.js, React.js, Angular, Svelte, etc.
Los componentes descentralizables de una aplicación incluyen: 1. **Capa de persistencia**: Almacena datos en redes como IPFS o blockchains como Ethereum. 2. **Capa lógica**: Usa lenguajes como Solidity o Vyper para smart contracts. 3. **Capa del cliente**: Implementa frameworks como React.js y herramientas como Web3JS para interacción con la blockchain. Estos elementos permiten evaluar y aumentar la descentralización de la aplicación.
🦅🦅

muy buena la explicacion

como esta estructurada una aplicación tradicional

dag constellation