yakmesh 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/CHANGELOG.md +637 -0
  2. package/Caddyfile +77 -0
  3. package/README.md +119 -29
  4. package/content/api.js +50 -41
  5. package/content/index.js +1 -2
  6. package/content/store.js +323 -177
  7. package/dashboard/index.html +19 -3
  8. package/database/replication.js +117 -37
  9. package/docs/CRYPTO-AGILITY.md +204 -0
  10. package/docs/MTLS-RESEARCH.md +367 -0
  11. package/docs/NAMCHE-SPEC.md +681 -0
  12. package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
  13. package/docs/PRECISION-DISCLOSURE.md +96 -0
  14. package/docs/README.md +76 -0
  15. package/docs/ROADMAP-2.4.0.md +447 -0
  16. package/docs/ROADMAP-2.5.0.md +244 -0
  17. package/docs/SECURITY-AUDIT-REPORT.md +306 -0
  18. package/docs/SST-INTEGRATION.md +712 -0
  19. package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
  20. package/docs/TERNARY-AUDIT-REPORT.md +247 -0
  21. package/docs/TME-FAQ.md +221 -0
  22. package/docs/WHITEPAPER.md +623 -0
  23. package/docs/adapters.html +1001 -0
  24. package/docs/advanced-systems.html +1045 -0
  25. package/docs/annex.html +1046 -0
  26. package/docs/api.html +970 -0
  27. package/docs/business/response-templates.md +160 -0
  28. package/docs/c2c.html +1225 -0
  29. package/docs/cli.html +1332 -0
  30. package/docs/configuration.html +1248 -0
  31. package/docs/darshan.html +1085 -0
  32. package/docs/dharma.html +966 -0
  33. package/docs/docs-bundle.html +1075 -0
  34. package/docs/docs.css +3120 -0
  35. package/docs/docs.js +556 -0
  36. package/docs/doko.html +969 -0
  37. package/docs/geo-proof.html +858 -0
  38. package/docs/getting-started.html +840 -0
  39. package/docs/gumba-tutorial.html +1144 -0
  40. package/docs/gumba.html +1098 -0
  41. package/docs/index.html +914 -0
  42. package/docs/jhilke.html +1312 -0
  43. package/docs/karma.html +1100 -0
  44. package/docs/katha.html +1037 -0
  45. package/docs/lama.html +978 -0
  46. package/docs/mandala.html +1067 -0
  47. package/docs/mani.html +964 -0
  48. package/docs/mantra.html +967 -0
  49. package/docs/mesh.html +1409 -0
  50. package/docs/nakpak.html +869 -0
  51. package/docs/namche.html +928 -0
  52. package/docs/nav-order.json +53 -0
  53. package/docs/prahari.html +1043 -0
  54. package/docs/prism-bash.min.js +1 -0
  55. package/docs/prism-javascript.min.js +1 -0
  56. package/docs/prism-json.min.js +1 -0
  57. package/docs/prism-tomorrow.min.css +1 -0
  58. package/docs/prism.min.js +1 -0
  59. package/docs/privacy.html +699 -0
  60. package/docs/quick-reference.html +1181 -0
  61. package/docs/sakshi.html +1402 -0
  62. package/docs/sandboxing.md +386 -0
  63. package/docs/seva.html +911 -0
  64. package/docs/sherpa.html +871 -0
  65. package/docs/studio.html +860 -0
  66. package/docs/stupa.html +995 -0
  67. package/docs/tailwind.min.css +2 -0
  68. package/docs/tattva.html +1332 -0
  69. package/docs/terms.html +686 -0
  70. package/docs/time-server-deployment.md +166 -0
  71. package/docs/time-sources.html +1392 -0
  72. package/docs/tivra.html +1127 -0
  73. package/docs/trademark-policy.html +686 -0
  74. package/docs/tribhuj.html +1183 -0
  75. package/docs/trust-security.html +1029 -0
  76. package/docs/tutorials/backup-recovery.html +654 -0
  77. package/docs/tutorials/dashboard.html +604 -0
  78. package/docs/tutorials/domain-setup.html +605 -0
  79. package/docs/tutorials/host-website.html +456 -0
  80. package/docs/tutorials/mesh-network.html +505 -0
  81. package/docs/tutorials/mobile-access.html +445 -0
  82. package/docs/tutorials/privacy.html +467 -0
  83. package/docs/tutorials/raspberry-pi.html +600 -0
  84. package/docs/tutorials/security-basics.html +539 -0
  85. package/docs/tutorials/share-files.html +431 -0
  86. package/docs/tutorials/troubleshooting.html +637 -0
  87. package/docs/tutorials/trust-karma.html +419 -0
  88. package/docs/tutorials/yak-protocol.html +456 -0
  89. package/docs/tutorials.html +1034 -0
  90. package/docs/vani.html +1270 -0
  91. package/docs/webserver.html +809 -0
  92. package/docs/yak-protocol.html +940 -0
  93. package/docs/yak-timeserver-design.md +475 -0
  94. package/docs/yakapp.html +1015 -0
  95. package/docs/ypc27.html +1069 -0
  96. package/docs/yurt.html +1344 -0
  97. package/embedded-docs/bundle.js +274 -114
  98. package/gossip/protocol.js +247 -27
  99. package/identity/key-resolver.js +262 -0
  100. package/identity/machine-seed.js +632 -0
  101. package/identity/node-key.js +669 -368
  102. package/identity/tribhuj-ratchet.js +506 -0
  103. package/knowledge-base.js +37 -8
  104. package/launcher/yakmesh.bat +62 -0
  105. package/launcher/yakmesh.sh +70 -0
  106. package/mesh/annex.js +462 -108
  107. package/mesh/beacon-broadcast.js +4 -1
  108. package/mesh/darshan.js +17 -5
  109. package/mesh/gumba.js +47 -13
  110. package/mesh/jhilke.js +651 -0
  111. package/mesh/katha.js +5 -2
  112. package/mesh/nakpak-routing.js +8 -5
  113. package/mesh/network.js +724 -34
  114. package/mesh/pulse-sync.js +4 -1
  115. package/mesh/seva.js +526 -0
  116. package/mesh/sherpa-discovery.js +89 -8
  117. package/mesh/sybil-defense.js +19 -5
  118. package/mesh/temporal-encoder.js +4 -3
  119. package/mesh/yurt.js +72 -17
  120. package/models/entropy-sentinel.onnx +0 -0
  121. package/models/karma-trust.onnx +0 -0
  122. package/models/manifest.json +43 -0
  123. package/models/sakshi-anomaly.onnx +0 -0
  124. package/oracle/code-proof-protocol.js +7 -6
  125. package/oracle/codebase-lock.js +257 -28
  126. package/oracle/index.js +74 -15
  127. package/oracle/ma902-snmp.js +678 -0
  128. package/oracle/module-sealer.js +5 -3
  129. package/oracle/packet-checksum.js +201 -0
  130. package/oracle/ternary-144t.js +714 -0
  131. package/oracle/ternary-ml.js +481 -0
  132. package/oracle/time-api.js +239 -0
  133. package/oracle/time-source.js +137 -47
  134. package/oracle/validation-oracle-hardened.js +1111 -1071
  135. package/oracle/validation-oracle.js +4 -2
  136. package/oracle/ypc27.js +211 -0
  137. package/package.json +20 -3
  138. package/protocol/yak-handler.js +35 -9
  139. package/protocol/yak-protocol.js +6 -5
  140. package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
  141. package/reference/cpp/yakmesh_ypc27.cpp +179 -0
  142. package/sbom.json +87 -0
  143. package/scripts/security-audit.mjs +264 -0
  144. package/scripts/update-docs-sidebar.cjs +164 -0
  145. package/security/crypto-config.js +4 -3
  146. package/security/dharma-moderation.js +4 -3
  147. package/security/doko-identity.js +193 -143
  148. package/security/domain-consensus.js +86 -85
  149. package/security/fs-hardening.js +620 -0
  150. package/security/hardware-attestation.js +5 -3
  151. package/security/hybrid-trust.js +227 -87
  152. package/security/karma-rate-limiter.js +692 -0
  153. package/security/khata-protocol.js +22 -21
  154. package/security/khata-trust-integration.js +277 -150
  155. package/security/memory-safety.js +635 -0
  156. package/security/mesh-auth.js +11 -10
  157. package/security/mesh-revocation.js +18 -5
  158. package/security/namche-gateway.js +298 -69
  159. package/security/sakshi.js +102 -3
  160. package/security/sangha.js +770 -0
  161. package/security/secure-config.js +473 -0
  162. package/security/silicon-parity.js +13 -10
  163. package/security/steadywatch.js +1142 -0
  164. package/security/strike-system.js +32 -3
  165. package/security/temporal-signing.js +488 -0
  166. package/security/trit-commitment.js +464 -0
  167. package/server/crypto/annex.js +247 -0
  168. package/server/darshan-api.js +343 -0
  169. package/server/index.js +3259 -362
  170. package/server/komm-api.js +668 -0
  171. package/utils/accel.js +2273 -0
  172. package/utils/ternary-id.js +79 -0
  173. package/utils/verify-worker.js +57 -0
  174. package/webserver/index.js +95 -5
  175. package/assets/yakmesh-logo.png +0 -0
  176. package/assets/yakmesh-logo.svg +0 -80
  177. package/assets/yakmesh-logo2.png +0 -0
  178. package/assets/yakmesh-logo2sm.png +0 -0
  179. package/assets/ymsm.png +0 -0
  180. package/scripts/update-docs-nav.cjs +0 -194
  181. package/update-docs-nav.cjs +0 -18
  182. package/update-nav.ps1 +0 -16
  183. package/website/assets/silhouettes/adapters.svg +0 -107
  184. package/website/assets/silhouettes/api-endpoints.svg +0 -115
  185. package/website/assets/silhouettes/atomic-clock.svg +0 -83
  186. package/website/assets/silhouettes/base-camp.svg +0 -81
  187. package/website/assets/silhouettes/bridge.svg +0 -69
  188. package/website/assets/silhouettes/docs-bundle.svg +0 -113
  189. package/website/assets/silhouettes/doko-basket.svg +0 -70
  190. package/website/assets/silhouettes/fortress.svg +0 -93
  191. package/website/assets/silhouettes/gateway.svg +0 -54
  192. package/website/assets/silhouettes/gears.svg +0 -93
  193. package/website/assets/silhouettes/globe-satellite.svg +0 -67
  194. package/website/assets/silhouettes/karma-wheel.svg +0 -137
  195. package/website/assets/silhouettes/lama-council.svg +0 -141
  196. package/website/assets/silhouettes/mandala-network.svg +0 -169
  197. package/website/assets/silhouettes/mani-stones.svg +0 -149
  198. package/website/assets/silhouettes/mantra-wheel.svg +0 -116
  199. package/website/assets/silhouettes/mesh-nodes.svg +0 -113
  200. package/website/assets/silhouettes/nakpak.svg +0 -56
  201. package/website/assets/silhouettes/peak-lightning.svg +0 -73
  202. package/website/assets/silhouettes/sherpa.svg +0 -69
  203. package/website/assets/silhouettes/stupa-tower.svg +0 -119
  204. package/website/assets/silhouettes/tattva-eye.svg +0 -78
  205. package/website/assets/silhouettes/terminal.svg +0 -74
  206. package/website/assets/silhouettes/webserver.svg +0 -145
  207. package/website/assets/silhouettes/yak.svg +0 -78
  208. package/website/assets/yakmesh-logo.png +0 -0
  209. package/website/assets/yakmesh-logo.webp +0 -0
  210. package/website/assets/yakmesh-logo128x140.webp +0 -0
  211. package/website/assets/yakmesh-logo2.png +0 -0
  212. package/website/assets/yakmesh-logo2.svg +0 -51
  213. package/website/assets/yakmesh-logo40x44.webp +0 -0
  214. package/website/assets/yakmesh.gif +0 -0
  215. package/website/assets/yakmesh.ico +0 -0
  216. package/website/assets/yakmesh.jpg +0 -0
  217. package/website/assets/yakmesh.pdf +0 -0
  218. package/website/assets/yakmesh.png +0 -0
  219. package/website/assets/yakmesh.svg +0 -70
  220. package/website/assets/yakmesh128.webp +0 -0
  221. package/website/assets/yakmesh32.png +0 -0
  222. package/website/assets/yakmesh32.svg +0 -65
  223. package/website/assets/yakmesh32o.ico +0 -2
  224. package/website/assets/yakmesh32o.svg +0 -65
  225. package/website/assets/yakmesh32o.svgz +0 -0
