code wiki / _hdl_build / nx_trusted_flag_gate.nx

nx_trusted_flag_gate.nx source

↩ module page · 86 lines · 4479 B

1// nx_trusted_flag_gate.nx -- network-free KATs for the TRUSTED scope's provenance mechanics: the trust:<cid> 2// key builder, the flagger-membership check (comma-token boundaries), and the store round trip (a flagged 3// doc is searchable in the trusted shard; re-flag by a 2nd client APPENDS, never clobbers; idempotent for a 4// repeat flagger). The fetch/ingest spine is nx_web_ingest's, already proven live. /tmp shard. license_tier: ORIGINAL 5import "nx_trusted_flag.nx" 6 7func gt_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 8func gt_num(v: i64) -> i64 { 9 let bb: *u8 = sys_mmap(28); var m: i64 = v 10 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 11 let t: *u8 = sys_mmap(28); var k: i64 = 0 12 if m == 0 { t[0] = 48 as u8; k = 1 } 13 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 14 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 15 sys_write(1, bb, k); return 0 16} 17func gt_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 18func gt_check(name: *u8, cond: i64, pass: *i64, total: *i64) -> i64 { 19 total[0] = total[0] + 1 20 gt_puts(name) 21 if cond == 1 { pass[0] = pass[0] + 1; gt_puts(" PASS\n" as *u8) } else { gt_puts(" FAIL\n" as *u8) } 22 return 0 23} 24 25func main() -> i64 { 26 gt_puts("=== nx_trusted_flag gate (provenance mechanics; store round trip) ===\n" as *u8) 27 let pass: *i64 = sys_mmap(16) as *i64; pass[0] = 0 28 let total: *i64 = sys_mmap(16) as *i64; total[0] = 0 29 30 // T1 trust: key builder 31 let tk: *u8 = sys_mmap(64) 32 let kl: i64 = tf_mktrustkey(1234, tk) 33 var t1: i64 = 0 34 if kl == 10 { if tk[0] == (116 as u8) { if tk[5] == (58 as u8) { if tk[6] == (49 as u8) { t1 = 1 } } } } 35 gt_check("T1 trust:<cid> key builder (trust:1234)" as *u8, t1, pass, total) 36 37 // T2 flagger membership: comma-token boundaries (andelinwest in "family,andelinwest"; NOT "west" in it) 38 let val: *u8 = "family,andelinwest" as *u8 39 var t2: i64 = 0 40 if tf_has_flagger(val, 18, "andelinwest" as *u8, 11) == 1 { 41 if tf_has_flagger(val, 18, "family" as *u8, 6) == 1 { 42 if tf_has_flagger(val, 18, "west" as *u8, 4) == 0 { 43 if tf_has_flagger(val, 18, "fam" as *u8, 3) == 0 { t2 = 1 } 44 } 45 } 46 } 47 gt_check("T2 flagger membership (token boundaries, no substring false-hit)" as *u8, t2, pass, total) 48 49 // store round trip: hand-build a trusted shard the way nx_trusted_flag commits (skip the network fetch). 50 // dss_search resolves the domain via dss_prefix, so write to that same path (the seg-gate convention). 51 let prefix: *u8 = sys_mmap(512) 52 dss_prefix("trustgatetest" as *u8, prefix) 53 let cid1: i64 = 777001 54 let key1: *u8 = sys_mmap(64); dss_mkkey(cid1, key1) 55 let uk1: *u8 = sys_mmap(64); ci_mkurlkey(cid1, uk1) 56 let tk1: *u8 = sys_mmap(64); tf_mktrustkey(cid1, tk1) 57 let w: *i64 = ss_begin() 58 ss_add(w, 1, key1, "estate planning trust probate reference" as *u8, 39) 59 ss_add(w, 1, uk1, "https://en.wikipedia.org/wiki/Estate_planning" as *u8, 45) 60 ss_add(w, 1, tk1, "andelinwest" as *u8, 11) 61 ss_commit(prefix, w, 1) 62 // T3 the flagged doc is searchable in the trusted shard 63 let cids: *i64 = sys_mmap(8 * 8) as *i64 64 let scores: *i64 = sys_mmap(8 * 8) as *i64 65 let n3: i64 = dss_search("trustgatetest" as *u8, "probate" as *u8, 7, cids, scores, 8) 66 var t3: i64 = 0 67 if n3 == 1 { if cids[0] == cid1 { t3 = 1 } } 68 gt_check("T3 flagged doc searchable in trusted shard" as *u8, t3, pass, total) 69 70 // T4 re-flag by a 2nd client APPENDS provenance (append-only, last-wins merged value) 71 let w2: *i64 = ss_begin() 72 ss_add(w2, 1, tk1, "andelinwest,family" as *u8, 18) 73 ss_commit(prefix, w2, 2) 74 let h: *i64 = ss_open(prefix) 75 let pp: *i64 = sys_mmap(16) as *i64 76 let pl: *i64 = sys_mmap(16) as *i64 77 var t4: i64 = 0 78 if ss_hget(h, tk1, pp, pl) == 1 { 79 if pl[0] == 18 { if tf_has_flagger(pp[0] as *u8, pl[0], "family" as *u8, 6) == 1 { if tf_has_flagger(pp[0] as *u8, pl[0], "andelinwest" as *u8, 11) == 1 { t4 = 1 } } } 80 } 81 gt_check("T4 multi-flagger provenance merged (andelinwest,family)" as *u8, t4, pass, total) 82 83 gt_puts("=== trusted-flag gate: " as *u8); gt_num(pass[0]); gt_puts("/" as *u8); gt_num(total[0]); gt_puts(" " as *u8) 84 if pass[0] == total[0] { gt_puts("GREEN\n" as *u8); return 0 } 85 gt_puts("RED\n" as *u8); return 1 86}