code wiki / (root) / nx_canon_cid.nx

nx_canon_cid.nx

buildroot/runtime/nx_canon_cid.nx

5942 B180 linesdepth 5pulls 5 transitivereach 484 importersview sourcekind librarytopic canon
docsdependenciesstructsconstsfunctions

about

nx_canon_cid.nx -- PART B of the sovereign storage substrate rung 1 (knowledge/specs/2026-06-09-tutoring-storage-substrate-rung1.md). Content-addressed records demand BYTE-DETERMINISTIC canonical encoding BEFORE hashing (the spec's hard requirement: IPLD does not give this; without it dedup-by-content silently breaks). Canonical form here: magic "NXR1" | u32be field-count | per field (key-sorted byte-lex): u32be klen | key | u32be vlen | value One logical record => exactly one byte string => exactly one CID. CID = "nxc1-" + 64 lowercase hex of sha256(canonical bytes); the hash is the substrate-canonical sha256 (nx_sha256.nx, FIPS 180-4 KAT'd). Pure NishiLang, NO SQL -- this is the dedup/provenance foundation of the S-class-exceed information-management ladder. license_tier: ORIGINAL

dependencies 2 imports · 109 importers

nx_syscalls.nx nx_sha256.nx nx_canon_cid.nx _gallery_serve_ref.nx _galx_bulk_ingest.nx _galx_ingest_gate.nx _wiki_archive_gate.nx nx_acct_admin_handoff.nx nx_asset_access_gate.nx nx_asset_catalog.nx nx_asset_catalog_gate.nx nx_asset_dashboard_gate.nx nx_asset_exceed_gate.nx

diagram shows first 10 each side; +0 more imports, +99 more importers in the complete lists below.

imports: nx_syscalls.nxnx_sha256.nx

imported by: _gallery_serve_ref.nx_galx_bulk_ingest.nx_galx_ingest_gate.nx_wiki_archive_gate.nxnx_acct_admin_handoff.nxnx_asset_access_gate.nxnx_asset_catalog.nxnx_asset_catalog_gate.nxnx_asset_dashboard_gate.nxnx_asset_exceed_gate.nxnx_asset_ingest_real_gate.nxnx_asset_merkle.nxnx_asset_merkle_gate.nxnx_asset_provenance.nxnx_asset_provenance_gate.nxnx_asset_record.nxnx_asset_record_gate.nxnx_asset_search_gate.nxnx_asset_signals_gate.nxnx_asset_status_gate.nxnx_asset_visibility_gate.nxnx_canon_bin.nxnx_canon_bin_gate.nxnx_census_load.nxnx_ciaaw_ingest.nxnx_ciq_analyst.nxnx_ciq_field_clinical.nxnx_ciq_field_connect.nxnx_ciq_field_games.nxnx_ciq_field_imagegen.nxnx_ciq_field_maintenance.nxnx_ciq_field_omniforge.nxnx_ciq_publish.nxnx_ciq_quadrant.nxnx_ciq_sclass_gate.nxnx_codata_ingest.nxnx_crm_store.nxnx_elara_memory.nxnx_elara_state.nxnx_fin_ledger.nxnx_fin_ledger_gate.nxnx_gallery_serve_tamper.nxnx_hr_entitle.nxnx_hr_sov.nxnx_infomgmt_gate.nxnx_ingest.nxnx_ingest_foundation.nxnx_isotope_ingest.nxnx_lib_uxf_ingest.nxnx_library.nxnx_library_exceed.nxnx_log_load.nxnx_matter_lib.nxnx_media_record.nxnx_mvault.nxnx_mvault_coll.nxnx_mvault_fetch.nxnx_mvault_record.nxnx_mvault_record_gate.nxnx_mvault_reindex.nxnx_mvault_walk.nxnx_native_config.nxnx_project.nxnx_pub_receipt.nxnx_queue_load.nxnx_race_sov_worker.nxnx_rebac.nxnx_relate_serve.nxnx_relate_store.nxnx_share.nxnx_sign_envelope_lib.nxnx_sqlite_rows.nxnx_store_ingest.nxnx_store_ingest_test.nxnx_survey.nxnx_uxf_cid.nxnx_uxf_cid_test.nxnx_uxf_config_test.nxnx_uxf_corpus_migrate.nxnx_uxf_corpus_persist.nxnx_uxf_decode.nxnx_uxf_decode_test.nxnx_uxf_media_asset_test.nxnx_uxf_tsv_migrate.nxnx_uxf_tsv_persist.nxnx_uxf_wms_bridge_test.nxnx_vizsla_bills.nxnx_vizsla_budget.nxnx_vizsla_calendar.nxnx_vizsla_contact.nxnx_vizsla_deal.nxnx_vizsla_dedup.nxnx_vizsla_doc.nxnx_vizsla_docgen.nxnx_vizsla_graph.nxnx_vizsla_group.nxnx_vizsla_ics.nxnx_vizsla_jobs.nxnx_vizsla_log.nxnx_vizsla_notes.nx +9 more (shown cap 100 declared)

structs

none

consts

132const CID_FILE_CHUNK: i64 = 4194304 // 4 MiB read chunk for the file-streaming path

functions

20func cc_len(s: *u8) -> i64
called by 1: canon_encode
27func cc_cmp(a: *u8, b: *u8) -> i64
39func cc_w32(p: *u8, off: i64, v: i64) -> i64
called by 1: canon_encode
50func canon_encode(keys: *i64, vals: *i64, n: i64, out: *u8) -> i64
100func cid_from_digest(dg: *u8, cid: *u8) -> i64
124func cid_of(bytes: *u8, n: i64, cid: *u8) -> i64
141func cid_of_file_chunk(path: *u8, chunk: i64, szbox: *i64, cid: *u8) -> i64
178func cid_of_file(path: *u8, szbox: *i64, cid: *u8) -> i64