{"id":"c1451","filename":"c1451_gmrp_registracija_dokazana.dok.json","weise3_id":"WEISE3::c1451_gmrp_registracija::genesis::rubni-x96::FENIX2026","tip":"implementacija","naziv":"(bez naziva)","kreator":"genesis","datum":"2026-06-22","snippet":"","status":"SEALED","prev_weise3":"","bunker_l":"#00d4ff","full":{"weise3_id":"WEISE3::c1451_gmrp_registracija::genesis::rubni-x96::FENIX2026","tip":"implementacija","sustav":"genesis","naslov":"GMRP — Rubni čvor samoregistracija dokazana (X96 → EU)","verzija":"c1451","datum":"2026-06-22","status":"SEALED","sadrzaj":{"opis":"Genesis Mesh Rendezvous Protocol (GMRP) implementiran i dokazan: X96 Mini (rubni čvor iza NAT-a) sam se prijavljuje na EU rendezvous točku putem HTTP (SSL broken na Android ARM Termux). EU čuva stanje svakog rubnog čvora u /borg/rubni/{agent_id}.json.","implementirano":["EU: POST /api/v1/borg/register — gmrp_register() u services/borg_protokol.py","EU: GET /api/v1/borg/rubni — gmrp_list_rubni() — svi poznati rubni čvorovi + _aktivan flag","EU: nginx port 80 — /api/v1/borg/register i /api/v1/borg/rubni proxirani (SSL broken na ARM)","EU: SudacMiddleware — /api/v1/borg/register i /api/v1/borg/rubni dodani u _JAVNI_TOCNO","X96: gmrp_prijavi() funkcija u x96_mini_genesis.py — POST na EU_REGISTER_URL","X96: poziv na startu (main()) i svakih 10 background_loop ciklusa (~5 min)","X96: EU_REGISTER_URL = 'http://217.160.71.124/api/v1/borg/register' (port 80, nginx)"],"dokaz_ponasanja":{"x96_log":"[gmrp] registriran na EU: {'ok': True, 'agent_id': 'x96mini_ap201809', 'registriran': '2026-06-22T05:40:55.320424+00:00'}","eu_rubni_json":"/var/www/genesis/borg/rubni/x96mini_ap201809.json — dok_count=1534, chain_height=2, disk_free_pct=58, memory_free_mb=718","get_rubni":"GET /api/v1/borg/rubni vraca 3 cvorova, 2 aktivnih"},"zakon_veze":{"ZAKON_17":"PULL-only — rubni se JAVLjaju (POST heartbeat), EU ne pulla rubne jer su iza NAT-a","ZAKON_48":"Readback verifikacija: path.exists() nakon tmp.replace(path) u gmrp_register()","ZAKON_49":"Asimilacija: X96 Android box postaje suvereni rubni čvor mreže bez javnog IP-a"},"problem_rijeseni":["SSL broken na Android ARM Termux build (OpenSSL symbol mismatch) → koristiti HTTP port 80 nginx","EU port 8010 nije javno dostupan → nginx proxy na port 80 za GMRP endpoints","SudacMiddleware blokira POST bez API ključa → GMRP endpoints dodani u _JAVNI_TOCNO","Folija TAMPER detekcija (sudac_middleware.py izmijenjen) → restart genesis ažurira baseline"]},"prev_hash":"c1450_x96_e2e_dokazan","chain":"genesis"}}