> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-pt/arquitetura/catalyst.md).

# Rede Catalyst

A rede Catalyst é a infraestrutura descentralizada de distribuição de conteúdo da Decentraland. Vários operadores independentes executam nós Catalyst que armazenam e servem conteúdo.

## Visão geral

A rede Catalyst opera como um sistema distribuído totalmente malhado, onde os nós se comunicam diretamente entre si para sincronizar conteúdo e manter a saúde da rede.

![Topologia da rede Catalyst](https://4188643014-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6k7p2WCueah7nUnaQYV6%2Fuploads%2Fgit-blob-2292da3f43ef493114d2d1926700386ae161073d%2Fcatalyst.png?alt=media\&token=d1aa206f-8bfc-4959-9320-15c5910e2881)

## Componentes do Catalyst

Cada nó Catalyst é composto por:

### Servidor de conteúdo

**Objetivo**: Armazenamento e recuperação de assets

Armazena e serve:

* Definições de Scene
* modelos 3D e textures
* arquivos de áudio
* scripts
* Avatars e wearables

**Referência da API**: [Catalyst API](https://github.com/decentraland/docs/tree/main/contributor/apis/catalyst/README.md)

### Lambdas

**Objetivo**: funções de consulta serverless

Fornece endpoints consultáveis:

* buscas de Entities
* consultas de perfil
* metadados de conteúdo
* histórico de deployments

As Lambdas são executadas como serviços separados que consultam o banco de dados do Content Server.

### Nginx

**Objetivo**: proxy reverso e balanceamento de carga

Roteia requests para os serviços apropriados:

* Content Server para uploads
* Lambdas para consultas
* servimento de assets estáticos

***

## Deployment de conteúdo

### Fluxo de deployment

```mermaid
sequenceDiagram
    participant CLI
    participant Content as Content Server
    participant Queue as Deployments Queue
    participant Services as Backend Services
    
    CLI->>Content: POST /entities
    Content->>Content: Validar e armazenar
    Content-->>CLI: Deployment aceito
    Content->>Queue: novo evento de deployment
    Queue->>Services: acionar processamento
```

### Etapas do deployment

1. **Compilar**: CLI empacota a Scene usando build-ecs
2. **Assinar**: Creator assina o deployment com a wallet
3. **Fazer upload**: CLI faz upload para qualquer nó Catalyst
4. **Validar**: Catalyst valida assinaturas e conteúdo
5. **Armazenar**: conteúdo salvo no storage
6. **Propagar**: evento publicado na fila de deployment
7. **Processar**: serviços de backend processam novo conteúdo

### Validação de Conteúdo

Catalyst valida:

* Assinaturas digitais (prova de propriedade)
* Hashes de conteúdo (integridade)
* Permissões do parcel (propriedade do LAND)
* Limites de tamanho de arquivo
* Conformidade com a política de conteúdo

***

## Pipeline de deployments

Quando o conteúdo é implantado, vários sistemas reagem:

### Processamento de assets

```mermaid
flowchart LR
    Deploy[Novo Deployment]
    Queue[Deployments to SQS]
    AB[Asset Bundle Converter]
    Profile[Profile Images]
    Badges[Badges]
    
    Deploy --> Queue
    Queue -->|assets 3D| AB
    Queue -->|alterações de Avatar| Profile
    Queue -->|verificação de conquista| Badges
```

**Serviços acionados**:

* **Asset Bundle Converter** - Cria bundles otimizados
* **Profile Images Producer** - Gera miniaturas de avatar
* **Badges Processor** - Verifica conquistas de deployment

### Serviços de escuta

Serviços que monitoram deployments:

* **Worlds** - Para deployments de worlds
* **Comms Gatekeeper** - Para a configuração de voz de worlds
* **Atlas Server** - Para atualizações do mapa

***

## Replicação de conteúdo

Os nós Catalyst replicam conteúdo para garantir disponibilidade:

### Estratégia de replicação

* **Sincronização ativa**: os nós sincronizam ativamente novos deployments
* **Baseada em pull**: os nós buscam conteúdo ausente sob demanda
* **Protocolo gossip**: os anúncios de deployment se propagam

### Endereçamento de conteúdo

Todo o conteúdo é endereçado por conteúdo:

* Arquivos identificados por IPFS CID (Content Identifier)
* Imutável depois de implantado
* Desduplicação automática

***

## Archipelago Workers (Comms)

A infraestrutura de comunicações roda junto com o Catalyst:

### Componentes

#### WebSocket Connector

* Mantém as conexões do client
* Tratamento do protocolo
* Autenticação da conexão

**Referência da API**: [Archipelago Workers API](https://github.com/decentraland/docs/tree/main/contributor/apis/archipelago-workers/README.md)

#### Archipelago Core

* **Formação de ilhas** - Agrupa os players próximos
* **Limites de peers** - Impõe o máximo de peers por ilha (normalmente 100)
* **Atualizações de posição** - Transmite as posições dos players
* **Roteamento de mensagens** - Roteia chat e emotes

#### Serviço de estatísticas

* Contagens de usuários ativos por Scene
* Estatísticas de conexão
* Métricas de desempenho

***

## Integração com Blockchain

### Indexador de Subgraph

Catalyst usa um indexador dedicado:

```mermaid
flowchart LR
    Blockchain[Ethereum/Polygon]
    Subgraph[Indexer]
    Catalyst[Catalyst]
    
    Blockchain -->|Events| Subgraph    
    Catalyst -->|Queries| Subgraph
```

O **Indexer** indexa:

* propriedade de LAND (NFTs de LAND)
* coleções de Wearables e Emotes
* registros de NAMEs
* transferências de NFTs

***

## Próximos passos

* Rever [Serviços de Backend](/contributor/contributor-pt/arquitetura/services.md) para detalhes do serviço
* Veja [Infraestrutura](/contributor/contributor-pt/arquitetura/infrastructure.md) para sistemas de suporte
* Verifique [Visão Geral da Arquitetura](/contributor/contributor-pt/arquitetura/architecture.md) para a visão completa


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/contributor/contributor-pt/arquitetura/catalyst.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
