{"id":"c1390","filename":"c1390_brsljani_sprint12_peer_persist_rate_limit_telemetry.dok.json","weise3_id":"","tip":"sprint","naziv":"K3 Sprint 12 -- IDB Peer Persistence + BATCH_WANT Rate Limit + Bandwidth Telemetry E2E","kreator":"genesis","datum":"","snippet":"12A: on_peer 'connected' sprema peer_wid u IDB node_state[peers_known] (max 10 peera) · 12A: _initP2P() po start() -- ucitaj IDB peers_known i auto-connect odmah (cold-start fix) · 12A: browser node ima peerove odmah pri refresh bez cekanja signaling round-trip","status":"ZATVOREN","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"sprint","naziv":"K3 Sprint 12 -- IDB Peer Persistence + BATCH_WANT Rate Limit + Bandwidth Telemetry E2E","chain_id":"c1390","prev_hash":"","timestamp":"2026-06-14T18:39:07Z","sustav":"fenix-v4/brsljani","status":"ZATVOREN","commit":"7c34169","sto_je_napravljeno":["12A: on_peer 'connected' sprema peer_wid u IDB node_state[peers_known] (max 10 peera)","12A: _initP2P() po start() -- ucitaj IDB peers_known i auto-connect odmah (cold-start fix)","12A: browser node ima peerove odmah pri refresh bez cekanja signaling round-trip","12B: _want_rate Map u konstruktoru, _checkWantRate() -- max 5 BATCH_WANT per peer per 10s","12B: ATOM_BATCH_WANT handler -- rate check na pocetku, prekoracenje = strike() + break","12C: p2p_bandwidth: Optional[dict] u BrowserNodeHealthRequest (schemas.py)","12C: _sendHealth() POST ukljucuje p2p_bandwidth iz _p2pNode.health() (bytes_raw/comp/ratio)","12C: browser_node_router.py sprema p2p_bandwidth u extra JSONB BrowserNode modela","12C: FIX: extra['p2p_peers'] -- ispravljen bug s navodnicima (bio extra[p2p_peers] bez navodnika)","12C: NetworkMapNode.bandwidth_ratio_pct = Optional[int] + populate iz extra.p2p_bandwidth","12C: mapa.html -- Stednja stat u stats-bar (avg compression %) + Kompresija u node detail","12C: mapa.html header Sprint 9 -> Sprint 12"],"zakon":["ZAKON 41 (W3C IDB, no external libs)","ZAKON 17 (pull-only)","ZAKON 26 (schema contract)"],"pravilo_buduc":{"tehnologija":"IDB peer persistence -- browser mesh se formira instantno pri refresh (O(0) cold-start)","sigurnost":"BATCH_WANT rate limit -- DoS zastita, mal. peer ne moze iscrpiti bandwidth servera","mrezni_efekt":"Bandwidth telemetry E2E -- mapa.html prikazuje stvarne utede po cvoru, avg za cijelu mrezu"},"hash":"b6840c24af40ee3deb4967922dbc33df29272ec50da94ad520f32c5b550a0edc"}}