System Architecture
La aplicación móvil OmilooS actúa como el panel de control soberano del usuario para gestionar generación local, trading energético y conectividad de red mesh. Para lograr una tolerancia máxima a fallos (resiliencia offline) y un aislamiento completo del hardware, el sistema se divide en tres niveles arquitectónicos.
1. Clean Architecture (Capa Flutter)
La lógica visual y de negocio en Dart está estructurada bajo patrones desacoplados de Clean Architecture. Ninguna vista interactúa de forma directa con sockets TCP o APIs de la cadena.
[ CAPA DE PRESENTACIÓN ]
Widgets (UI) ◄──► BLoC (State/Events)
│
▼
[ CAPA DE DOMINIO ]
Use Cases ◄──► Entities (Modelos Puros)
│
▼
[ CAPA DE DATOS ]
Repositories ◄──► Data Sources (Modbus/Rust FFI)A. Capa de Presentación
- Widgets (UI): Componentes gráficos de cristal esmerilado (Glassmorphism). Implementan animaciones fluidas de partículas y flujos energéticos sin lógica pesada en el hilo principal.
- BLoC (Business Logic Component): Gestor de estados de la aplicación. Maneja eventos asíncronos y emite estados inmutables que redibujan la interfaz.
B. Capa de Dominio
- Entities: Definiciones puras de datos (
EnergySnapshot,LinkPoint,MeshNode) sin anotaciones de bases de datos o serializadores JSON. - Use Cases: Operaciones lógicas aisladas (p. ej.,
CalculateLos,GetTelemetryStream,PlaceP2pOrder).
C. Capa de Datos
- Repositories: Coordinadores que determinan si los datos deben recuperarse de los dispositivos físicos locales, de la blockchain, o de bases de datos locales.
- Data Sources: Mapeadores de bajo nivel que interactúan con Sockets, MethodChannels y el puente nativo de Rust.
2. Rust FFI Bridge (Rendimiento Crítico)
Para las tareas pesadas que el procesador móvil o de placa embebida no puede realizar de forma eficiente en la máquina virtual de Dart, OmilooS delega el control a una librería compilada en Rust (rust/src) expuesta mediante FFI:
lora_driver.rs: Control de bajo nivel del chip transceptor Semtech SX1262. Procesa la modulación de las tramas de radiofrecuencia (LoRa), detecta colisiones de paquetes y computa el CRC antes de enviarlo por el puerto serie USB-OTG.inference_engine.rs: Enlace nativo C++ (a través de llama.cpp) para interactuar con la GPU/NPU integrada del hardware Edge (como el procesador Rockchip RK3588). Ejecuta modelos de lenguaje locales AndromedaLM en formatos cuantizados (GGUF INT4/8) protegiendo el consumo doméstico del usuario.substrate_rpc.rs: Cliente ultra-ligero JSON-RPC para la validación y anclaje descentralizado en EmpoorioChain.
3. Integración Inter-App (Deep Linking de Seguridad)
Para garantizar la seguridad de las claves criptográficas y evitar que una vulnerabilidad en la aplicación comprometa los fondos del usuario, OmilooS implementa un aislamiento de privilegios estricto:
[ OmilooS ] ──(omiloos://sign)──► [ OmilooS ] (Firma con chip Secure Element)
▲ │
└──────(omiloos://signed)────────────┘- Firmas Criptográficas: Cuando se publica una oferta de venta de excedentes de energía en la red de malla, OmilooS genera el payload del trade y lo transmite mediante un Deep Link a la app OmilooS. Tras la autorización biométrica del usuario, OmilooS firma la transacción utilizando el Secure Element físico del teléfono y la retorna a OmilooS para su emisión on-chain.
- Liquidación de Micropagos: La transferencia de tokens
$DRACMAse delega a Eoonia Wallet a través de canales de estado (State Channels) de baja latencia.