yakmesh 1.3.1 β 1.4.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.
- package/CHANGELOG.md +20 -0
- package/README.md +6 -0
- package/announcements/discord-v1.3.1.md +55 -0
- package/content/api.js +348 -0
- package/content/index.js +19 -0
- package/content/store.js +683 -0
- package/deploy-packages/README.md +114 -0
- package/deploy-packages/build-packages.ps1 +205 -0
- package/deploy-packages/yakmesh-full/README.md +122 -0
- package/deploy-packages/yakmesh-full/config/Caddyfile +61 -0
- package/deploy-packages/yakmesh-full/config/php.ini +55 -0
- package/deploy-packages/yakmesh-full/config/yakmesh.config.js +100 -0
- package/deploy-packages/yakmesh-full/start.ps1 +193 -0
- package/deploy-packages/yakmesh-full/stop.ps1 +35 -0
- package/deploy-packages/yakmesh-minimal/README.md +69 -0
- package/deploy-packages/yakmesh-minimal/config/Caddyfile +46 -0
- package/deploy-packages/yakmesh-minimal/config/yakmesh.config.js +79 -0
- package/deploy-packages/yakmesh-minimal/start.ps1 +165 -0
- package/deploy-packages/yakmesh-minimal/stop.ps1 +29 -0
- package/discord.md +13 -58
- package/gossip/protocol.js +13 -2
- package/mesh/annex.js +743 -0
- package/mesh/beacon-broadcast.js +4 -5
- package/mesh/echo-ranging.js +3 -4
- package/mesh/phantom-routing.js +3 -4
- package/mesh/pulse-sync.js +3 -4
- package/mesh/temporal-encoder.js +3 -3
- package/package.json +1 -1
- package/server/index.js +64 -3
- package/yakmesh.config.js +8 -0
package/discord.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# 𦬠YAKMESHβ’
|
|
1
|
+
# 𦬠YAKMESHβ’
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Post-quantum secure mesh networking for the 2026 threat landscape.**
|
|
4
|
+
|
|
5
|
+
YAKMESH is a P2P mesh library that treats cryptographic security as non-negotiable. Every signature uses **ML-DSA-65** (NIST FIPS 204), every node proves its codebase integrity before peering, and our novel **TMEβ’** protocol uses *time itself* as a redundancy dimension for packet resilience.
|
|
4
6
|
|
|
5
7
|
```
|
|
6
8
|
npm install yakmesh
|
|
@@ -8,67 +10,20 @@ npm install yakmesh
|
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
A **post-quantum secure** mesh networking library featuring:
|
|
14
|
-
|
|
15
|
-
π **ML-DSA-65 Signatures** β NIST FIPS 204 standard, quantum-resistant
|
|
16
|
-
β±οΈ **Atomic Time Sync** β High-precision timing for mesh coordination
|
|
17
|
-
π‘οΈ **TMEβ’ (Temporal Matrix Encoding)** β Novel packet resilience without retransmission
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## π How is TME Different?
|
|
22
|
-
|
|
23
|
-
| Walrus/Red Stuff | YAKMESH TME |
|
|
24
|
-
|------------------|-------------|
|
|
25
|
-
| Encodes across **space** (nodes) | Encodes across **time** (slices) |
|
|
26
|
-
| For storage | For transmission |
|
|
27
|
-
| Retransmit on loss | **Zero latency** recovery |
|
|
28
|
-
|
|
29
|
-
> *"Time IS the redundancy dimension."*
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## π οΈ Quick Start
|
|
34
|
-
|
|
35
|
-
```js
|
|
36
|
-
import { TemporalMeshEncoder } from 'yakmesh';
|
|
37
|
-
|
|
38
|
-
const encoder = new TemporalMeshEncoder();
|
|
39
|
-
const { slices } = encoder.encode('Hello mesh!');
|
|
40
|
-
// Slices sent across different paths
|
|
41
|
-
// Lost slices reconstructed from timing proofs
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## π Security Modules
|
|
47
|
-
|
|
48
|
-
- **NAVR** β Sybil attack prevention (computational identity puzzle)
|
|
49
|
-
- **Replay Defense** β Nonces + timestamps + sequence tracking
|
|
50
|
-
- **Rate Limiter** β DoS protection (30 conn/min per IP)
|
|
51
|
-
- **Message Validator** β Size limits, depth checks, prototype pollution protection
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## π¦ Current Version: `1.2.0`
|
|
13
|
+
### Core Features
|
|
56
14
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
15
|
+
π **Quantum-Resistant** β ML-DSA-65 signatures, ML-KEM-768 key exchange
|
|
16
|
+
β±οΈ **Atomic Precision** β Sub-millisecond mesh synchronization
|
|
17
|
+
π‘οΈ **Code Proof Protocol** β Nodes verify matching codebases before peering
|
|
18
|
+
π‘ **TMEβ’** β Temporal Matrix Encoding for zero-retransmit recovery
|
|
61
19
|
|
|
62
20
|
---
|
|
63
21
|
|
|
64
|
-
|
|
65
|
-
π Website: https://yakmesh.dev
|
|
66
|
-
π¦ npm: https://npmjs.com/package/yakmesh
|
|
67
|
-
π GitHub: https://github.com/yakmesh/yakmesh
|
|
68
|
-
π Whitepaper: `docs/WHITEPAPER.md`
|
|
22
|
+
### Links
|
|
69
23
|
|
|
70
|
-
|
|
24
|
+
π [yakmesh.dev](https://yakmesh.dev) Β· π¦ [npm](https://npmjs.com/package/yakmesh) Β· π [GitHub](https://github.com/yakmesh/yakmesh)
|
|
25
|
+
π¬ [Discord](https://discord.gg/E62tAE2wGh) Β· π± [Telegram](https://t.me/yakmesh) Β· π [Twitter](https://x.com/yakmesh_dev)
|
|
71
26
|
|
|
72
27
|
---
|
|
73
28
|
|
|
74
|
-
*
|
|
29
|
+
*USPTO Serial No. 99594620 Β· v1.3.2*
|
package/gossip/protocol.js
CHANGED
|
@@ -369,13 +369,24 @@ export class GossipProtocol {
|
|
|
369
369
|
const peers = this.mesh.getPeers()
|
|
370
370
|
.filter(p => p.nodeId !== excludeNodeId && p.nodeId !== rumor.origin);
|
|
371
371
|
|
|
372
|
-
if (peers.length === 0)
|
|
372
|
+
if (peers.length === 0) {
|
|
373
|
+
console.log(`β οΈ No peers to propagate rumor to`);
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
373
376
|
|
|
374
377
|
// Select random subset based on fanout
|
|
375
378
|
const targets = this._selectRandom(peers, this.config.fanout);
|
|
379
|
+
console.log(`π€ Propagating rumor to ${targets.length} peers: ${targets.map(t => t.nodeId.slice(0, 12)).join(', ')}`);
|
|
376
380
|
|
|
377
381
|
for (const target of targets) {
|
|
378
|
-
|
|
382
|
+
// Use broadcast format so the mesh routes it correctly
|
|
383
|
+
this.mesh.sendTo(target.nodeId, {
|
|
384
|
+
type: 'gossip', // This ensures the mesh routes it to gossip handlers
|
|
385
|
+
payload: { gossip: rumor },
|
|
386
|
+
id: rumor.messageId,
|
|
387
|
+
origin: rumor.origin,
|
|
388
|
+
ttl: rumor.ttl,
|
|
389
|
+
});
|
|
379
390
|
}
|
|
380
391
|
|
|
381
392
|
// Track for rumor mongering
|