← DokArh Portal
implementacija_nastavak

Dvorac × TimeWitness — integracija ZivaCigla s 3-izvora vremenom (nastavak c1135)

Kreator: genesis Datum: 2026-05-24 Status: DEPLOYED — services/dvorac_witness.py + tests/test_dvorac_witness_integration.py na genesis-eu
WeisE3™ ID: (nema)
cidc1136
tipimplementacija_nastavak
prethodni_chainc1135 (TimeWitness implementacija)
povod{ "c1135_kaze": "Sljedeći korak 2: Integrirati TimeWitness u dvorac.py i krunica chain — zamijeniti d9_svjedok jedinog svjedoka novim TimeWitness + countersign", "ivan_kaze": "nastavi c1135" }
dizajnerska_odluka{ "opcija_A_destruktivno": "Zamijeniti d9_svjedok logiku u dvorac.py (1143 lin) — RISK: production fenix-v3 hash-evi se mijenjaju, breaking change", "opcija_B_non_destructive": "DODATI dvorac_witness.py ekstenziju koja proširi proof bez diranja dvorac.py — postojeće cigle nepromijenjene, novi enriched", "odabrano": "B — non-destructive extension. Production v40 ostaje netaknuta. Novi sloj je opt-in." }
implementirano{ "novi_fajl": "/var/www/genesis/services/dvorac_witness.py (220 linija)", "test_fajl": "/var/www/genesis/tests/test_dvorac_witness_integration.py (160 linija)", "format_extension": "{cigla}/.cigle/{stem}.witness.json — uz postojeće payload/proof/chain/svjest", "api": [ "enrich_cigla_with_witness(cigla, sender_priv?, sender_pub?, recipient_w3?, recipient_priv?, recipient_pub?) -> dict", "save_witness_json(cigla, extension, output_path?) -> Path", "verify_witness_file(witness_
sto_witness_json_sadrzi{ "time_witness": "3 izvora: lokal + 4 NTP + 3 TSA RFC3161, DER proof bytes iz TSA-e", "consensus": "POUZDANO / SUMNJIVO / KRITICNO", "countersign": { "sender_w3": "weise3_id pošiljatelja", "sender_sig": "Ed25519 hex (128 znakova)", "sender_pub": "Ed25519 javni ključ hex", "recipient_w3": "weise3_id primatelja", "recipient_sig": "Ed25519 hex supotpis", "recipient_pub": "Ed25519 javni ključ primatelja", "krunica_hash": "SHA3-256 svega + 3-source witness + oba pot
dokazi_testom{ "test_1_enrich": "PASS — 4 NTP + 3 TSA + 1 lokal upisan, POUZDANO konsenzus", "test_2_countersign": "PASS — sender Ed25519 + recipient Ed25519, krunica_hash sastavljen iz oba", "test_3_backward_compat": "PASS — postojeće v40 cigle bez .witness.json su legalne", "test_4_tamper_detect": "PASS — izmjena atom_hash promijeni očekivani krunica_hash (mismatch detect)", "ukupno": "11/11 testova prošlo" }
backward_kompatibilnost{ "v40_production_dvorac": "NEDIRNUTO (na MAR fenix-v3 i fenix-v4)", "postojeci_cigle_bez_witness": "i dalje rade — verify ne traži .witness.json", "novi_cigle_s_witness": "dobiju .witness.json kao 5. fajl uz postojećih 4 (.payload, .proof, .chain, .svjest)", "migracija": "nije potrebna; postupno enrichment per-call" }
sto_jos_nije{ "krunica_chain_dopuna": "Krunica blokovi (api/genesis_login.py + services/krunica*) ne čitaju još .witness.json — treba im hook da uključe witness_hash u svoj append-only zapis", "key_registry": "napad 8 iz c1135 testa — sender_pub može biti bilo čiji. Treba povjereni registar weise3_id ↔ public_key. Sljedeći prioritet.", "automatsko_enrichment": "trenutno ručno se mora pozvati enrich_cigla_with_witness — za production bi trebao hook u ZivaCigla.kreiraj() s opt-in flagom" }
zakon_status{ "ZAKON_41": "poštovano — non-destructive extension, sav novi kod je naš ili W3C standard", "ZAKON_43": "poštovano — krunica_hash u svakom witness blok-u", "ZAKON_26": "poštovano — schema_version=dvorac-witness-v1, jasna struktura" }
poruka_ivanuSloj 2 zatvoren. Dvorac sad može imati 3-izvora vremenski svjedok i dvostrani potpis, bez diranja jedne linije production koda. Sljedeći prirodan korak je Krunica chain pickup (da blok zapisa zna za witness) i Key Registry (da znamo čiji je javni ključ stvarno čiji).
promatracClaude (AI asistent)
statusDEPLOYED — services/dvorac_witness.py + tests/test_dvorac_witness_integration.py na genesis-eu