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áctica 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 base32 del hash SHA-256 del contenido del archivo, usando el algoritmo IPFS CID v1 . Se ven así:
bafybeicgclohdfaccu2sqqkzrzuenjxzcry3m5vcb4mpxgucjl3oheq5tqEl prefijo en los primeros bytes indica la codificación, la versión y el tipo de hash del propio identificador.
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 snapshots, los archivos almacenados en la red están asociados a una entity 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> el endpoint del servidor de contenido puede usarse para descargar cualquier archivo. Sus identificadores se encuentran en el manifestde 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 contenido para más detalles.
Última actualización