{"id":"c0878","filename":"c0878_browser_compute_nodes.dok.json","weise3_id":"c0878_browser_nodes_1778915332","tip":"arhitekturalna_odluka","naziv":"Browser Compute Nodes — Korisnici kao dio mreže","kreator":"CC + Ivan","datum":"2026-05-16","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"weise3_id":"c0878_browser_nodes_1778915332","tip":"arhitekturalna_odluka","naziv":"Browser Compute Nodes — Korisnici kao dio mreže","datum":"2026-05-16","verzija":"1.0","zakon":[17,26,3,38],"autor":"CC + Ivan","sto_treba":"Svaki 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_node_js":"public/sdk/genesis-node.js — Main thread SDK, auto-start na login event, GenesisNode.start/stop/status API","nginx":"Service-Worker-Allowed: / header, /sdk/genesis-node-worker.js poseban location blok","popup_html":"genesis-node.js dodan u login popup — auto-aktivacija nakon prijave","mesh_router":"mreza_status() uključuje browser_cvorovi + browser_tasks count","main_py":"node_router wired, mesh_router startup u lifespan"},"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 whitelist genesis.limit-connect.com","kapaciteti":"weise3_verify (CPU), sha3_hash (CPU), heartbeat — browser ne prima Ollama inference (previše MB)","fallback":"Browser čvor ne ometa normalan rad — passthrough fetch handler, graceful leave na unload","nulti_most":"Browser može verificirati lokalno bez servera — iste SHA3 formule kao server"},"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"}}}