{"id":"c1109","filename":"c1109_atom9d_arhitektura_bez_placanja.dok.json","weise3_id":"","tip":"ARHITEKTURA","naziv":"Atom9D Arhitektura — P2P Protokol bez servera","kreator":"genesis","datum":"2026-05-23T10:30:00Z","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"cid":"c1109","naziv":"Atom9D Arhitektura — P2P Protokol bez servera","datum":"2026-05-23T10:30:00Z","tip":"ARHITEKTURA","zakon":["ZAKON 41 (samo W3C API-ji)","ZAKON 43 (Krunica omniprisustvo)","ZAKON 44 (Folija offline)"],"podsjeticnik":"Atom9D je standardizirana struktura za sve poruke, komande i dokumente u Kvantnom Džepu™. Offline-verifiable, bez servera.","sadrzaj":{"faza":"Implementacija — Atom9D Library","zadatak":"Stvoriti standardiziranu strukturu za P2P atome s offline Krunica verifikacijom","ishod":{"library":"/var/www/genesis/public/quantum/atom9d.js","velicina":"10.7 KB (620 redaka)","funkcije":["Atom9D.create() — kreiraj atom s hash + sig","Atom9D.verify() — offline verifikacija (Krunica + Ed25519)","Atom9D.sign() — Ed25519 digitalni potpis","Atom9D.hash() — SHA3-256 Krunica hash","Atom9D.store() — IndexedDB persistence","Atom9D.retrieve() — dohvati atom iz DB","Atom9D.listByType() — upiti po tipu atoma","Atom9D.broadcast() — gossip replikacija kroz WebRTC"]},"atom_struktura":{"obavezna_polja":{"type":"CHAT | COMMAND | DOCUMENT | VIDEO_FRAME | FOTO | SYSTEM","kreator":"weise3_id (Ed25519 javni ključ, hex)","sadrzaj":"object (tip-specifičan)","ts":"number (unix milliseconds)","atom_id":"string (uuid4[:16])","verzija":"1.0","krunica_hash":"SHA3-256 hash (ZAKON 43)","potpis_ed25519":"Ed25519 signature (ZAKON 44)"},"opcionalna_polja":{"odgovara_na":"atom_id (ako je reply)"}},"primjer_chat_atoma":{"type":"CHAT","kreator":"ed25519_pubkey_abc123...","sadrzaj":{"text":"Bok!","room_code":"FENIX-47"},"ts":1716551400000,"atom_id":"atom_xyz789","verzija":"1.0","krunica_hash":"WEISE3::ed25519_pubkey::chat_sadrzaj::ts::FENIX2026","potpis_ed25519":"deadbeef..."},"offline_verifikacija":{"logika":["1. Verifikovaj Krunica hash (SHA3-256 local)","2. Verifikovaj Ed25519 potpis (local, bez servera)","3. Ako oba provjere prođe → atom je valjan"],"prednost":"Peer može verifikovati atom čak i ako je offline, bez interneta","zakon":"ZAKON 43 + ZAKON 44"},"storage":{"baza":"IndexedDB (browser local)","database":"atom9d_local","stores":{"atoms":{"keyPath":"atom_id","indexes":["by_type","by_kreator","by_ts","by_room"]},"peers":{"keyPath":"weise3_id","indexes":["by_last_seen"]}},"persistence":"Svi atomi ostaju dostupni čak i nakon restarta browser-a"},"broadcast_i_gossip":{"protokol":"WebRTC DataChannel + Atom9D","logika":["1. Peer A generiše atom","2. Peer A ga verifikuje (lokalno)","3. Peer A ga sprema u IndexedDB","4. Peer A ga šalje Peer B-u kroz DataChannel","5. Peer B ga verifikuje (offline)","6. Peer B ga sprema u IndexedDB","7. Peer B ga šalje Peer C-u","8. Krugovi: tracking putem seen_ids Set (sprječava duplikate)"],"primjena":"ZAKON 17 (PULL ONLY) — atomi se replikuju kroz peer network bez centralnog servera"},"zakon_41_compliance":{"opis":"Samo W3C standard API-ji","koristi":["crypto.subtle.digest('SHA-256') — W3C standard","noble-ed25519.js — self-hosted, JS implementacija","IndexedDB API — W3C standard","WebRTC DataChannel — W3C standard","TextEncoder/TextDecoder — W3C standard"],"zabranjeno":["Nijedan vanjski AI/ML model","Nijedan cloud API (OpenAI, Google, AWS)","Nijedan komercijalni SDK (osim noble-ed25519 koji je FOSS)"]},"sigurnost_za_de":{"klasifikacija":"Komunikacijska aplikacija (model: Signal, Telegram P2P)","nije_financijski_servis":true,"razlog":"Atom9D je samo protokol za poruke, komande, dokumenti. Nema novca, nema plaćanja.","zakonski_status":"LEGALNO u DE bez dozvole (kao Signal, Briar, Matrix)","napomena":"Ako bi se ikad dodalo type: 'PAYMENT', trebalo bi PSD2 EMI licenca (što nije u planu)"},"faze_implementacije":{"faza_1":"Atom9D protokol finalizacija (DONE — 2026-05-23)","faza_2":"atom9d.js library (DONE — 2026-05-23)","faza_3":"Integracija u room system (TODO — Q2)","faza_4":"UI — atom_history.html (TODO — Q2)","faza_5":"Offline mode testing (TODO — Q2)","faza_6":"Chain entry — dokumentacija (DONE — c1109)","faza_7":"Deploy na EU + NEW + DE (TODO — Q2)"},"test_plan":{"test_1":"Offline verifikacija — generiraj atom, provjeravaj offline","test_2":"IndexedDB persistence — refresh browser, atom treba biti dostupan","test_3":"Gossip replikacija — Peer A → B → C, atomi se replikuju","test_4":"Seen tracking — isti atom ne bi trebao biti replicirani više puta","test_5":"Ed25519 mismatch — spremi atom s invalid sig, verify() trebao biti false","test_6":"Room filtering — listByRoom('FENIX-47') trebao prikazati samo atome iz te sobe"},"datoteke_koje_se_nalaze_u_lancu":{"atom9d_js":"/var/www/genesis/public/quantum/atom9d.js","plan_file":"C:\\Users\\Desetka\\.claude\\plans\\ticklish-jumping-pillow.md","chain_entry":"/var/www/genesis/schema_dokarh/genesis/c1109_atom9d_arhitektura_bez_placanja.dok.json"}},"sjedinjenja":{"zakon_43":"Svaki atom nosi krunica_hash — omniprisustva Krunice","zakon_44":"Folija može detektirati atom bez valid sig","zakon_41":"Samo W3C API-ji, nema vanjskih alata","zakon_17":"PULL ONLY — atomi se replikuju kroz peer network (ne push)"},"promatrac":"CC (Claude Code)","potpisano_od":"Atom9D.verify()","vrijeme_kreiranja":"2026-05-23T10:30:00Z"}}