Visão geral
Tudo o que pode encontrar dentro do mundo virtual de Decentraland está alojado numa rede distribuída de servidores conhecida como Catalysts, que fornece (entre outras coisas) a content API. São o meio através do qual os clients fazem upload e download de conteúdo.
A API completa do Catalyst está disponível em a sua própria referência. Aqui, vamos focar-nos em perceber como o conteúdo está organizado e como pode ser descoberto e descarregado.
Todos os conceitos importantes mencionados abaixo são descritos com mais detalhe nas suas próprias páginas.
Files, Entities, Pointers
Existem três camadas no sistema de conteúdo de Decentraland: files são empacotados em entidades, e os entities são descobertos usando ponteiros.
Files são armazenados num sistema de ficheiros descentralizado semelhante ao IPFS e sincronizados automaticamente entre content servers. São identificados por uma string ID única que é calculada a partir do conteúdo do ficheiro, e tanto o identificador como o conteúdo são imutáveis. Não existe algo como atualizar um ficheiro. Em vez disso, são carregados ficheiros de substituição e os ficheiros desatualizados são eliminados.
Entities são pacotes atómicos de ficheiros e representam o conteúdo real encontrado no mundo, como scenes e wearable items. Têm pelo menos um ficheiro, chamado manifest, com uma descrição geral e metadata. Tal como os ficheiros individuais que contêm, são imutáveis e identificados por uma string única e determinística. Todas as entities têm um owner, que possui as chaves privadas necessárias para os gerir.
Ponteiros são referências estáveis que podem ser resolvidas para o ID de uma entity. Quando a entity é substituída (isto é, o owner carrega um novo pacote e o antigo é eliminado), os ficheiros e metadata contidos são diferentes e os seus identificadores também o são, mas os pointers mantêm-se iguais e são redirecionados para a nova versão.
Snapshots
Os content servers também alojam ficheiros grandes JSON delimitados por novas linhas com resumos de todas as active entities (isto é, aquelas atualmente referenciadas por pointers) num determinado momento. Estes são chamados snapshots, e podem ser usados para explorar todo o conteúdo disponível.
Atualizado