# Visão Geral

Decentraland é uma plataforma descentralizada de mundo virtual construída em uma arquitetura híbrida que combina propriedade em blockchain, entrega de conteúdo descentralizada e serviços centralizados para melhorar a experiência do usuário.

## Princípios Arquitetônicos

### Descentralização Onde Importa

* **Propriedade** - Land, wearables e names são NFTs no Ethereum
* **Governança** - DAO controla contratos inteligentes críticos e tesouraria
* **Conteúdo** - Distribuído através de nós Catalyst
* **Identidade** - Autenticação baseada em wallet (sem senhas)

### Centralização para Performance

* **Serviços em tempo real** - Comunicações WebSocket, chat de voz
* **Descoberta** - Busca, eventos, conteúdo em destaque
* **Recursos sociais** - Amigos, comunidades, notificações
* **Otimização** - Processamento de assets, geração de imagens

## Camadas do Sistema

### Clientes

Jogadores interagem através de vários clientes:

* **Unity Explorer** - Cliente desktop primário (Windows, Mac, Linux)
* **Web Explorer** - Cliente baseado em browser
* **CLI** - Ferramentas de desenvolvimento para criação e deploy de scenes
* **Clientes da Comunidade** (mobile, VR, etc) - Implementações alternativas para o cliente de referência usando tecnologias de renderização diferentes.

Todos os clients se autenticam via carteiras crypto e seguem os mesmos protocolos.

### Descoberta (Realm Provider)

Ponto único de entrada que fornece aos clients uma descrição do realm:

* Nós Catalyst disponíveis (localização, capacidade, saúde)
* Endpoints de serviços backend

Permite seleção inteligente de servidores baseada em geografia e carga.

### Conteúdo Descentralizado (Catalyst Network)

Rede permissionless de nós Catalyst que armazenam e servem:

* Definições de scene e assets
* Perfis de avatar e wearables

Cada nó valida e armazena conteúdo independentemente. Nós sincronizam deployments mas operam de forma autônoma. Veja [Catalyst Network](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/catalyst) para detalhes.

### Servidores Centralizados de Funcionalidades

Microserviços backend fornecem funcionalidade aprimorada:

* **Descoberta de serviço** - Seleção de realm e monitoramento de saúde
* **Comunicações** - Clusterização WebSocket, controle de acesso de voz/vídeo
* **Recursos de conteúdo** - Worlds, events, places, atlas data
* **Recursos sociais** - Amigos, comunidades, notificações
* **Recursos da plataforma** - Achievements, rewards, virtual credits
* **Processamento de assets** - Otimização, thumbnails, traduções

Veja [Serviços de Backend](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/services) para documentação completa dos serviços.

### Infraestrutura

Sistemas de suporte e serviços de terceiros:

* **Message Broker** - NATS para comunicação entre serviços
* **Media Server** - LiveKit para voz e vídeo
* **Indexadores de Blockchain** - Consultas rápidas para dados de NFT
* **Serviço de Email** - SendGrid para notificações

Veja [Infraestrutura](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/infrastructure) para detalhes.

### Blockchain

Smart contracts no Ethereum e Polygon gerenciam:

* **Propriedade** - LAND, wearables, names, estates
* **Marketplace** - Trading e royalties
* **DAO** - Governance e tesouraria
* **Moeda** - Token MANA

## Modelo de Segurança

### Identidade & Autenticação

* **Assinaturas de wallet** - Sem senhas, autenticação via assinaturas Ethereum
* **Auth Server** - Emite tokens JWT após verificação de assinatura
* **Signed Fetch** - APIs autenticam requests usando assinaturas de wallet

### Validação de Conteúdo

* **Verificação de assinatura** - Todos os deployments assinados pela wallet
* **Propriedade de pointer** - Somente o owner do LAND pode deployar nas coordenadas
* **Limites de tamanho** - Tamanho do conteúdo restrito pelo número de parcels

### Controle de Acesso

* **Tokens com tempo limitado** - JWT e tokens LiveKit expiram
* **Limitação de taxa** - Limites de taxa de API por IP/usuário
* **Proteção contra DDoS** - Rede Catalyst distribuída

## Abordagem de Escalabilidade

### Escalonamento Horizontal

* **Nós Catalyst** - Adicionar nós conforme o conteúdo cresce
* **Serviços backend** - Microserviços stateless escalam independentemente
* **Ilhas** - Comunicações divididas em grupos baseados em proximidade

### Otimização

* **Bundles de assets** - Assets otimizados para a plataforma (Unity bundles)
* **CDN** - Assets estáticos servidos via CDN
* **Caching** - Cache agressivo em todas as camadas
* **Indexadores** - Dados da blockchain em cache em bancos rápidos

## Próximos Passos

Aprofunde-se em áreas arquitetônicas específicas:

* [**Serviços de Backend**](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/services) - Especificações detalhadas de serviços e integrações
* [**Catalyst Network**](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/catalyst) - Entrega e deploy de conteúdo
* [**Infraestrutura**](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/infrastructure) - Sistemas de suporte e serviços de terceiros

## Recursos adicionais

* [Referência de API](https://github.com/decentraland/docs/blob/main/apis/README.md) - Documentação completa da API
* [Guias para contribuintes](https://docs.decentraland.org/contributor/contributor-pt/guias-para-contribuidores/contributor-guides) - Padrões de desenvolvimento
* [Organização no GitHub](https://github.com/decentraland) - Repositórios de código fonte
