tiparhitekturalna_odluka
verzija1.0
zakon[
17,
26,
3,
38
]
sto_trebaSvaki prijavljeni korisnik postaje compute čvor koji volontira CPU/RAM za mrežu dok je aktivan.
sto_je_napravljeno{
"browser_nodes_py": "services/browser_nodes.py — Redis-backed node registry, ZAKON 17 PULL model (30s interval), TypedDict BrowserNode/BrowserTask/BrowserResult, server-side seal verifikacija",
"api_node_py": "api/node.py — 6 REST endpointa: /register, /task (PULL), /result, /status, /leave, /admin/task",
"genesis_node_worker_js": "public/sdk/genesis-node-worker.js — Service Worker, 30s pull loop, sha3 seal, IndexedDB key čitanje, weise3_verify + sha3_hash + heartbeat zadaci",
"genesis
arhitektura{
"model": "ZAKON 17 PULL — Service Worker pita server svakih 30s, ne prima push",
"identitet": "node_id = SHA3(genesis_pub + origin + user_agent)[:32] — vezan za Ed25519 keypair iz IndexedDB",
"seal": "SHA3(task_id + json(rezultat, sorted) + node_id + FENIX2026) — server rervrifikacija prije pohrane",
"scope": "Service Worker kontrolira root scope (/) — Service-Worker-Allowed: /",
"sigurnost": "HTTPS-only, Ed25519 keypair autentikacija, rate limit 1 task/10s, seal verifikacija, CORS w
odbijene_odluke[
{
"odluka": "WebSocket push prema browseru",
"razlog": "Krši ZAKON 17 — PULL only između čvorova"
},
{
"odluka": "Ollama inference u browseru",
"razlog": "llama3.1:8b = 4.7GB model — nepraktično za browser"
},
{
"odluka": "SharedArrayBuffer za compute",
"razlog": "Zahtijeva cross-origin isolation, narušava normalne API pozive"
}
]
status_nakon_deploya{
"server_cvorovi": 4,
"zdravi": 4,
"browser_cvorovi": 0,
"napomena": "browser_cvorovi raste automatski pri prvoj prijavi korisnika"
}
scenariji{
"100_korisnika": "100 browser nodeova × 500 verify/min = 50.000 verifikacija/min dodano na serverske kapacitete",
"1000_korisnika": "1.000 browsera = distributed verification layer koji rasterećuje server CPU 60-80% za hash/verify zadatke"
}