====== Redes P2P, Almacenamiento descentralizado y Soluciones de L1 y L2 ====== ===== Redes P2P ===== Las redes Peer to Peer son sistemas descentralizados en los que los nodos se comunican entre sí sin depender de un servidor central. Cada nodo actúa simultáneamente como cliente y servidor, compartiendo recursos entre nodos. ===== DHT ===== Distributed Hash Table: Distribuyen los datos y si indexación en los nodos de la red, lo que permite una búsqueda rápida y descentralizada. Los nodos se asignan mediante una función hash, lo que facilita la localización y almacenamiento de recursos. Las ventajas de las DHT son las siguientes: * Redundancia y disponibilidad * Resistencia a la censura * Eficiencia en la búsqueda ===== Kademlia ===== Es un protocolo DHT en el que tanto los nodos como los recursos tienen IDs hash únicos. Utiliza una tabla de enrutamiento para almacenar información sobre los ndos en la red y facilitar un enrutamiento eficiente. Esta tabla se divide en buckets, que contienen la información sobre los nodos cercanos en términos de distancia clave. ===== IPFS ===== Iterplanetary File System: Sitema de archivos distribuidos diseñado para facilitar el intercambio y distribución de archivos en la web. * Enfoque P2P y descentralizado * Utiliza direcciones basadas en el contenidos, lo que lo hace resistente a la censura y más eficiente en el almacenamiento y distribución. * Permite acceder y almacenar archivos utilizando IDs Hash unicos * Utiliza técnicas de deduplicación para ahorrar espacio de almacenamiento y eliminar duplicados de bloques identicos. IPFS tiene las siguientes ventajas: * Descentralización: almacena y distribuye sin necesidad de servidor central * Eficiencia de red: Optimiza la entrega de contenido * Resistencia a la censura * Versionado de archivos: Permite acceder a versiones antiguas de un archivo. * Integridad de datos usando hashes. IPFS usa una estructura llamada MerkleDAG basada en el árbol de Merkle para organizar y almacenar los datos. La estructura de datos se compone de objetos, bloques y enlaces. * Objetos: Representan los archivos/datos identificados por hashes. * Bloques: Fragmentos de datos que componen los objetos * Enlaces: Conectan objetos. ===== OrbitDB: Base de Datos Descentralizada ===== Es una base de datos de codigo abierto sin servidor construida sobre IPFS que permite crear Daoos con capacidades de almacenamiento distribuido: * Descentralización: elimina la necesidad de unservidor centralizado, permitiendo que los datos se sincronicen yentre múltiples nodos. * Usabilidad: Se puede interacturar con OrbitDB utilizando una interfaz similar a una base de datos tradicional. * Capacidades de consulta y búsqueda: Permite operaciones que facilitan la recuperación de datos específicos de una base de datos. * Control de versiones: Similar a IPFS, mantiene múltiples versiones de los datos. OrbitDB utiliza una arquitectura de capas compuesta por IPFS como capa de almacenamiento y una capa de abstracción de base de datos que facilita el acceso y gestión de los datos. ===== Como implementar IPFS ===== - Configurar Nodo IPFS - Interactura con API de IPFS - Almacenar y recuperar archivos en IPFS.