Componentes descentralizables de una aplicaci贸n

4/23
Recursos

Aportes 8

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

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

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 馃挭

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.

++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.

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.

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!

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.