code wiki / _hdl_build / nx_sov_ledger_gate.nx

nx_sov_ledger_gate.nx source

↩ module page · 91 lines · 5029 B

1// nx_sov_ledger_gate.nx -- proves the canonical sovereign ledger nx_sov_ledger.nx. 2// Oracle = round-trip identity on a REAL nx_seg_store (write -> read -> equal), incl the typed-binary 3// record format and the anti-fabrication neg-controls. Per-run isolated prefix (sys_now_us suffix) so the 4// gate is idempotent/deterministic across runs (rule 10) and demonstrates the segid discipline. 5// T1 KV round-trip (put str -> get_copy equal) 6// T2 latest-wins (second put overwrites; newest value returned) 7// T3 existence: sov_has present=1, absent=0 (neg control -- never a false present) 8// T4 typed int record: put_ints [3675,1093,472,45,216] -> get_ints returns exactly those (no delimiters) 9// T5 anti-fabrication: get_ints of an absent key -> -1 (never invents a record) 10// Read-only-to-the-world (writes ONLY into its own sovereign store prefix, not a flat side-car). GREEN iff 11// all pass. Sovereign nx_cc->nxasm; CWD=nxc2 root. expect_exit: 0 license_tier: ORIGINAL 12import "nx_sov_ledger.nx" 13import "nx_seg_store.nx" 14import "nx_syscalls.nx" 15 16func lg_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 17func lg_n(v: i64) -> i64 { let b: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1}; sys_write(1,b,k); return 0 } 18func lg_cat(dst: *u8, off: i64, s: *u8) -> i64 { var o: i64=off; var k: i64=0; while s[k]!=(0 as u8){dst[o]=s[k];o=o+1;k=k+1} return o } 19func lg_num(dst: *u8, off: i64, v: i64) -> i64 { var o: i64=off; let t: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; var k: i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{dst[o]=t[k-1-i];o=o+1;i=i+1} return o } 20func lg_streq(a: *u8, an: i64, b: *u8) -> i64 { let bn: i64=sov_slen(b); if an!=bn { return 0 } var i: i64=0; while i<an { if a[i]!=b[i] { return 0 } i=i+1 } return 1 } 21 22func main() -> i64 { 23 lg_w("=== nx_sov_ledger_gate: canonical sovereign ledger on nx_seg_store (typed binary, no TSV) ===\n" as *u8) 24 // per-run isolated prefix 25 let prefix: *u8 = sys_mmap(128) 26 var po: i64 = 0 27 po = lg_cat(prefix, po, "knowledge/store/sovl_test_" as *u8) 28 po = lg_num(prefix, po, sys_now_us()) 29 prefix[po] = 45 as u8 30 prefix[po+1] = 0 as u8 31 32 var pass: i64 = 0 33 var total: i64 = 0 34 let out: *u8 = sys_mmap(4096) 35 36 // T1 KV round-trip 37 sov_put_str(prefix, "greet" as *u8, "hello-sovereign" as *u8) 38 let l1: i64 = sov_get_copy(prefix, "greet" as *u8, out, 4096) 39 total=total+1 40 var t1: i64 = 0 41 if l1 > 0 { if lg_streq(out, l1, "hello-sovereign" as *u8) == 1 { t1 = 1 } } 42 if t1==1 { pass=pass+1; lg_w(" [PASS] " as *u8) } else { lg_w(" [FAIL] " as *u8) } 43 lg_w("T1 KV round-trip (put->get equal)\n" as *u8) 44 45 // T2 latest-wins 46 sov_put_str(prefix, "greet" as *u8, "v2-newer" as *u8) 47 let l2: i64 = sov_get_copy(prefix, "greet" as *u8, out, 4096) 48 total=total+1 49 var t2: i64 = 0 50 if l2 > 0 { if lg_streq(out, l2, "v2-newer" as *u8) == 1 { t2 = 1 } } 51 if t2==1 { pass=pass+1; lg_w(" [PASS] " as *u8) } else { lg_w(" [FAIL] " as *u8) } 52 lg_w("T2 latest-wins (newest value returned)\n" as *u8) 53 54 // T3 existence + neg control 55 total=total+1 56 var t3: i64 = 1 57 if sov_has(prefix, "greet" as *u8) != 1 { t3 = 0 } 58 if sov_has(prefix, "nonexistent-zzqq" as *u8) != 0 { t3 = 0 } 59 if t3==1 { pass=pass+1; lg_w(" [PASS] " as *u8) } else { lg_w(" [FAIL] " as *u8) } 60 lg_w("T3 existence: present=1 absent=0 (no false present)\n" as *u8) 61 62 // T4 typed int record (no delimiters) 63 let vals: *i64 = sys_mmap(8*8) as *i64 64 vals[0]=3675; vals[1]=1093; vals[2]=472; vals[3]=45; vals[4]=216 65 sov_put_ints(prefix, "risk" as *u8, vals, 5) 66 let got: *i64 = sys_mmap(8*8) as *i64 67 let nn: i64 = sov_get_ints(prefix, "risk" as *u8, got, 8) 68 total=total+1 69 var t4: i64 = 0 70 if nn == 5 { 71 t4 = 1 72 if got[0]!=3675 { t4=0 } 73 if got[1]!=1093 { t4=0 } 74 if got[2]!=472 { t4=0 } 75 if got[3]!=45 { t4=0 } 76 if got[4]!=216 { t4=0 } 77 } 78 if t4==1 { pass=pass+1; lg_w(" [PASS] " as *u8) } else { lg_w(" [FAIL] " as *u8) } 79 lg_w("T4 typed int record round-trip [3675,1093,472,45,216] (raw binary, NO tab/comma)\n" as *u8) 80 81 // T5 anti-fabrication 82 total=total+1 83 var t5: i64 = 0 84 if sov_get_ints(prefix, "absent-key-zzqq" as *u8, got, 8) == (0 - 1) { t5 = 1 } 85 if t5==1 { pass=pass+1; lg_w(" [PASS] " as *u8) } else { lg_w(" [FAIL] " as *u8) } 86 lg_w("T5 anti-fabrication: absent key -> -1 (never invents a record)\n" as *u8) 87 88 lg_w("=== nx_sov_ledger_gate " as *u8); lg_n(pass); lg_w("/" as *u8); lg_n(total) 89 if pass==total { lg_w(" GREEN (sovereign KV+typed-record ledger; adopt this, never a .tsv/.log side-car)\n" as *u8); sys_exit(0); return 0 } 90 lg_w(" RED\n" as *u8); sys_exit(1); return 1 91}