# Resumen

Todo lo que puedes encontrar dentro del mundo virtual de Decentraland se aloja en una red distribuida de servidores conocida como Catalysts, que proporcionan (entre otras cosas) la API de contenido. Son el medio por el que los clientes suben y descargan contenido.

La API completa del Catalyst está disponible en [su propia referencia](https://decentraland.github.io/catalyst-api-specs/). Aquí nos centraremos en comprender cómo se organiza el contenido y cómo puede descubrirse y descargarse.

Todos los conceptos importantes mencionados a continuación se describen con más detalle en sus propias páginas.

### Archivos, Entities, Pointers

Hay tres capas en el sistema de contenido de Decentraland: [archivos](https://github.com/decentraland/docs/blob/main/contributor/filesystem.md) se empaquetan dentro de [entidades](https://github.com/decentraland/docs/blob/main/contributor/entities.md), y las entities se descubren usando [pointers](https://github.com/decentraland/docs/blob/main/contributor/pointers.md).

{% @mermaid/diagram content="flowchart LR
Pointer --> Entity
Entity --> File1\["File 1"]
Entity --> File2\["File 2"]
Entity --> File3\["File 3"]" %}

[Archivos](https://github.com/decentraland/docs/blob/main/contributor/filesystem.md) se almacenan en un sistema de archivos descentralizado similar a IPFS y se sincronizan automáticamente entre los servidores de contenido. Se identifican mediante una ID de cadena única que se calcula a partir del contenido del archivo, y tanto el identificador como el contenido están **inmutables**. No existe algo como actualizar un archivo. En su lugar, se suben archivos de reemplazo y se eliminan los archivos obsoletos.

[Entities](https://github.com/decentraland/docs/blob/main/contributor/entities.md) son paquetes atómicos de archivos y representan contenido real que se encuentra en el mundo, como escenas y elementos de vestimenta. Tienen al menos un archivo, llamado *manifest*, con una descripción general y metadatos. Al igual que los archivos individuales que contienen, son inmutables y se identifican por una cadena única y determinista. Todas las entities tienen un propietario, que posee las claves privadas requeridas para gestionarlas.

[Punteros](https://github.com/decentraland/docs/blob/main/contributor/pointers.md) son referencias estables que pueden resolverse a la ID de una entity. Cuando la entity es reemplazada (es decir, el propietario sube un nuevo paquete y el anterior se elimina), los archivos y metadatos contenidos son diferentes y también lo son sus identificadores, pero los pointers permanecen iguales y se redirigen a la nueva versión.

### Snapshots

Los servidores de contenido también alojan grandes archivos JSON delimitados por nuevas líneas con resúmenes de todas las entities activas (es decir, aquellas actualmente referenciadas por pointers) en un determinado punto en el tiempo. Estos se llaman [snapshots](https://github.com/decentraland/docs/blob/main/contributor/snapshots.md), y pueden usarse para explorar todo el contenido disponible.
