Servicios backend
Esta página ofrece una descripción completa de todos los servicios de backend de Decentraland, sus roles arquitectónicos y cómo interactúan dentro del ecosistema. Para especificaciones detalladas de la API y los endpoints, consulte el Referencia de API sección.
Service Architecture
El backend de Decentraland está compuesto por microservicios distribuidos organizados en capas lógicas:
Capa Descentralizada - Red Catalyst e infraestructura de entrega de contenido
Capa de Comunicaciones en Tiempo Real - Descubrimiento de servicios y comunicaciones peer-to-peer
Servicios de Funcionalidad - Funcionalidad orientada al usuario (contenido, economía, gamificación)
Servicios Core - Infraestructura esencial de la plataforma (auth, marketplace, notificaciones)
Capa Descentralizada
Catalyst
Propósito: Red de entrega de contenido descentralizada
La red Catalyst forma la base de la infraestructura de contenido de Decentraland. Cada nodo Catalyst es un servidor completo que proporciona:
Content Server - Almacenamiento y recuperación de entidades (scenes, profiles, wearables)
Servicio Lambdas - Endpoints de utilidad y consultas de contenido
Servidor de Comunicaciones - Transporte de mensajes en tiempo real
Rol Arquitectónico: Los nodos Catalyst están distribuidos geográficamente y son permissionless. La red proporciona redundancia y disponibilidad de contenido sin control central.
Integraciones Clave:
Realm Provider - Publica la disponibilidad del nodo
Asset Bundle Registry - Disparar la optimización de assets en el despliegue
Archipelago Workers - Proporciona datos de isla/cluster
Referencia de API: Catalyst API
Lamb2
Propósito: Utilidades Lambda y funciones serverless
Lamb2 proporciona endpoints de utilidad para el consumo de contenido y consultas que complementan el Content Server:
Agregación y filtrado de scenes
Consultas de profiles con mecanismos de respaldo
Comprobaciones de estado y salud
Rol Arquitectónico: Actúa como una capa de conveniencia sobre el acceso bruto a entidades del Content Server, proporcionando patrones de consulta de alto nivel comúnmente requeridos por los clientes.
Referencia de API: Lamb2 API
Capa de Comunicaciones en Tiempo Real
Realm Provider
Propósito: Descubrimiento de servicios y selección de realm
El Realm Provider es el punto de entrada para todos los clientes de Decentraland. Implementa la selección inteligente de realm basada en:
Optimización geográfica - Enruta a los usuarios hacia los nodos Catalyst más cercanos
Monitoreo de salud - Filtra nodos no saludables o sobrecargados
Seguimiento de capacidad - Proporciona recuentos de usuarios en tiempo real por realm
Agregación de escenas populares - Identifica ubicaciones populares en todos los realms
Rol Arquitectónico: Fuente única de verdad para la infraestructura disponible. Los clientes lo consultan una vez al iniciar para descubrir todos los endpoints de servicio (Catalyst, Comms, BFF).
Integraciones Clave:
Consulta todos los nodos Catalyst periódicamente
Agrega estadísticas de Archipelago
Proporciona una vista unificada de la red distribuida
Referencia de API: Realm Provider API
Comms Gatekeeper
Propósito: Control de acceso a voz y video
El Gatekeeper gestiona el acceso a servidores de media LiveKit para chat de voz y video:
Generación de tokens - Crea tokens de acceso con tiempo limitado y permisos específicos
Administración de scenes - Gestiona derechos de administrador de scene y baneos
Gestión de streams - Controla el acceso a transmisiones en vivo y claves RTMP
Controles de privacidad - Aplica permisos de chat de voz privado
Rol Arquitectónico: Capa de seguridad entre clientes e infraestructura de media. Evita accesos no autorizados mientras permite modelos de permisos flexibles (basados en scene, privados, comunitarios).
Integraciones Clave:
LiveKit - Emite JWT tokens para acceso al servidor de media
Worlds API - Valida la propiedad del world para derechos de admin
Signed Fetch - Autentica todas las solicitudes mediante firmas de wallet
Referencia de API: Comms Gatekeeper API
Archipelago Workers
Propósito: Agrupamiento de comunicaciones y enrutamiento de mensajes
Archipelago implementa el protocolo de clustering basado en proximidad que agrupa a jugadores cercanos en "islands":
Transporte WebSocket - Mantiene conexiones persistentes con los clientes
Seguimiento de posición - Monitorea las ubicaciones de los jugadores en tiempo real
Formación de islands - Agrupa dinámicamente a los jugadores según la distancia
Enrutamiento de mensajes - Reenvía mensajes solo a los miembros de la island
Componentes de Arquitectura:
Conector WebSocket - Maneja conexiones de clientes y autenticación
Archipelago Core - Implementa el algoritmo de clustering y la gestión de islands
Servicio de stats - Proporciona métricas de conexión y recuentos de usuarios
Integración con NATS - Publica actualizaciones de posición y enruta mensajes
Rol Arquitectónico: Optimiza las comunicaciones peer-to-peer limitando el fanout de mensajes. En lugar de transmitir a todos los usuarios en un realm, los mensajes solo alcanzan a los jugadores dentro del rango de interacción.
Integraciones Clave:
Broker de mensajes NATS - Enrutamiento de mensajes distribuido
Realm Provider - Proporciona estadísticas de islands
Places API - Datos de recuento de usuarios para escenas populares
Referencia de API: Archipelago Workers API
Servicios de Funcionalidad
Worlds
Propósito: Alojamiento aislado de scenes fuera de la cuadrícula principal
Worlds permiten a los usuarios desplegar scenes en entornos aislados:
Worlds con nombre - Accesibles mediante URLs personalizadas (p. ej.,
world.dclworlds.com)Worlds privados - Control de acceso mediante NFT
Permisos de Worlds - Derechos de administrador y despliegue gestionados por el owner
Rol Arquitectónico: Extiende el modelo de contenido de Decentraland más allá de la cuadrícula fija de LAND. Cada world es una scene independiente con sus propios canales de comunicación y control de acceso.
Integraciones Clave:
Consulta indexadores de blockchain para verificación de propiedad de NFT
Publica actualizaciones del world en NATS para sincronización en tiempo real con los clientes
Se integra con Comms Gatekeeper para salas de chat de voz
Activa la canalización de procesamiento de assets en el despliegue
Referencia de API: Worlds API
Eventos
Propósito: Gestión y descubrimiento de eventos in-world
Gestiona el ciclo de vida completo de eventos virtuales:
CRUD de eventos - Creación, actualizaciones y programación
Seguimiento de asistentes - Participación de usuarios y RSVPs
Descubrimiento - Consultas y filtrado por tiempo
Notificaciones - Integración con Events Notifier
Rol Arquitectónico: Proporciona contexto temporal al metaverso. Los eventos impulsan el descubrimiento y la participación de usuarios al resaltar experiencias sensibles al tiempo.
Referencia de API: Events API
Places
Propósito: Descubrimiento y curación de puntos de interés
Agrega y selecciona ubicaciones interesantes en todo Decentraland:
Escenas populares - Popularidad en tiempo real basada en recuentos de usuarios
Lugares destacados - Ubicaciones seleccionadas editorialmente
Búsqueda y filtrado - Descubrimiento por tags, categorías
Metadata de POI - Descripciones, miniaturas, coordenadas
Rol Arquitectónico: Resuelve el problema del descubrimiento en un mundo abierto grande. Agrega datos de múltiples fuentes para ayudar a los usuarios a encontrar contenido atractivo.
Integraciones Clave:
Catalyst - Metadata de scenes e información de despliegue
Archipelago Stats - Recuentos de usuarios en tiempo real por scene
Comms Gatekeeper - Disponibilidad y estado de realms
Referencia de API: Places API
Atlas Server
Propósito: Datos de mapa y visualización de parcelas
Proporciona datos completos del mapa mundial:
Propiedad de parcelas - Datos de LAND indexados en blockchain
Metadata de scenes - Nombres de scenes desplegadas y coordenadas
Tiles de mapa - Imágenes de tiles prerenderizadas para visualización en UI
Consultas espaciales - Encontrar parcelas por coordenadas u owner
Rol Arquitectónico: Proporciona el índice espacial para la cuadrícula de LAND de Decentraland. Esencial para UIs de mapa y navegación espacial.
Referencia de API: Atlas Server API
Camera Reel
Propósito: Gestión de capturas de pantalla generadas por usuarios
Gestiona capturas de pantalla e imágenes de usuarios:
Subidas de imágenes - Almacenamiento autenticado de imágenes
Organización de galerías - Colecciones de capturas de pantalla de usuarios
Metadata - Ubicación de la scene, marca de tiempo, tags
Rol Arquitectónico: Habilita el intercambio de contenido y funciones sociales alrededor de la fotografía generada por usuarios.
Referencia de API: Camera Reel API
Exploration Games
Propósito: Gamificación de onboarding y tutoriales
Sistema de misiones interactivas para el onboarding de nuevos usuarios:
Seguimiento de misiones - Progreso a través de misiones tutoriales
Finalización de desafíos - Verificación de tareas
Integración de recompensas - Conexión al sistema de recompensas
Rol Arquitectónico: Reduce la fricción para nuevos usuarios proporcionando una introducción estructurada y orientada a objetivos a las funcionalidades de Decentraland.
Referencia de API: Exploration Games API
Servicios Core
Auth Server
Propósito: Autenticación basada en wallet y gestión de sesiones
Implementa el modelo de autenticación wallet-first de Decentraland:
Verificación de firmas - Valida firmas de wallets Ethereum
Emisión de tokens JWT - Genera tokens de sesión
Validación de tokens - Verifica tokens para recursos protegidos
Ciclo de vida de la sesión - Refresco y expiración de tokens
Rol Arquitectónico: Proporciona verificación de identidad descentralizada. Los usuarios se autentican mediante firmas de wallet en lugar de contraseñas, alineándose con los principios Web3.
Flujo de Autenticación:
El cliente solicita un challenge
El usuario firma el challenge con la wallet
Auth Server verifica la firma y emite un JWT
El cliente incluye el JWT en solicitudes API subsecuentes
Referencia de API: Auth Server API
Servicio social
Propósito: Gráfica social y gestión comunitaria
Gestiona relaciones sociales y comunidades:
Sistema de amigos - Solicitudes, aprobaciones, listas de amigos
Lista de bloqueo - Bloqueo de usuarios y privacidad
Comunidades - Membresía de grupos y descubrimiento
Estado en tiempo real - Notificaciones de amigos online/offline vía NATS
Mensajería privada - Infraestructura de mensajes directos
Rol Arquitectónico: Proporciona la capa social que transforma a Decentraland de un mundo virtual a un metaverso social.
Integraciones Clave:
Catalyst Client - Recupera datos de profile para amigos
NATS - Publica actualizaciones de estado de amigos
Archipelago - Consulta estado online y ubicaciones
Referencia de API: Social Service API
Marketplace Server
Propósito: Integración con marketplace NFT
Backend para el marketplace de wearables y emotes de Decentraland:
Consultas de listados - Navegar y buscar items del marketplace
Historial de transacciones - Registros de compras
Datos de precios - Precios de mercado y tendencias
Metadata de colecciones - Colecciones de wearables y emotes
Rol Arquitectónico: Puentea los datos on-chain de NFT con una UI de marketplace amigable para el usuario. Indexa eventos de blockchain para consultas rápidas.
Referencia de API: Marketplace Server API
Asset Services
Registro de paquetes de assets
Propósito: Gestión optimizada de assets
Registro de bundles de assets optimizados para la plataforma:
URLs de asset bundles por plataforma
Versionado
Distribución CDN
Referencia de API: Asset Bundle Registry API
Componentes del Sistema:
Asset Bundle Converter - Construye bundles específicos por plataforma
Generador de LODs - Crea variantes de nivel de detalle
Flujo de Proceso:
Camera Reel
Propósito: Gestión de capturas de pantalla e imágenes
Gestión de contenido generado por usuarios:
Almacenamiento de capturas de pantalla
Subidas de imágenes
Organización de galerías
Referencia de API: Camera Reel API
Credits Server
Propósito: Moneda virtual y economía
Gestiona el sistema de créditos virtuales de Decentraland:
Seguimiento de saldo - Saldos de créditos de usuarios
Libro mayor de transacciones - Transferencias y gasto de créditos
Integración de compras - Conversión de fiat a credits
Sincronización con blockchain - Consulta a indexadores para balances on-chain
Rol Arquitectónico: Proporciona una alternativa de moneda con menor fricción frente a tokens en blockchain para compras y funcionalidades dentro del mundo.
Referencia de API: Credits Server API
Insignias
Propósito: Sistema de logros y gamificación
Premios de insignias impulsados por eventos:
Definiciones de insignias - Logros disponibles
Inventario de usuario - Insignias ganadas por usuario
Otorgamiento automático - Premios de insignias activados por eventos
Componentes de Arquitectura:
Badges API - Consultas de insignias e inventarios de usuarios
Badges Processor - Escucha Events Notifier y otorga insignias
Rol Arquitectónico: Gamifica la participación del usuario mediante logros. Proporciona visibilidad y reconocimiento por las actividades del usuario.
Referencia de API: Badges API
API de recompensas
Propósito: Distribución de recompensas NFT basada en campañas
Gestiona campañas promocionales de recompensas NFT:
Gestión de campañas - Programas de recompensas por tiempo limitado
Verificación de elegibilidad - Verificar la cualificación del usuario
Coordinación de airdrops - Distribución de NFT a usuarios elegibles
Analytics - Seguimiento de participación en la campaña
Rol Arquitectónico: Permite campañas de marketing y adquisición de usuarios a través de recompensas NFT.
Referencia de API: API de recompensas
Notifications Workers
Propósito: Sistema de entrega de notificaciones a usuarios
Infraestructura de notificaciones multicanal:
Notificaciones in-app - Consultas de bandeja de notificaciones
Notificaciones por email - Integración con SendGrid
Push notifications - Alertas para móvil y escritorio
Seguimiento de estado de lectura - Marcar notificaciones como leídas/no leídas
Componentes de Arquitectura:
Bandeja de notificaciones - API para consultar notificaciones de usuario
Procesador de notificaciones - Genera notificaciones a partir de Events Notifier
Rol Arquitectónico: Mantiene a los usuarios comprometidos mediante alertas oportunas sobre actividad de amigos, eventos, recompensas y actualizaciones del sistema.
Referencia de API: Notifications Workers API
Events Notifier
Propósito: Bus de eventos para eventos de la plataforma
Sistema centralizado de publicación de eventos que desencadena acciones aguas abajo:
Eventos de usuario - Login, compras, despliegues
Eventos del mundo - Actualizaciones de scenes, acciones de admin
Eventos del sistema - Mantenimiento, actualizaciones
Rol Arquitectónico: Desacopla a los productores de eventos de los consumidores. Los servicios publican eventos sin saber quién los procesa, permitiendo arquitecturas extensibles.
Integraciones aguas abajo:
Procesador de notificaciones - Crea notificaciones de usuario
Procesador de insignias - Otorga insignias de logro
Rewards API - Rastrea elegibilidad para campañas
Referencia de API: Events Notifier API
Patrones de Interacción de Servicios
Patrones Comunes de Integración
Catalyst Client Library
Muchos servicios de backend usan la Catalyst Client library para interactuar con la red descentralizada Catalyst:
Servicio social - Recupera datos de profile de usuarios
Events API - Consulta metadata de scenes
Places - Agrega información de scenes
Registro de paquetes de assets - Escucha eventos de despliegue
Esta library abstrae la lógica de consulta a múltiples nodos y failover.
Broker de Mensajes NATS
Actualizaciones en tiempo real y comunicación asíncrona fluyen a través de NATS:
Servicio social - Publica cambios de estado de amigos
Worlds - Difunde actualizaciones de configuración del world
Archipelago - Enruta actualizaciones de posición entre islands
Events Notifier - Publica eventos de la plataforma
NATS permite que los servicios se comuniquen sin acoplamiento directo.
Indexadores de blockchain
Los servicios consultan indexadores (no la blockchain directamente) por rendimiento:
Worlds - Verifica la propiedad de NAME NFT
Atlas - Recupera datos de parcelas LAND
Credits Server - Comprueba balances de tokens
API de recompensas - Verifica condiciones de elegibilidad
Las consultas directas a la blockchain serían demasiado lentas para APIs en tiempo real.
Canalización de Despliegue de Contenido
Cuando un usuario despliega contenido en Catalyst, múltiples servicios aguas abajo lo procesan:
Pasos de la canalización:
Catalyst - Almacena datos de entidad en bruto
Cola de despliegue - Dispara procesamiento asíncrono
Asset Bundle Converter - Construye bundles optimizados de Unity
Generador de Imagen de Perfil - Renderiza miniaturas de avatar (para entidades de profile)
Events Notifier - Publica evento de despliegue
Badges Processor - Comprueba insignias por despliegue
Matriz de Dependencias de Servicios
Catalyst
Ninguno (descentralizado)
Todos los servicios
Realm Provider
Catalyst, Archipelago Stats
Todos los clientes
Auth Server
Ninguno
Todos los servicios protegidos
Archipelago Workers
NATS, LiveKit
Realm Provider, Places
Comms Gatekeeper
LiveKit, Worlds API
Clientes (generación de tokens)
Worlds
Catalyst, NATS, Blockchain
Gatekeeper, Clientes
Servicio social
Catalyst, NATS, Archipelago
Clientes
Places
Catalyst, Archipelago, Comms
Clientes
Events Notifier
Ninguno
Notificaciones, Badges, Rewards
Registro de paquetes de assets
Catalyst, Deployment Queue
Clientes (assets optimizados)
Notifications Workers
Events Notifier, SendGrid
Clientes
Documentación Relacionada
Arquitectura
Descripción de la arquitectura - Arquitectura completa del sistema
Catalyst Network - Entrega de contenido descentralizada
Infraestructura - Sistemas de soporte (NATS, LiveKit, bases de datos)
Referencias de API
Documentación de API - Especificaciones completas de la API
Autenticación - Flujos de auth basados en wallet
Comunicaciones - Protocolos de mensajería en tiempo real
Desarrollo
Guías para contribuidores - Flujos de trabajo de desarrollo
Guía de Pruebas - Prácticas de pruebas de servicios
Última actualización