@@ -0,0 +1,221 @@
1
+ # TME Technical FAQ
2
+
3
+ ## Frequently Asked Questions about Temporal Matrix Encoding
4
+
5
+ ---
6
+
7
+ ### Q1: How is YAKMESH TME different from Walrus/Red Stuff?
8
+
9
+ **Short Answer:** Walrus encodes data across **space** (multiple storage nodes). YAKMESH TME encodes data across **time** (multiple temporal slices).
10
+
11
+ **Detailed Answer:**
12
+
13
+ | Aspect | Walrus (Red Stuff) | YAKMESH (TME) |
14
+ |--------|-------------------|---------------|
15
+ | **Encoding Dimension** | 2D spatial grid | 1D temporal chain |
16
+ | **Purpose** | Long-term storage | Real-time transmission |
17
+ | **Recovery Trigger** | Node failure/churn | Packet loss/interference |
18
+ | **Sync Requirement** | Asynchronous (tolerates drift) | Atomic (nanosecond precision) |
19
+ | **Data Lifetime** | Epochs (days/weeks) | Milliseconds |
20
+ | **Recovery Latency** | Full download from quorum | Zero (parity from adjacent slices) |
21
+
22
+ Walrus treats the network like a **Hard Drive** — data lives across spatial nodes.
23
+ YAKMESH treats the network like a **Synthesizer** — data flows across temporal intervals.
24
+
25
+ ---
26
+
27
+ ### Q2: Why can't I just use Reed-Solomon or other erasure codes?
28
+
29
+ Traditional erasure coding (Reed-Solomon, LDPC, etc.) was designed for:
30
+ - Storage systems with slow failure detection
31
+ - Known, static topology
32
+ - Time-insensitive recovery
33
+
34
+ TME is designed for:
35
+ - Real-time networks where retransmission kills latency
36
+ - Dynamic mesh topology with unknown paths
37
+ - Time-critical recovery (sub-millisecond)
38
+
39
+ **The Key Difference:** Erasure codes don't leverage timing. TME uses the **atomic clock synchronization** as a recovery mechanism itself.
40
+
41
+ ---
42
+
43
+ ### Q3: What is "Cryptographic Time Binding"?
44
+
45
+ Each temporal slice contains a `temporalHash` computed from:
46
+
47
+ ```javascript
48
+ temporalHash = SHA256(
49
+ data + // The actual payload
50
+ timestamp + // Nanosecond-precision BigInt
51
+ sequenceNumber + // Position in stream
52
+ streamId + // Unique stream identifier
53
+ prevTemporalHash + // Hash of previous slice
54
+ meshPosition // [x, y, z] topology coordinates
55
+ )
56
+ ```
57
+
58
+ This creates an **immutable temporal chain**:
59
+ - If any slice is tampered with, the chain breaks
60
+ - Missing slices can be verified via `prevTemporalHash` in the next slice
61
+ - Timing proofs from neighbors can attest to a slice's existence
62
+
63
+ ---
64
+
65
+ ### Q4: What are "Timing Proofs"?
66
+
67
+ When a packet is lost, instead of requesting retransmission, the receiver asks mesh neighbors:
68
+
69
+ > "Did you see Slice N with hash X at time T?"
70
+
71
+ If multiple independent nodes agree (consensus), the receiver:
72
+ 1. Knows the slice existed and wasn't fabricated
73
+ 2. Can request the specific slice from a trusted neighbor
74
+ 3. Can verify the slice's integrity via its temporal hash
75
+
76
+ This is faster than round-trip retransmission and provides Byzantine fault tolerance.
77
+
78
+ ---
79
+
80
+ ### Q5: Why does TME require atomic clock synchronization?
81
+
82
+ Without atomic sync, temporal encoding is impossible:
83
+
84
+ | Timing | Problem for TME |
85
+ |--------|-----------------|
86
+ | NTP (~10ms jitter) | Can't distinguish "late packet" from "wrong slice" |
87
+ | PTP (~100ns) | Borderline — works for coarse slicing |
88
+ | Atomic (~1ns) | Optimal — unambiguous slice identification |
89
+
90
+ With traditional timing, if a packet arrives 5ms late, is it:
91
+ - Slice N arriving late?
92
+ - Slice N+1 arriving early?
93
+ - A replay attack?
94
+
95
+ With atomic sync, all nodes share **Universal Mesh Time**. A packet's slice membership is deterministic based on its timestamp.
96
+
97
+ ---
98
+
99
+ ### Q6: Can TME be used without post-quantum cryptography?
100
+
101
+ Yes, but you lose quantum resistance. The components are separable:
102
+
103
+ | Component | Can Use Without PQ? |
104
+ |-----------|---------------------|
105
+ | Temporal slicing | ✅ Yes |
106
+ | Cryptographic chaining | ✅ Yes (use SHA-256) |
107
+ | Timing proofs | ✅ Yes |
108
+ | Packet signing | ⚠️ Yes, but vulnerable to HNDL |
109
+
110
+ YAKMESH uses ML-DSA-65 (FIPS 204) for signatures. If you swap in ECDSA, TME still works — but an adversary with a quantum computer could forge signatures in the future.
111
+
112
+ ---
113
+
114
+ ### Q7: What's the overhead of TME?
115
+
116
+ **Per-Slice Overhead:**
117
+ - Timestamp: 8 bytes (BigInt)
118
+ - Sequence number: 4 bytes
119
+ - Stream ID: 32 bytes (first slice only, then 0)
120
+ - Prev temporal hash: 32 bytes
121
+ - Temporal hash: 32 bytes
122
+ - Mesh position: 12 bytes (3x float32)
123
+
124
+ **Total:** ~88 bytes per slice (excluding payload)
125
+
126
+ For a 1KB slice size, that's ~8.5% overhead.
127
+ For a 4KB slice size, that's ~2.1% overhead.
128
+
129
+ **Computational Overhead:**
130
+ - 1 SHA-256 hash per slice (fast)
131
+ - BigInt timestamp handling (minimal)
132
+
133
+ ---
134
+
135
+ ### Q8: How does TME handle out-of-order delivery?
136
+
137
+ TME is **designed** for out-of-order delivery:
138
+
139
+ 1. Each slice has a `sequenceNumber`
140
+ 2. The receiver buffers slices by sequence
141
+ 3. Missing sequences are detected immediately
142
+ 4. Chain verification happens after buffering
143
+
144
+ ```
145
+ Received: [0] [3] [1] [2]
146
+ Buffer: [0] [_] [_] [_] → [0] [_] [_] [3] → [0] [1] [_] [3] → [0] [1] [2] [3]
147
+ Chain verification: hash(0) → hash(1) → hash(2) → hash(3) ✓
148
+ ```
149
+
150
+ ---
151
+
152
+ ### Q9: What percentage of slices must arrive for reconstruction?
153
+
154
+ Default threshold: **60%** (configurable via `TME_CONFIG.minSlicesForReconstruction`)
155
+
156
+ With 60% of slices:
157
+ - Chain gaps are detectable
158
+ - Timing proofs can verify missing slices existed
159
+ - Neighbors can supply specific missing slices
160
+
161
+ Below 60%:
162
+ - Too many gaps for reliable chain verification
163
+ - Reconstruction degrades to traditional request/retry
164
+
165
+ ---
166
+
167
+ ### Q10: Is TME patented?
168
+
169
+ TME (Temporal Matrix Encoding) is a **proprietary technology** of the YAKMESH project.
170
+
171
+ It is **not** covered by the Walrus/Red Stuff patents because:
172
+ 1. Different encoding dimension (time vs. space)
173
+ 2. Different recovery mechanism (timing proofs vs. quorum download)
174
+ 3. Different hardware requirements (atomic sync vs. asynchronous)
175
+
176
+ YAKMESH™ itself has USPTO Serial No. 99594620.
177
+
178
+ ---
179
+
180
+ ### Q11: Can I use TME in my project?
181
+
182
+ TME is available in the `yakmesh` npm package under MIT license:
183
+
184
+ ```bash
185
+ npm install yakmesh
186
+ ```
187
+
188
+ ```javascript
189
+ import { TemporalMeshEncoder } from 'yakmesh/mesh/temporal-encoder.js';
190
+
191
+ const encoder = new TemporalMeshEncoder();
192
+ const { streamId, slices, metadata } = encoder.encode('Hello TME!');
193
+ ```
194
+
195
+ ---
196
+
197
+ ### Q12: What's the relationship between TME and the Yielding Atomic Kernel?
198
+
199
+ The **Yielding Atomic Kernel (YAK)** is the core system that provides:
200
+ - Atomic clock synchronization
201
+ - Post-quantum cryptography (ML-DSA-65)
202
+ - Byzantine fault tolerance
203
+
204
+ **TME** is a protocol that runs on top of YAK, exploiting its unique capabilities:
205
+ - Uses atomic timing for temporal slicing
206
+ - Uses PQ signatures for slice authentication
207
+ - Uses reputation systems for timing proof validation
208
+
209
+ TME without YAK is like HTTPS without TLS — technically possible, but missing the security guarantees.
210
+
211
+ ---
212
+
213
+ ## Still have questions?
214
+
215
+ - **GitHub:** https://github.com/yakmesh/yakmesh
216
+ - **Website:** https://yakmesh.dev
217
+ - **npm:** https://www.npmjs.com/package/yakmesh
218
+
219
+ ---
220
+
221
+ *Powered by TME — The world's first temporal-erasure protocol for atomically-synced mesh networks.*