Sistema de archivos

Detrás de las diferentes APIs de contenido en el protocolo Decentraland hay una implementación de un sistema de archivos distribuido. Cada servidor de contenido posee una copia del almacenamiento completo y sincroniza las actualizaciones que recibe con otras instancias.

Los archivos subidos al sistema son inmutables. Una vez desplegados, ni su identificador ni su contenido cambian. Solo pueden actualizarse en el sentido de que se sube una nueva versión y las aplicaciones eligen usarla, mientras que la anterior puede descartarse.

Puedes experimentar con archivos en la prácticaarrow-up-right sección.

Identificadores de archivos

El sistema de archivos de Decentraland está organizado en un índice plano (es decir, no existe una jerarquía natural de directorios), donde cada archivo es identificado por una cadena única.

Las cadenas identificadoras están prefijadas por codificaciones base32arrow-up-right del hash SHA-256 del contenido del archivo, usando el algoritmo IPFS CID v1arrow-up-right . Se ven así:

bafybeicgclohdfaccu2sqqkzrzuenjxzcry3m5vcb4mpxgucjl3oheq5tq

El prefijo en los primeros bytes indica la codificación, la versión y el tipo de hash del propio identificador.

circle-info

Por razones históricas, algunas APIs llaman al identificador de archivo hash en lugar de id, pero se refieren a lo mismo. También puedes encontrar identificadores heredados en contenido antiguo que se ven un poco diferentes.

En la práctica, estos detalles no son necesarios para descubrir y descargar contenido. La mayoría de los clientes del protocolo pueden tratar los identificadores como cadenas opacas sin perder funcionalidades.

Toma en cuenta que los identificadores modernos CIDv1 son compatibles con IPFS, dando el mismo CID para el mismo archivo, por lo que IPFS puede usarse como proveedor de archivos.

Propiedad y persistencia

Excepto por snapshotsarrow-up-right, los archivos almacenados en la red están asociados a una entityarrow-up-right propiedad de una cuenta de Ethereum. El propietario es el único autorizado para actualizar la entity y los archivos relacionados.

El protocolo exige que los servidores de contenido siempre almacenen la última versión de una entity y sus archivos, pero pueden elegir si conservan versiones antiguas según su configuración individual.

Descargar archivos

El /contents/<fileId>arrow-up-right el endpoint del servidor de contenido puede usarse para descargar cualquier archivo. Sus identificadores se encuentran en el manifestarrow-up-rightde la entity padre.

Subir archivos

Los archivos no se suben de forma independiente. En su lugar, se empaquetan dentro de entities y se suben durante el despliegue de la entity al servidor de contenido.

Vea la documentación para creadores de contenidoarrow-up-right para más detalles.

Última actualización