Introducción técnica a las dapps
Una aplicación descentralizada (dapp) es una aplicación construida sobre una red descentralizada que combina un contrato inteligente y una interfaz de usuario frontend. En Ethereum, los contratos inteligentes son accesibles y transparentes (como las API abiertas), por lo que su dapp puede incluso incluir un contrato inteligente que otra persona haya escrito.
Requisitos previos
Antes de aprender sobre las dapps, debería repasar los conceptos básicos de la cadena de bloques y leer sobre la red Ethereum y cómo está descentralizada.
Definición de una dapp
Una dapp tiene su código backend ejecutándose en una red descentralizada entre pares. Contraste esto con una aplicación donde el código backend se ejecuta en servidores centralizados.
Una dapp puede tener código frontend e interfaces de usuario escritas en cualquier lenguaje (al igual que una aplicación) para realizar llamadas a su backend. Además, su frontend puede alojarse en un almacenamiento descentralizado como IPFS (opens in a new tab).
- Descentralizada: las dapps operan en Ethereum, una plataforma pública abierta y descentralizada donde ninguna persona o grupo tiene el control.
- Determinista: las dapps realizan la misma función independientemente del entorno en el que se ejecuten.
- Turing completo: las dapps pueden realizar cualquier acción dados los recursos necesarios.
- Aislada: las dapps se ejecutan en un entorno virtual conocido como la Máquina Virtual de Ethereum (EVM), de modo que si el contrato inteligente tiene un error, no obstaculizará el funcionamiento normal de la red de la cadena de bloques.
Sobre los contratos inteligentes
Para presentar las dapps, necesitamos presentar los contratos inteligentes: el backend de una dapp, a falta de un término mejor. Para obtener una descripción detallada, diríjase a nuestra sección sobre contratos inteligentes.
Un contrato inteligente es un código que vive en la cadena de bloques de Ethereum y se ejecuta exactamente como fue programado. Una vez que los contratos inteligentes se despliegan en la red, no se pueden cambiar. Las dapps pueden ser descentralizadas porque están controladas por la lógica escrita en el contrato, no por un individuo o empresa. Esto también significa que debe diseñar sus contratos con mucho cuidado y probarlos a fondo.
Beneficios del desarrollo de dapps
- Cero tiempo de inactividad: una vez que el contrato inteligente se despliega en la cadena de bloques, la red en su conjunto siempre podrá atender a los clientes que busquen interactuar con el contrato. Por lo tanto, los actores malintencionados no pueden lanzar ataques de denegación de servicio dirigidos a dapps individuales.
- Privacidad: no necesita proporcionar una identidad del mundo real para desplegar o interactuar con una dapp.
- Resistencia a la censura: ninguna entidad en la red puede impedir que los usuarios envíen transacciones, desplieguen dapps o lean datos de la cadena de bloques.
- Integridad completa de los datos: los datos almacenados en la cadena de bloques son inmutables e indiscutibles, gracias a las primitivas criptográficas. Los actores malintencionados no pueden falsificar transacciones u otros datos que ya se han hecho públicos.
- Computación sin necesidad de confianza/comportamiento verificable: los contratos inteligentes se pueden analizar y se garantiza que se ejecutarán de manera predecible, sin la necesidad de confiar en una autoridad central. Esto no es cierto en los modelos tradicionales; por ejemplo, cuando usamos sistemas bancarios en línea, debemos confiar en que las instituciones financieras no harán un mal uso de nuestros datos financieros, no alterarán los registros ni serán hackeadas.
Inconvenientes del desarrollo de dapps
- Mantenimiento: las dapps pueden ser más difíciles de mantener porque el código y los datos publicados en la cadena de bloques son más difíciles de modificar. Es difícil para los desarrolladores realizar actualizaciones en sus dapps (o en los datos subyacentes almacenados por una dapp) una vez que se despliegan, incluso si se identifican errores o riesgos de seguridad en una versión antigua.
- Sobrecarga de rendimiento: existe una enorme sobrecarga de rendimiento y el escalado es realmente difícil. Para lograr el nivel de seguridad, integridad, transparencia y confiabilidad al que aspira Ethereum, cada nodo ejecuta y almacena cada transacción. Además de esto, el consenso de prueba de participación (PoS) también lleva tiempo.
- Congestión de la red: cuando una dapp utiliza demasiados recursos computacionales, toda la red se atasca. Actualmente, la red solo puede procesar entre 10 y 15 transacciones por segundo; si las transacciones se envían más rápido que esto, el grupo de transacciones no confirmadas puede aumentar rápidamente.
- Experiencia de usuario: puede ser más difícil diseñar experiencias fáciles de usar porque al usuario final promedio le puede resultar demasiado difícil configurar un conjunto de herramientas necesario para interactuar con la cadena de bloques de una manera verdaderamente segura.
- Centralización: las soluciones fáciles de usar y amigables para los desarrolladores construidas sobre la capa base de Ethereum podrían terminar pareciendo servicios centralizados de todos modos. Por ejemplo, dichos servicios pueden almacenar claves u otra información confidencial en el lado del servidor, servir un frontend utilizando un servidor centralizado o ejecutar una lógica de negocio importante en un servidor centralizado antes de escribir en la cadena de bloques. La centralización elimina muchas (si no todas) las ventajas de la cadena de bloques sobre el modelo tradicional.
¿Aprende mejor de forma visual?
Herramientas para crear dapps
Scaffold-ETH - Experimente rápidamente con Solidity utilizando un frontend que se adapta a su contrato inteligente.
Create Eth App - Cree aplicaciones impulsadas por Ethereum con un solo comando.
One Click Dapp - Herramienta FOSS para generar frontends de dapps a partir de una .
Etherflow - Herramienta FOSS para que los desarrolladores de Ethereum prueben su nodo, y compongan y depuren llamadas RPC desde el navegador.
thirdweb - SDK en todos los lenguajes, contratos inteligentes, herramientas e infraestructura para el desarrollo de la Web3.
- Página principal (opens in a new tab)
- Documentación (opens in a new tab)
- GitHub (opens in a new tab)
Crossmint - Plataforma de desarrollo Web3 de nivel empresarial para desplegar contratos inteligentes, habilitar pagos con tarjeta de crédito y entre cadenas, y usar API para crear, distribuir, vender, almacenar y editar NFT.
Lecturas adicionales
- Explorar dapps
- La arquitectura de una aplicación Web 3.0 (opens in a new tab) - Preethi Kasireddy
- Una guía de 2021 sobre aplicaciones descentralizadas (opens in a new tab) - LimeChain
- ¿Qué son las aplicaciones descentralizadas? (opens in a new tab) - Gemini
- Dapps populares (opens in a new tab) - Alchemy
¿Conoce algún recurso de la comunidad que le haya ayudado? ¡Edite esta página y agréguelo!
Temas relacionados
Tutoriales: Construir aplicaciones y frontends en Ethereum
- Recorrido por el contrato de Uniswap-v2 – Un recorrido anotado por los contratos principales de Uniswap v2 que explica cómo funciona el creador de mercado automatizado (AMM).
- Construir una interfaz de usuario para su contrato – Cómo construir un frontend moderno con React + Wagmi que se conecte a su contrato inteligente.
- Contrato inteligente "Hola Mundo" para principiantes – Fullstack – Tutorial de principio a fin: escriba, despliegue y construya un frontend para un contrato inteligente simple.
- Componentes de servidor y agentes para aplicaciones Web3 – Cómo escribir componentes de servidor en TypeScript que escuchen eventos de la cadena de bloques y respondan con transacciones.
- IPFS para interfaces de usuario descentralizadas – Cómo alojar el frontend de su dapp en IPFS para obtener resistencia a la censura.