nx_mvault_record_gate.nx source
↩ module page · 90 lines · 3647 B
1// nx_mvault_record_gate.nx -- proves vault data lands on the SOTA plane:
2// canonical NXR1 record -> CID -> additive seg-store put -> get byte-identical
3// -> field decode; + dedup-determinism; + a gen 3D record (orthogonal axes).
4// run-exit == 0 means GREEN.
5
6import "nx_syscalls.nx"
7import "nx_canon_cid.nx"
8import "nx_mvault_ingest.nx"
9import "nx_mvault_record.nx"
10
11func slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
12
13func streq_n(a: *u8, alen: i64, b: *u8, blen: i64) -> i64 {
14 if alen != blen { return 0 }
15 var i: i64 = 0
16 while i < alen { if a[i] != b[i] { return 0 } i = i + 1 }
17 return 1
18}
19
20// a record field equals an expected string?
21func field_is(rec: *u8, reclen: i64, key: *u8, expect: *u8) -> i64 {
22 let fp: *i64 = sys_mmap(16) as *i64
23 let fl: *i64 = sys_mmap(16) as *i64
24 if mv_rec_field(rec, reclen, key, slen(key), fp, fl) != 1 { return 0 }
25 let vp: *u8 = fp[0] as *u8
26 return streq_n(vp, fl[0], expect, slen(expect))
27}
28
29func main(argc: i64, argv: *i64) -> i64 {
30 var fails: i64 = 0
31 let prefix: *u8 = "/tmp/mvault_rec_gate-" as *u8
32
33 // ---- record 1: a real tumblr video, classified TS ----
34 let rec: *u8 = sys_mmap(4096)
35 let src1: *u8 = "tumblr" as *u8
36 let ref1: *u8 = "logging/tumblr/abc.mp4" as *u8
37 let rl: i64 = mv_record_build(rec, MV_CLASS_REAL, MV_TYPE_VIDEO, MV_LVL_TS, src1, ref1)
38 if rl < 8 { fails = fails + 1 }
39 if rec[0] != (78 as u8) { fails = fails + 1 } // NXR1 magic
40
41 let k_class: *u8 = "class" as *u8
42 let k_type: *u8 = "type" as *u8
43 let k_mls: *u8 = "mls" as *u8
44 let k_src: *u8 = "source" as *u8
45 let e_real: *u8 = "real" as *u8
46 let e_video: *u8 = "video" as *u8
47 let e_ts: *u8 = "TS" as *u8
48 let e_tumb: *u8 = "tumblr" as *u8
49 if field_is(rec, rl, k_class, e_real) != 1 { fails = fails + 1 }
50 if field_is(rec, rl, k_type, e_video) != 1 { fails = fails + 1 }
51 if field_is(rec, rl, k_mls, e_ts) != 1 { fails = fails + 1 }
52 if field_is(rec, rl, k_src, e_tumb) != 1 { fails = fails + 1 }
53
54 // CID determinism (dedup by content): same fields -> same 69-byte CID
55 let cid1: *u8 = sys_mmap(80)
56 let cid2: *u8 = sys_mmap(80)
57 cid_of(rec, rl, cid1)
58 let rec_b: *u8 = sys_mmap(4096)
59 let rl_b: i64 = mv_record_build(rec_b, MV_CLASS_REAL, MV_TYPE_VIDEO, MV_LVL_TS, src1, ref1)
60 cid_of(rec_b, rl_b, cid2)
61 if streq_n(cid1, 69, cid2, 69) != 1 { fails = fails + 1 }
62
63 // ---- additive seg-store put, then get back BYTE-IDENTICAL ----
64 let put_rc: i64 = mv_store_put(prefix, cid1, rec, rl)
65 if put_rc < 0 { fails = fails + 1 }
66 let gp: *i64 = sys_mmap(16) as *i64
67 let gl: *i64 = sys_mmap(16) as *i64
68 let got: i64 = mv_store_get(prefix, cid1, gp, gl)
69 if got != 1 { fails = fails + 1 }
70 if gl[0] != rl { fails = fails + 1 }
71 let gotp: *u8 = gp[0] as *u8
72 if streq_n(gotp, gl[0], rec, rl) != 1 { fails = fails + 1 }
73
74 // ---- record 2: a GEN 3D model -> fields decode (gen/real orthogonal) ----
75 let rec2: *u8 = sys_mmap(4096)
76 let src2: *u8 = "sovereign-gen" as *u8
77 let ref2: *u8 = "gen/cid/xyz" as *u8
78 let rl2: i64 = mv_record_build(rec2, MV_CLASS_GEN, MV_TYPE_MODEL3D, MV_LVL_TS, src2, ref2)
79 let e_gen: *u8 = "gen" as *u8
80 let e_mod: *u8 = "model3d" as *u8
81 if field_is(rec2, rl2, k_class, e_gen) != 1 { fails = fails + 1 }
82 if field_is(rec2, rl2, k_type, e_mod) != 1 { fails = fails + 1 }
83
84 if fails == 0 {
85 sys_write(1, "MVAULT-RECORD-GATE GREEN store-roundtrip\n" as *u8, 41)
86 return 0
87 }
88 sys_write(1, "MVAULT-RECORD-GATE RED\n" as *u8, 23)
89 return 1
90}