code wiki / (root) / nx_mse_seed_gate.nx

nx_mse_seed_gate.nx

buildroot/runtime/nx_mse_seed_gate.nx

6586 B96 linesdepth 8pulls 18 transitivereach 0 importersview sourcekind gate/prooftopic mse
docsdependenciesstructsconstsfunctions

about

nx_mse_seed_gate.nx -- proves the SEEDER's MSE path end-to-end: an ENCRYPTED (mse_connect) leecher pulls a sha1-verified piece from nx_torrent_seed's ts_serve_peer (which demuxes the non-0x13 first byte -> MSE). This is the R5 seeder-side live proof. license_tier: ORIGINAL depends: nx_torrent_seed (pulls mse_wire+peerwire+sha1)

dependencies 4 imports · 0 importers

nx_torrent_seed.nx nx_connect.nx nx_sha1.nx nx_gate_verdict.nx nx_mse_seed_gate.nx

imports: nx_torrent_seed.nxnx_connect.nxnx_sha1.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main g2_p sys_openat_wr ts_sockaddr sys_socket sys_setsockopt sys_set_socket_timeout sys_mmap sys_setsockopt ↻ sys_munmap sys_bind sys_listen sys_fork sys_accept ts_serve_peer sys_set_socket_timeout ↻ ts_read_n sys_read mse_classify_first_byte nx_pw_parse_handshake ts_memeq mse_ctx_plain ts_serve_after_hs nx_pw_build_handshake mse_write rc4_crypt rc4_prga_byte mw_write_n ts_load_have sys_read ↻ ts_build_bitfield_have ts_build_full_bitfield nx_pw_build_msg _pw_put_u32 ts_read_msg_ctx mse_read mw_read_n sys_read ↻ rc4_crypt ↻ _pw_get_u32

structs

none

consts

9const MSG_PORT: i64 = 54011
10const G2_PLEN: i64 = 64
11const G2_TOTAL: i64 = 200 // 4 pieces (64,64,64,8)
12const G2_BLK: i64 = 16
13const G2_PATH: *u8 = "/tmp/_nx_mse_seed_src.bin" as *u8

functions

15func g2_p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main
16func g2_n(v: i64) -> i64 { let t: *u8=sys_mmap(28); var m: i64=v; 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} let o: *u8=sys_mmap(28); var i: i64=0; while i<k {o[i]=t[k-1-i];i=i+1} sys_write(1,o,k); return 0 }
17func g2_yn(b: i64) -> *u8 { if b==1 { return "1" as *u8 } return "0" as *u8 }
called by 1: main
19func main() -> i64