📖
DeFinomics Papers
  • 📚DeFinomics Papers
  • ⛓️Layer 2
    • Diferentes tipos de Layer2
  • 💸DeFi
    • Guía de Evaluación de Riesgos de DeFi v1 (EEA)
    • Impermanent Loss - Paso a paso (Math)
    • Trader Joe V2 vs Uniswap V3
  • 📚Ingeniería de Tokens
    • Criptoeconomía 101
    • Sobre la Práctica de la Ingeniería de Tokens, Parte I: Introducción al Ingeniero de Tokens
    • ¿Pueden las cadenas de bloques volverse inapropiadas?
  • 📂Filecoin
    • ¿Qué es Filecoin?
    • Filecoin e IPFS
    • Modelo de Almacenamiento
    • Criptoeconomía de Filecoin
    • La Máquina Virtual de Filecoin
    • Lecciones
      • Direccionamiento de Contenido | 5 Lecciones
        • Identificando y recuperando datos en la web | Lección 1 de 5
        • La web centralizada: Direccionamiento basado en ubicación | Lección 2 de 5
        • La web descentralizada: Direccionamiento de contenido | Lección 3 de 5
        • Hashing criptográfico e Identificadores de Contenido (CIDs) | Lección 4 de 5
        • Vincular datos entre sí | Lección 5 de 5
      • Anatomía de un CID | 6 Lecciones
        • ¿Qué es un CID? | Lección 1 de 6
        • Multihash | Lección 2 de 6
        • CIDv1: Prefijo Multicodec | Lección 3 de 6
        • CIDv1: Prefijo de versión | Lección 4 de 6
        • CIDv1: Prefijo Multibase | Lección 5 de 6
        • Un hash, múltiples versiones de CID | Lección 6 de 6
      • Merkle DAGs: Estructurando Datos para la Web Distribuida | 8 Lecciones
        • Los datos tienen estructura | Lección 1 de 8
        • Ventajas de los datos estructurados correctamente | Lección 2 de 8
        • Gráficos Acíclicos Dirigidos (DAGs) | Lección 3 de 8
        • Introducción a los Merkle DAGs | Lección 4 de 8
        • Merkle DAGs : Verificabilidad | Lección 5 de 8
        • Merkle DAG: Distribuibilidad | Lección 6 de 8
        • Merkle DAG: Deduplicación | Lección 7 de 8
        • Merkle DAGs como un bloque de construcción | Lección 8 de 8
      • Verificación de almacenamiento en Filecoin | 6 Lecciones
        • Almacenamiento descentralizado e incentivado | Lección 1 de 6
        • Preparación y transferencia de datos | Lección 2 de 6
        • Prueba de Replicación (PoRep) | Lección 3 de 6
        • Prueba de Espaciotiempo (PoSt) | Lección 4 de 6
        • zk-SNARKs | Lección 5 de 6
        • Verificando tu acuerdo | Lección 6 de 6
    • La conservación de registros inmutables en Filecoin será esencial para la IA
    • Por qué el almacenamiento de archivos descentralizado y distribuido es vital para un mejor internet?
  • ⚒️Tools
    • Rotki
Powered by GitBook
On this page
  1. Filecoin
  2. Lecciones
  3. Merkle DAGs: Estructurando Datos para la Web Distribuida | 8 Lecciones

Merkle DAG: Deduplicación | Lección 7 de 8

Aprende cómo podemos usar los CID para crear estructuras de datos direccionables por contenido para la web distribuida.

PreviousMerkle DAG: Distribuibilidad | Lección 6 de 8NextMerkle DAGs como un bloque de construcción | Lección 8 de 8

Last updated 1 year ago

Los Merkle DAGs ofrecen una forma directa de lograr la deduplicación de datos, almacenando eficientemente los datos al codificar las secciones redundantes como enlaces. Esto puede ocurrir tanto en escalas pequeñas como grandes.

Para un ejemplo de duplicación de datos a pequeña escala, considera el caso de uso de seguimiento de cambios en archivos en un directorio a lo largo del tiempo (esto a menudo se llama versionado). Un cambio que podríamos hacer en este directorio es eliminar el directorio "fish", reemplazándolo por un directorio llamado "dogs". Estos cambios resultan en un nuevo DAG, representando un estado actualizado del directorio. Sin embargo, todos los nodos que representan el directorio "cats" y sus archivos son comunes a ambos DAGs. Por lo tanto, podemos reutilizarlos, como se muestra a continuación, donde los nodos naranjas representan nodos que solo se usan en el DAG original, los nodos verdes representan aquellos que son comunes a ambos, y los nodos azules representan los nodos adicionales necesarios para el nuevo estado.

Esto significa que podemos almacenar ambas versiones del directorio "pics", ¡sin ocupar el doble de espacio que se necesita para almacenar una sola versión! Git, un sistema común de control de versiones, utiliza los Merkle DAGs de una manera muy similar para rastrear los cambios en el código fuente en proyectos de software.

La deduplicación marca una gran diferencia cuando expandes este concepto a una escala mayor. Por ejemplo, considera el caso de uso de navegar por la web. Cuando una persona visita una página web usando un navegador, el navegador debe primero descargar cualquier recurso asociado con la página, incluyendo imágenes, texto y marcado de estilo. Puede que hayas notado que muchas páginas web se parecen bastante, utilizando variantes ligeramente diferentes de un tema común. A menudo, hay mucha redundancia aquí: los temas son mayormente los mismos, con ajustes aquí y allá en los datos que los describen.

En la web direccionada por ubicación, cada uno de estos temas, a pesar de compartir muchos de los mismos datos, a menudo se descarga completamente de nuevo, ya que no hay una forma fácil de identificar esta redundancia. En contraste, si se usaran Merkle DAGs para distribuir los temas, todos compartirían un núcleo común identificable que permanecería sin cambios de un tema a otro, y así el navegador podría ser lo suficientemente inteligente como para evitar descargar este componente más de una vez. Siempre que un usuario visitara un nuevo sitio web utilizando una variación del tema, el navegador solo necesitaría descargar los nodos de su DAG correspondientes a las partes que son diferentes, ¡habiendo ya descargado previamente el resto! Para recursos que se utilizan extremadamente en todo Internet (piensa en temas de WordPress, la biblioteca CSS de Bootstrap o bibliotecas comunes de JavaScript), esto podría resultar en una tremenda reducción de descargas innecesarias y desperdiciadoras.

La direccionabilidad de contenido nos permite formar algo así como un sistema de archivos global y distribuido. Usando Merkle DAGs , puedes "almacenar" un conjunto de datos masivo sin realmente tener que almacenarlo: mientras tengas conexión a Internet, puedes recuperar las piezas que necesites en cualquier momento dado. De hecho, ¡nadie tiene que almacenar todo el conjunto de datos! Los CIDs nos permiten enlazar y construir colecciones de datos de manera fluida a través de computadoras, ayudando a todos a usar el espacio de almacenamiento de manera más eficiente (aunque, cabe mencionar, a menudo también queremos duplicar datos por redundancia).

También no estamos limitados en la granularidad de nuestros DAGs: en lugar de trabajar con nodos grandes que corresponden a archivos enteros, podemos dividir un archivo en trozos y hacer un DAG con ellos. Cuando hacemos esto, a menudo podemos encontrar formas de deduplicar los contenidos de archivos similares.

📂
Page cover image