Módulo: Executables
Executables: auth y world
auth (src/auth/main.cpp)
El servidor de autenticación:
- Inicializa logging; carga
authserver.yaml(overrideFIRELANDS_AUTH_CONFIG) - Ejecuta
DatabaseMigratorcontrasql/usando la URI JDBC de auth - Abre MariaDB; construye
MySqlAccountRepository,MySqlRealmRepository - Construye
AuthService,RealmListService(opcionalRealmLiveRegistrycuando realm-link está configurado) - Inicia
AsyncNetworkServerpara clientes auth clásicos (AuthSession) - Opcionalmente inicia listener realm-link para métricas de población del world
- Inicia
RestAuthServerenNetwork.RestPortconWebSessionService
Bucle principal: poll authServer.Update() (y realm-link si está habilitado).
| Ajuste | Por defecto |
|---|---|
| Auth TCP | 3724 |
| REST | 8081 |
world (src/world/main.cpp)
El servidor world:
- Carga
worldserver.yaml(FIRELANDS_WORLD_CONFIG) — sale si falta - Reconfigura logging (rotación de archivos, niveles)
- Opcionalmente
RunRealmLinkOutboundcuandoRealmLink.Enabled - Inicializa
LuaGameScriptHost→WorldService; disparaworld_startup - Configura
MapCollisionQueriesStubdesdeCollision.DataRoot - Migra DB; conecta bases de datos auth, characters y world
- Cablea
AuthService,CharacterService,CommandService,GmTicketService,PlayerCreateInfoService - Inicia
AsyncNetworkServerenNetwork.Port(por defecto 8085) - Consola interactiva vía
WorldInteractiveConsole(FTXUI cuando hay TTY)
Bucle principal: worldServer.Update().
FirelandsDevTools (src/tools/)
CLI para cuentas y reinos — ver DevTools. Separado de los comandos de consola .account en el mundo.
Flujo operativo
Client → auth (SRP-6a, realm list) → world (session crypto, gameplay)
↑
realm-link (población en vivo opcional)
- Los clientes se autentican en auth, luego conectan a world con crypto derivada de sesión
- Realm-link sincroniza métricas de reino en vivo de world a auth cuando está configurado
- Comandos de staff: Comandos GM
Configuración
| Archivo | Executable |
|---|---|
authserver.yaml | auth |
worldserver.yaml | world |
Secciones clave de world: Network, Database.*, Scripting, Data.DbcPath, Collision.DataRoot, Rates, Console, RealmLink.