{"id":"c1229","filename":"c1229_korak3_kolo_krunica.dok.json","weise3_id":"","tip":"ugradnja","naziv":"GenesisLogin KORAK 3 — Kolo uci iz Krunice (chain-backed pamcenje napada)","kreator":"genesis","datum":"2026-06-01","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"ugradnja","naziv":"GenesisLogin KORAK 3 — Kolo uci iz Krunice (chain-backed pamcenje napada)","sto_treba":"Kolo koji uci flood obrasce preivljava restart — Redis + lambda_lanci chain","faze":[{"naziv":"PraviChain.zapisi() — lambda_lanci INSERT","status":"DONE","detalji":"FOR UPDATE na zadnji blok (thread-safe), chain linking prev_hash→blok_hash, KH1 krunica_hash, kontekst=kolo.{tip}"},{"naziv":"PraviChain.napadi_obrasci() — Redis→DB fallback","status":"DONE","detalji":"Redis HKEYS genesis:kolo:prijetnje O(1), fallback DB SELECT kad Redis prazan"},{"naziv":"PraviChain.lanac_drzi() — tamper detection","status":"DONE","detalji":"Hoda lambda_lanci po id, verificira prev_hash chain + blok_hash rekonstrukcija. Izmjena zapisa = detektirana."},{"naziv":"kolo.uci_napad() patch — chain write","status":"DONE","detalji":"Redis write (postojeci) + get_chain().zapisi() (novo). Greska u chain-u ne blokira Redis upis."},{"naziv":"kolo_bootstrap() — lifespan startup","status":"DONE","detalji":"Na startu servisa: ucitaj sve lambda_lanci kolo.* unose u Redis. Log: Kolo bootstrap: ucitano N obrazaca. Dokazano: 2 obrasca ucitana."},{"naziv":"psycopg2-binary u service venv","status":"DONE","detalji":"venv (bez tocke) nije imao psycopg2. Instalirano: psycopg2-binary 2.9.12."},{"naziv":"39/39 testova (31 lokalno + 8 live DB)","status":"DONE"},{"naziv":"Regresija 20/20 genesis_auth_test.py","status":"DONE"}],"zakon":["ZAKON 43 (krunica_hash na svakom atomu)","UGRADNJA.md KORAK 3"],"server":"NEW (31.70.90.84)","verzija":"GenesisLogin v2 KORAK 3","krunica_hash":"KH1::KORAK3::kolo_krunica::lambda_lanci_chain_backed::FENIX2026","datum":"2026-06-01"}}