⚡ Arquitetura & Eleição de Papéis (Primary vs Standby)
O cluster RhinoBlocks opera em modelo distribuído com eleição autônoma baseada em Compute Scoring inteligente:
- PRIMARY (Nó Ativo): O nó eleito consome e executa ativamente jobs de geração 3D/2D a partir da fila do cluster.
- STANDBY (Nó de Reserva): Nós em standby enviam telemetria (CPU, RAM, GPU, bateria) a cada 5 segundos e estão prontos para assumir como Primário se o nó atual falhar (>60s sem heartbeat).
- Promoção Manual: O operador pode clicar em ⭐ Promote to PRIMARY para forçar a eleição de qualquer nó como Primário imediato.
🎯 Algoritmo de Compute Scoring
A eleição de papéis prioriza o nó ativo com maior pontuação de computação:
| Processador / Arquitetura | Pontos Base | Fórmula de Bónus Hardware |
| Apple Silicon M4 | 4500 pts | +(RAM_Total_GB × 10) + (Cores_Lógicos × 50) |
| Apple Silicon M3 | 3500 pts |
| Apple Silicon M2 | 2500 pts |
| Apple Silicon M1 | 1800 pts |
| Outro ARM64 (M5 / Neoverse) | 2000 pts |
| Intel / AMD (x86_64) | 900 pts |
🕹️ Controlos Operacionais de Nós
| Ação | Comando | Efeito no Cluster |
| ⏸ Pause | pause | Pausa o worker (não aceita novos jobs da fila). |
| ▶ Resume | resume | Reativa o worker pausado para aceitar jobs. |
| ⏹ Drain | drain | Termina o job atual mas impede novos pedidos. |
| ⭐ Promote | promote | Promove manualmente este nó a Worker Primário. |
| 👑 Active Primary | status | Nó operando como Primário (maior capacidade computacional). |
| ✖ Disconnect | disconnect | Desconecta e remove este nó do cluster. |
| 🔴 Clear Queue | clear-queue | Cancela e limpa todos os blocos PENDENTES da fila. |
| 🔄 Force Refresh | refresh | Atualiza instantaneamente a telemetria do cluster. |
📊 Telemetria & Métricas do Cockpit
Throughput HUD: Apresenta em tempo real o volume de blocos concluídos na Última Hora (blocks/hr), no dia de Hoje (UTC), nas Últimas 24 Horas e no Total Histórico da fila.
Gráfico CPU (60s): Exibe a evolução de carga dos últimos 12 ciclos de 5s via curvas vetoriais SVG ultraleves sem bibliotecas externas.