Presentación del proyecto
Bienvenida al curso
PlatziPunks: marketplace de NFT
Arquitectura de DApps
¿Qué es una aplicación descentralizada?
Componentes descentralizables de una aplicación
Ejemplos de aplicaciones descentralizadas
¿Cómo interactuar con aplicaciones descentralizadas?
Setup del proyecto
JavaScript, Node y Webpack
Instalación y overview de Hardhat
Compilación, tests y despliegue
Actualización sobre testnet en Ethereum
Despliegue en Rinkeby
Manejo de llaves privadas
Alternativas a Hardhat y EIP
Desarrollo del contrato inteligente
Implementación del ERC721 de Open Zeppellin
Extendiendo la funcionalidad de PlatziPunks
¿Qué es la metadata del ERC721?
Diseñando el ADN de PlatziPunks
Implementando el ADN de PlatziPunks
Calculando el ADN de PlatziPunks
Usando el ADN para calcular la imagen del NFT
Probando nuestro Smart Contract
Probando nuestro Smart Contract
Despliegue en redes de prueba
¡Crea tu PlatziPunk y visualízalo en OpenSea!
Conclusión
Continúa con el proyecto PlatziPunks
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
Aportes 15
Preguntas 2
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
Lógica
compilados hacia la maquina virtual de ethereum
Cliente
aveces se utiliza herramientas tradicionales(el fronted de toda la vida)
aunque hay alternativas
para la comunicación entre la capa logica y el cliente , lo que va en la mitad asi como un emparedado 😃 utilizamos:
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.
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.
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 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
muy buena la explicacion
como esta estructurada una aplicación tradicional
dag constellation
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?