yakmesh 2.8.2 → 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.
- package/CHANGELOG.md +637 -0
- package/CONTRIBUTING.md +42 -0
- package/Caddyfile +77 -0
- package/README.md +119 -29
- package/adapters/adapter-mlv-bible/README.md +124 -0
- package/adapters/adapter-mlv-bible/index.js +400 -0
- package/adapters/chat-mod-adapter.js +532 -0
- package/adapters/content-adapter.js +273 -0
- package/content/api.js +50 -41
- package/content/index.js +2 -2
- package/content/store.js +355 -173
- package/dashboard/index.html +19 -3
- package/database/replication.js +117 -37
- package/docs/CRYPTO-AGILITY.md +204 -0
- package/docs/MTLS-RESEARCH.md +367 -0
- package/docs/NAMCHE-SPEC.md +681 -0
- package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
- package/docs/PRECISION-DISCLOSURE.md +96 -0
- package/docs/README.md +76 -0
- package/docs/ROADMAP-2.4.0.md +447 -0
- package/docs/ROADMAP-2.5.0.md +244 -0
- package/docs/SECURITY-AUDIT-REPORT.md +306 -0
- package/docs/SST-INTEGRATION.md +712 -0
- package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
- package/docs/TERNARY-AUDIT-REPORT.md +247 -0
- package/docs/TME-FAQ.md +221 -0
- package/docs/WHITEPAPER.md +623 -0
- package/docs/adapters.html +1001 -0
- package/docs/advanced-systems.html +1045 -0
- package/docs/annex.html +1046 -0
- package/docs/api.html +970 -0
- package/docs/business/response-templates.md +160 -0
- package/docs/c2c.html +1225 -0
- package/docs/cli.html +1332 -0
- package/docs/configuration.html +1248 -0
- package/docs/darshan.html +1085 -0
- package/docs/dharma.html +966 -0
- package/docs/docs-bundle.html +1075 -0
- package/docs/docs.css +3120 -0
- package/docs/docs.js +556 -0
- package/docs/doko.html +969 -0
- package/docs/geo-proof.html +858 -0
- package/docs/getting-started.html +840 -0
- package/docs/gumba-tutorial.html +1144 -0
- package/docs/gumba.html +1098 -0
- package/docs/index.html +914 -0
- package/docs/jhilke.html +1312 -0
- package/docs/karma.html +1100 -0
- package/docs/katha.html +1037 -0
- package/docs/lama.html +978 -0
- package/docs/mandala.html +1067 -0
- package/docs/mani.html +964 -0
- package/docs/mantra.html +967 -0
- package/docs/mesh.html +1409 -0
- package/docs/nakpak.html +869 -0
- package/docs/namche.html +928 -0
- package/docs/nav-order.json +53 -0
- package/docs/prahari.html +1043 -0
- package/docs/prism-bash.min.js +1 -0
- package/docs/prism-javascript.min.js +1 -0
- package/docs/prism-json.min.js +1 -0
- package/docs/prism-tomorrow.min.css +1 -0
- package/docs/prism.min.js +1 -0
- package/docs/privacy.html +699 -0
- package/docs/quick-reference.html +1181 -0
- package/docs/sakshi.html +1402 -0
- package/docs/sandboxing.md +386 -0
- package/docs/seva.html +911 -0
- package/docs/sherpa.html +871 -0
- package/docs/studio.html +860 -0
- package/docs/stupa.html +995 -0
- package/docs/tailwind.min.css +2 -0
- package/docs/tattva.html +1332 -0
- package/docs/terms.html +686 -0
- package/docs/time-server-deployment.md +166 -0
- package/docs/time-sources.html +1392 -0
- package/docs/tivra.html +1127 -0
- package/docs/trademark-policy.html +686 -0
- package/docs/tribhuj.html +1183 -0
- package/docs/trust-security.html +1029 -0
- package/docs/tutorials/backup-recovery.html +654 -0
- package/docs/tutorials/dashboard.html +604 -0
- package/docs/tutorials/domain-setup.html +605 -0
- package/docs/tutorials/host-website.html +456 -0
- package/docs/tutorials/mesh-network.html +505 -0
- package/docs/tutorials/mobile-access.html +445 -0
- package/docs/tutorials/privacy.html +467 -0
- package/docs/tutorials/raspberry-pi.html +600 -0
- package/docs/tutorials/security-basics.html +539 -0
- package/docs/tutorials/share-files.html +431 -0
- package/docs/tutorials/troubleshooting.html +637 -0
- package/docs/tutorials/trust-karma.html +419 -0
- package/docs/tutorials/yak-protocol.html +456 -0
- package/docs/tutorials.html +1034 -0
- package/docs/vani.html +1270 -0
- package/docs/webserver.html +809 -0
- package/docs/yak-protocol.html +940 -0
- package/docs/yak-timeserver-design.md +475 -0
- package/docs/yakapp.html +1015 -0
- package/docs/ypc27.html +1069 -0
- package/docs/yurt.html +1344 -0
- package/embedded-docs/bundle.js +334 -74
- package/gossip/protocol.js +247 -27
- package/identity/key-resolver.js +262 -0
- package/identity/machine-seed.js +632 -0
- package/identity/node-key.js +669 -368
- package/identity/tribhuj-ratchet.js +506 -0
- package/knowledge-base.js +37 -8
- package/launcher/yakmesh.bat +62 -0
- package/launcher/yakmesh.sh +70 -0
- package/mesh/annex.js +462 -108
- package/mesh/beacon-broadcast.js +113 -1
- package/mesh/darshan.js +1718 -0
- package/mesh/gumba.js +1567 -0
- package/mesh/jhilke.js +651 -0
- package/mesh/katha.js +1012 -0
- package/mesh/nakpak-routing.js +8 -5
- package/mesh/network.js +724 -34
- package/mesh/pulse-sync.js +4 -1
- package/mesh/rate-limiter.js +127 -15
- package/mesh/seva.js +526 -0
- package/mesh/sherpa-discovery.js +89 -8
- package/mesh/sybil-defense.js +19 -5
- package/mesh/temporal-encoder.js +4 -3
- package/mesh/vani.js +1364 -0
- package/mesh/yurt.js +1340 -0
- package/models/entropy-sentinel.onnx +0 -0
- package/models/karma-trust.onnx +0 -0
- package/models/manifest.json +43 -0
- package/models/sakshi-anomaly.onnx +0 -0
- package/oracle/code-proof-protocol.js +7 -6
- package/oracle/codebase-lock.js +257 -28
- package/oracle/index.js +74 -15
- package/oracle/ma902-snmp.js +678 -0
- package/oracle/module-sealer.js +5 -3
- package/oracle/network-identity.js +16 -0
- package/oracle/packet-checksum.js +201 -0
- package/oracle/sst.js +579 -0
- package/oracle/ternary-144t.js +714 -0
- package/oracle/ternary-ml.js +481 -0
- package/oracle/time-api.js +239 -0
- package/oracle/time-source.js +137 -47
- package/oracle/validation-oracle-hardened.js +1111 -1071
- package/oracle/validation-oracle.js +4 -2
- package/oracle/ypc27.js +211 -0
- package/package.json +20 -3
- package/protocol/yak-handler.js +35 -9
- package/protocol/yak-protocol.js +28 -13
- package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
- package/reference/cpp/yakmesh_ypc27.cpp +179 -0
- package/sbom.json +87 -0
- package/scripts/security-audit.mjs +264 -0
- package/scripts/update-docs-nav.js +194 -0
- package/scripts/update-docs-sidebar.cjs +164 -0
- package/security/crypto-config.js +4 -3
- package/security/dharma-moderation.js +517 -0
- package/security/doko-identity.js +193 -143
- package/security/domain-consensus.js +86 -85
- package/security/fs-hardening.js +620 -0
- package/security/hardware-attestation.js +5 -3
- package/security/hybrid-trust.js +227 -87
- package/security/karma-rate-limiter.js +692 -0
- package/security/khata-protocol.js +22 -21
- package/security/khata-trust-integration.js +277 -150
- package/security/memory-safety.js +635 -0
- package/security/mesh-auth.js +11 -10
- package/security/mesh-revocation.js +373 -5
- package/security/namche-gateway.js +298 -69
- package/security/sakshi.js +460 -3
- package/security/sangha.js +770 -0
- package/security/secure-config.js +473 -0
- package/security/silicon-parity.js +13 -10
- package/security/steadywatch.js +1142 -0
- package/security/strike-system.js +32 -3
- package/security/temporal-signing.js +488 -0
- package/security/trit-commitment.js +464 -0
- package/server/crypto/annex.js +247 -0
- package/server/darshan-api.js +343 -0
- package/server/index.js +3259 -362
- package/server/komm-api.js +668 -0
- package/utils/accel.js +2273 -0
- package/utils/ternary-id.js +79 -0
- package/utils/verify-worker.js +57 -0
- package/webserver/index.js +95 -5
- package/assets/yakmesh-logo.png +0 -0
- package/assets/yakmesh-logo.svg +0 -80
- package/assets/yakmesh-logo2.png +0 -0
- package/assets/yakmesh-logo2sm.png +0 -0
- package/assets/ymsm.png +0 -0
- package/website/assets/silhouettes/adapters.svg +0 -107
- package/website/assets/silhouettes/api-endpoints.svg +0 -115
- package/website/assets/silhouettes/atomic-clock.svg +0 -83
- package/website/assets/silhouettes/base-camp.svg +0 -81
- package/website/assets/silhouettes/bridge.svg +0 -69
- package/website/assets/silhouettes/docs-bundle.svg +0 -113
- package/website/assets/silhouettes/doko-basket.svg +0 -70
- package/website/assets/silhouettes/fortress.svg +0 -93
- package/website/assets/silhouettes/gateway.svg +0 -54
- package/website/assets/silhouettes/gears.svg +0 -93
- package/website/assets/silhouettes/globe-satellite.svg +0 -67
- package/website/assets/silhouettes/karma-wheel.svg +0 -137
- package/website/assets/silhouettes/lama-council.svg +0 -141
- package/website/assets/silhouettes/mandala-network.svg +0 -169
- package/website/assets/silhouettes/mani-stones.svg +0 -149
- package/website/assets/silhouettes/mantra-wheel.svg +0 -116
- package/website/assets/silhouettes/mesh-nodes.svg +0 -113
- package/website/assets/silhouettes/nakpak.svg +0 -56
- package/website/assets/silhouettes/peak-lightning.svg +0 -73
- package/website/assets/silhouettes/sherpa.svg +0 -69
- package/website/assets/silhouettes/stupa-tower.svg +0 -119
- package/website/assets/silhouettes/tattva-eye.svg +0 -78
- package/website/assets/silhouettes/terminal.svg +0 -74
- package/website/assets/silhouettes/webserver.svg +0 -145
- package/website/assets/silhouettes/yak.svg +0 -78
- package/website/assets/yakmesh-logo.png +0 -0
- package/website/assets/yakmesh-logo.webp +0 -0
- package/website/assets/yakmesh-logo128x140.webp +0 -0
- package/website/assets/yakmesh-logo2.png +0 -0
- package/website/assets/yakmesh-logo2.svg +0 -51
- package/website/assets/yakmesh-logo40x44.webp +0 -0
- package/website/assets/yakmesh.gif +0 -0
- package/website/assets/yakmesh.ico +0 -0
- package/website/assets/yakmesh.jpg +0 -0
- package/website/assets/yakmesh.pdf +0 -0
- package/website/assets/yakmesh.png +0 -0
- package/website/assets/yakmesh.svg +0 -70
- package/website/assets/yakmesh128.webp +0 -0
- package/website/assets/yakmesh32.png +0 -0
- package/website/assets/yakmesh32.svg +0 -65
- package/website/assets/yakmesh32o.ico +0 -2
- package/website/assets/yakmesh32o.svg +0 -65
- package/website/assets/yakmesh32o.svgz +0 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-theme="tutorials">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" href="../favicon.ico" sizes="32x32">
|
|
7
|
+
<link rel="icon" href="../icon.svg" type="image/svg+xml">
|
|
8
|
+
<link rel="apple-touch-icon" href="../apple-touch-icon.png">
|
|
9
|
+
<title>Privacy Guide - YAKMESH Tutorials</title>
|
|
10
|
+
<meta name="description" content="Understand what YAKMESH shares and what stays private. Control your visibility and protect your identity on the mesh network.">
|
|
11
|
+
|
|
12
|
+
<link rel="stylesheet" href="../tailwind.min.css">
|
|
13
|
+
<link rel="stylesheet" href="../prism-tomorrow.min.css">
|
|
14
|
+
<link rel="stylesheet" href="../docs.css">
|
|
15
|
+
<style>
|
|
16
|
+
.theme-accent { color: #10b981; }
|
|
17
|
+
.theme-accent-hover:hover { color: #34d399; }
|
|
18
|
+
.theme-badge { background: rgba(16, 185, 129, 0.2); color: #34d399; }
|
|
19
|
+
.theme-border { border-color: #10b981; }
|
|
20
|
+
.theme-callout { background: rgba(16, 185, 129, 0.1); border-color: #059669; }
|
|
21
|
+
.active-link { background: rgba(16, 185, 129, 0.2) !important; color: #34d399 !important; }
|
|
22
|
+
.tutorial-card { background: rgba(30, 41, 59, 0.5); border: 1px solid #334155; border-radius: 0.75rem; padding: 1.5rem; margin-bottom: 1.5rem; }
|
|
23
|
+
.step-number { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; background: #10b981; color: white; border-radius: 50%; font-weight: bold; margin-right: 0.75rem; flex-shrink: 0; }
|
|
24
|
+
.privacy-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
|
|
25
|
+
.privacy-table th, .privacy-table td { padding: 0.75rem; text-align: left; border-bottom: 1px solid #334155; }
|
|
26
|
+
.privacy-table th { color: #10b981; font-weight: 600; }
|
|
27
|
+
.shared { color: #fbbf24; }
|
|
28
|
+
.private { color: #10b981; }
|
|
29
|
+
.analogy-box { background: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.3); border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; }
|
|
30
|
+
.analogy-box::before { content: '💡 '; }
|
|
31
|
+
.config-box { background: rgba(30, 41, 59, 0.8); border: 1px solid #475569; border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; }
|
|
32
|
+
</style>
|
|
33
|
+
</head>
|
|
34
|
+
<body class="bg-mountain-900 text-white min-h-screen">
|
|
35
|
+
|
|
36
|
+
<nav class="docs-sidebar" id="sidebar">
|
|
37
|
+
<a href="../index.html" class="sidebar-logo">
|
|
38
|
+
<span class="logo-icon">🏔️</span>
|
|
39
|
+
<span class="logo-text">Yakmesh</span>
|
|
40
|
+
</a>
|
|
41
|
+
<a href="/dashboard" class="sidebar-dashboard-link"><span>📊</span> <span>Dashboard</span></a>
|
|
42
|
+
<ul class="sidebar-nav">
|
|
43
|
+
<li><a href="../index.html"><span>🏠</span> <span>Overview</span></a></li>
|
|
44
|
+
<li><a href="../getting-started.html"><span>🚀</span> <span>Getting Started</span></a></li>
|
|
45
|
+
<li><a href="../tutorials.html"><span>📖</span> <span>Tutorials</span></a></li>
|
|
46
|
+
<li><a href="../yak-protocol.html"><span class="yak-icon"></span> <span>YAK://</span></a></li>
|
|
47
|
+
<li><a href="../annex.html"><span>🌉</span> <span>ANNEX</span></a></li>
|
|
48
|
+
<li><a href="../nakpak.html"><span>🎒</span> <span>NAKPAK</span></a></li>
|
|
49
|
+
<li><a href="../namche.html"><span>🚪</span> <span>NAMCHE</span></a></li>
|
|
50
|
+
<li><a href="../doko.html"><span>🧺</span> <span>DOKO</span></a></li>
|
|
51
|
+
<li><a href="../sherpa.html"><span>🧗</span> <span>SHERPA</span></a></li>
|
|
52
|
+
<li><a href="../mandala.html"><span>🌐</span> <span>MANDALA</span></a></li>
|
|
53
|
+
<li><a href="../mantra.html"><span>🕉️</span> <span>MANTRA</span></a></li>
|
|
54
|
+
<li><a href="../gumba.html"><span>🛕</span> <span>GUMBA</span></a></li>
|
|
55
|
+
<li><a href="../yurt.html"><span>🏕️</span> <span>YURT</span></a></li>
|
|
56
|
+
<li><a href="../katha.html"><span>💬</span> <span>KATHA</span></a></li>
|
|
57
|
+
<li><a href="../vani.html"><span>🎙️</span> <span>VANI</span></a></li>
|
|
58
|
+
<li><a href="../darshan.html"><span>👁️</span> <span>DARSHAN</span></a></li>
|
|
59
|
+
<li><a href="../stupa.html"><span>🛕</span> <span>STUPA</span></a></li>
|
|
60
|
+
<li><a href="../lama.html"><span>🔮</span> <span>LAMA</span></a></li>
|
|
61
|
+
<li><a href="../mani.html"><span>⏱️</span> <span>MANI</span></a></li>
|
|
62
|
+
<li><a href="../karma.html"><span>☯️</span> <span>KARMA</span></a></li>
|
|
63
|
+
<li><a href="../tattva.html"><span>🔯</span> <span>TATTVA</span></a></li>
|
|
64
|
+
<li><a href="../tribhuj.html"><span>🔺</span> <span>TRIBHUJ</span></a></li>
|
|
65
|
+
<li><a href="../ypc27.html"><span>🔐</span> <span>YPC-27</span></a></li>
|
|
66
|
+
<li><a href="../sakshi.html"><span>👁️</span> <span>SAKSHI</span></a></li>
|
|
67
|
+
<li><a href="../geo-proof.html"><span>🌍</span> <span>PRAMAAN</span></a></li>
|
|
68
|
+
<li><a href="../trust-security.html"><span>🔒</span> <span>SURAKSHA</span></a></li>
|
|
69
|
+
<li><a href="../docs-bundle.html"><span>📚</span> <span>GRANTH</span></a></li>
|
|
70
|
+
<li><a href="../api.html"><span>📡</span> <span>API</span></a></li>
|
|
71
|
+
<li><a href="../adapters.html"><span>🔌</span> <span>Adapters</span></a></li>
|
|
72
|
+
<li><a href="../studio.html"><span>🎨</span> <span>Studio</span></a></li>
|
|
73
|
+
<li><a href="../quick-reference.html"><span>📋</span> <span>Quick Ref</span></a></li>
|
|
74
|
+
</ul>
|
|
75
|
+
</nav>
|
|
76
|
+
|
|
77
|
+
<button class="sidebar-toggle" id="sidebarToggle" title="Toggle sidebar">
|
|
78
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
79
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" />
|
|
80
|
+
</svg>
|
|
81
|
+
</button>
|
|
82
|
+
|
|
83
|
+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
84
|
+
|
|
85
|
+
<main class="docs-main" id="mainContent">
|
|
86
|
+
<div class="docs-content">
|
|
87
|
+
|
|
88
|
+
<!-- Breadcrumb -->
|
|
89
|
+
<nav class="text-sm text-mountain-400 mb-6">
|
|
90
|
+
<a href="../tutorials.html" class="hover:text-white transition">Tutorials</a>
|
|
91
|
+
<span class="mx-2">/</span>
|
|
92
|
+
<span class="text-white">Privacy Guide</span>
|
|
93
|
+
</nav>
|
|
94
|
+
|
|
95
|
+
<!-- Page Header -->
|
|
96
|
+
<div class="mb-8">
|
|
97
|
+
<div class="flex items-center gap-3 mb-2">
|
|
98
|
+
<span class="text-4xl">🔏</span>
|
|
99
|
+
<h1 class="text-4xl font-bold">Privacy Guide</h1>
|
|
100
|
+
<span class="theme-badge text-xs px-2 py-1 rounded-full">10 min read</span>
|
|
101
|
+
</div>
|
|
102
|
+
<p class="theme-accent text-lg">What's shared, what's private, and how to control it</p>
|
|
103
|
+
<p class="text-mountain-300 mt-2">
|
|
104
|
+
Understand exactly what information YAKMESH reveals and what stays completely private.
|
|
105
|
+
Learn how to maximize your anonymity on the mesh.
|
|
106
|
+
</p>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<!-- Section 1: The Big Picture -->
|
|
110
|
+
<div class="tutorial-card">
|
|
111
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
112
|
+
<span class="step-number">1</span>
|
|
113
|
+
The Big Picture
|
|
114
|
+
</h2>
|
|
115
|
+
<p class="text-mountain-300 mb-4">
|
|
116
|
+
YAKMESH is designed with privacy as a core principle. Unlike traditional services that
|
|
117
|
+
know everything about you, YAKMESH only shares what's absolutely necessary for the
|
|
118
|
+
network to function.
|
|
119
|
+
</p>
|
|
120
|
+
|
|
121
|
+
<div class="analogy-box">
|
|
122
|
+
<strong>Think of it like this:</strong> In a traditional web service, you're walking
|
|
123
|
+
through a building with security cameras everywhere—every move is recorded. In YAKMESH,
|
|
124
|
+
you're in a dark maze where others can only see the flashlight beam you're pointing,
|
|
125
|
+
not who's holding it.
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<p class="text-mountain-300 mt-4">
|
|
129
|
+
The key insight: <strong>YAKMESH separates identity from content</strong>. Your node
|
|
130
|
+
has a public identity (for the network), but that identity doesn't have to be linked
|
|
131
|
+
to you personally.
|
|
132
|
+
</p>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<!-- Section 2: What YAKMESH Shares -->
|
|
136
|
+
<div class="tutorial-card">
|
|
137
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
138
|
+
<span class="step-number">2</span>
|
|
139
|
+
What YAKMESH Shares
|
|
140
|
+
</h2>
|
|
141
|
+
<p class="text-mountain-300 mb-4">
|
|
142
|
+
For the network to work, some information must be visible. Here's what other nodes
|
|
143
|
+
can see about you:
|
|
144
|
+
</p>
|
|
145
|
+
|
|
146
|
+
<table class="privacy-table">
|
|
147
|
+
<thead>
|
|
148
|
+
<tr>
|
|
149
|
+
<th>Information</th>
|
|
150
|
+
<th>Who Sees It</th>
|
|
151
|
+
<th>Why It's Needed</th>
|
|
152
|
+
</tr>
|
|
153
|
+
</thead>
|
|
154
|
+
<tbody>
|
|
155
|
+
<tr>
|
|
156
|
+
<td class="shared">🔑 Node ID (public key)</td>
|
|
157
|
+
<td class="text-mountain-300">All connected peers</td>
|
|
158
|
+
<td class="text-mountain-400">To identify and authenticate your node</td>
|
|
159
|
+
</tr>
|
|
160
|
+
<tr>
|
|
161
|
+
<td class="shared">📋 Content hashes you host</td>
|
|
162
|
+
<td class="text-mountain-300">Nodes you share with</td>
|
|
163
|
+
<td class="text-mountain-400">So others know what content you have</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td class="shared">🌐 Mesh connection status</td>
|
|
167
|
+
<td class="text-mountain-300">Direct peers only</td>
|
|
168
|
+
<td class="text-mountain-400">To maintain network connections</td>
|
|
169
|
+
</tr>
|
|
170
|
+
<tr>
|
|
171
|
+
<td class="shared">⏱️ Time capability level</td>
|
|
172
|
+
<td class="text-mountain-300">Peers during trust checks</td>
|
|
173
|
+
<td class="text-mountain-400">For KARMA trust scoring</td>
|
|
174
|
+
</tr>
|
|
175
|
+
</tbody>
|
|
176
|
+
</table>
|
|
177
|
+
|
|
178
|
+
<p class="text-mountain-300 mt-4">
|
|
179
|
+
<strong>Important:</strong> Your Node ID is like a username—it identifies your node
|
|
180
|
+
but doesn't reveal who you are in real life. You can generate a new identity anytime.
|
|
181
|
+
</p>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<!-- Section 3: What Stays Private -->
|
|
185
|
+
<div class="tutorial-card">
|
|
186
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
187
|
+
<span class="step-number">3</span>
|
|
188
|
+
What Stays Private
|
|
189
|
+
</h2>
|
|
190
|
+
<p class="text-mountain-300 mb-4">
|
|
191
|
+
These things are <strong>never</strong> shared with the network:
|
|
192
|
+
</p>
|
|
193
|
+
|
|
194
|
+
<ul class="space-y-4 text-mountain-300">
|
|
195
|
+
<li class="flex items-start gap-3">
|
|
196
|
+
<span class="text-green-400 text-xl">🛡️</span>
|
|
197
|
+
<div>
|
|
198
|
+
<strong class="text-white private">Your IP address</strong> (behind the mesh)<br>
|
|
199
|
+
<span class="text-sm">When routing through the mesh, intermediate nodes only see
|
|
200
|
+
the previous and next hop—not your real IP. Direct connections still expose IP
|
|
201
|
+
to that specific peer.</span>
|
|
202
|
+
</div>
|
|
203
|
+
</li>
|
|
204
|
+
<li class="flex items-start gap-3">
|
|
205
|
+
<span class="text-green-400 text-xl">🔐</span>
|
|
206
|
+
<div>
|
|
207
|
+
<strong class="text-white private">Your content</strong> (encrypted)<br>
|
|
208
|
+
<span class="text-sm">Content is encrypted at rest in STUPA storage. Even if
|
|
209
|
+
someone accesses your disk, they can't read your files without the keys.</span>
|
|
210
|
+
</div>
|
|
211
|
+
</li>
|
|
212
|
+
<li class="flex items-start gap-3">
|
|
213
|
+
<span class="text-green-400 text-xl">👤</span>
|
|
214
|
+
<div>
|
|
215
|
+
<strong class="text-white private">Your real identity</strong> (anonymous by default)<br>
|
|
216
|
+
<span class="text-sm">YAKMESH never asks for your name, email, or any personal
|
|
217
|
+
information. Your node is just a cryptographic key pair.</span>
|
|
218
|
+
</div>
|
|
219
|
+
</li>
|
|
220
|
+
<li class="flex items-start gap-3">
|
|
221
|
+
<span class="text-green-400 text-xl">📍</span>
|
|
222
|
+
<div>
|
|
223
|
+
<strong class="text-white private">Your location</strong> (unless you enable geo-proof)<br>
|
|
224
|
+
<span class="text-sm">Geographic proof is opt-in. Without it, nobody knows where
|
|
225
|
+
you're running from.</span>
|
|
226
|
+
</div>
|
|
227
|
+
</li>
|
|
228
|
+
<li class="flex items-start gap-3">
|
|
229
|
+
<span class="text-green-400 text-xl">🔑</span>
|
|
230
|
+
<div>
|
|
231
|
+
<strong class="text-white private">Your private keys</strong> (never leave your device)<br>
|
|
232
|
+
<span class="text-sm">Only your public key is shared. Private keys stay on your
|
|
233
|
+
machine and are never transmitted.</span>
|
|
234
|
+
</div>
|
|
235
|
+
</li>
|
|
236
|
+
</ul>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
<!-- Section 4: What Peers Can See -->
|
|
240
|
+
<div class="tutorial-card">
|
|
241
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
242
|
+
<span class="step-number">4</span>
|
|
243
|
+
What Your Peers Can See About You
|
|
244
|
+
</h2>
|
|
245
|
+
<p class="text-mountain-300 mb-4">
|
|
246
|
+
Different peers have different visibility levels:
|
|
247
|
+
</p>
|
|
248
|
+
|
|
249
|
+
<div class="config-box mb-4">
|
|
250
|
+
<h4 class="font-semibold text-white mb-2">🔌 Direct Peers (you connect to them directly)</h4>
|
|
251
|
+
<ul class="text-sm text-mountain-400 space-y-1">
|
|
252
|
+
<li>• Your IP address (unavoidable for direct TCP/UDP connections)</li>
|
|
253
|
+
<li>• Your node ID and public key</li>
|
|
254
|
+
<li>• When you're online/offline</li>
|
|
255
|
+
<li>• Content you're requesting or serving to them</li>
|
|
256
|
+
</ul>
|
|
257
|
+
</div>
|
|
258
|
+
|
|
259
|
+
<div class="config-box mb-4">
|
|
260
|
+
<h4 class="font-semibold text-white mb-2">🔀 Relay Peers (routing your traffic)</h4>
|
|
261
|
+
<ul class="text-sm text-mountain-400 space-y-1">
|
|
262
|
+
<li>• Previous hop and next hop only</li>
|
|
263
|
+
<li>• Encrypted packet size and timing</li>
|
|
264
|
+
<li>• <strong>Cannot see:</strong> origin, destination, or content</li>
|
|
265
|
+
</ul>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<div class="config-box">
|
|
269
|
+
<h4 class="font-semibold text-white mb-2">🌍 The Broader Network</h4>
|
|
270
|
+
<ul class="text-sm text-mountain-400 space-y-1">
|
|
271
|
+
<li>• Your node ID exists (if you participate in gossip)</li>
|
|
272
|
+
<li>• Content hashes you've announced</li>
|
|
273
|
+
<li>• <strong>Cannot see:</strong> your IP, location, or what you're browsing</li>
|
|
274
|
+
</ul>
|
|
275
|
+
</div>
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
<!-- Section 5: Privacy Settings -->
|
|
279
|
+
<div class="tutorial-card">
|
|
280
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
281
|
+
<span class="step-number">5</span>
|
|
282
|
+
Privacy Settings in Config
|
|
283
|
+
</h2>
|
|
284
|
+
<p class="text-mountain-300 mb-4">
|
|
285
|
+
You can customize your privacy level in <code class="bg-mountain-800 px-2 py-1 rounded">yakmesh.config.js</code>:
|
|
286
|
+
</p>
|
|
287
|
+
|
|
288
|
+
<pre class="language-javascript mb-4"><code>export default {
|
|
289
|
+
// Privacy settings
|
|
290
|
+
privacy: {
|
|
291
|
+
// Don't announce content to the network
|
|
292
|
+
// (you can still serve content to direct peers)
|
|
293
|
+
announceContent: false,
|
|
294
|
+
|
|
295
|
+
// Use onion routing for all outbound requests
|
|
296
|
+
forceOnionRouting: true,
|
|
297
|
+
|
|
298
|
+
// Minimum number of relay hops
|
|
299
|
+
minRelayHops: 3,
|
|
300
|
+
|
|
301
|
+
// Don't participate in mesh gossip
|
|
302
|
+
// (reduces visibility but limits features)
|
|
303
|
+
disableGossip: false,
|
|
304
|
+
|
|
305
|
+
// Reject direct connections (relay only)
|
|
306
|
+
relayOnly: false,
|
|
307
|
+
},
|
|
308
|
+
|
|
309
|
+
// Geo-proof is opt-in
|
|
310
|
+
geoProof: {
|
|
311
|
+
enabled: false, // Don't reveal location
|
|
312
|
+
},
|
|
313
|
+
}</code></pre>
|
|
314
|
+
|
|
315
|
+
<p class="text-mountain-300 mt-4">
|
|
316
|
+
<strong>Trade-off:</strong> More privacy often means reduced functionality. For example,
|
|
317
|
+
<code class="bg-mountain-800 px-2 py-1 rounded">disableGossip</code> hides you from the
|
|
318
|
+
network but means you won't discover peers automatically.
|
|
319
|
+
</p>
|
|
320
|
+
</div>
|
|
321
|
+
|
|
322
|
+
<!-- Section 6: Anonymous Mode -->
|
|
323
|
+
<div class="tutorial-card">
|
|
324
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
325
|
+
<span class="step-number">6</span>
|
|
326
|
+
Anonymous Mode
|
|
327
|
+
</h2>
|
|
328
|
+
<p class="text-mountain-300 mb-4">
|
|
329
|
+
For maximum privacy, enable full anonymous mode:
|
|
330
|
+
</p>
|
|
331
|
+
|
|
332
|
+
<pre class="language-bash mb-4"><code># Start node in anonymous mode
|
|
333
|
+
npx yakmesh start --anonymous
|
|
334
|
+
|
|
335
|
+
# Or set in config
|
|
336
|
+
npx yakmesh config set privacy.anonymousMode true</code></pre>
|
|
337
|
+
|
|
338
|
+
<p class="text-mountain-300 mb-4">
|
|
339
|
+
Anonymous mode enables these protections automatically:
|
|
340
|
+
</p>
|
|
341
|
+
|
|
342
|
+
<ul class="space-y-2 text-mountain-300">
|
|
343
|
+
<li class="flex items-start gap-3">
|
|
344
|
+
<span class="text-green-400">✓</span>
|
|
345
|
+
<span>Forces all traffic through onion routing (3+ hops)</span>
|
|
346
|
+
</li>
|
|
347
|
+
<li class="flex items-start gap-3">
|
|
348
|
+
<span class="text-green-400">✓</span>
|
|
349
|
+
<span>Disables content announcements</span>
|
|
350
|
+
</li>
|
|
351
|
+
<li class="flex items-start gap-3">
|
|
352
|
+
<span class="text-green-400">✓</span>
|
|
353
|
+
<span>Generates ephemeral session keys (rotated frequently)</span>
|
|
354
|
+
</li>
|
|
355
|
+
<li class="flex items-start gap-3">
|
|
356
|
+
<span class="text-green-400">✓</span>
|
|
357
|
+
<span>Adds random delays to timing analysis resistance</span>
|
|
358
|
+
</li>
|
|
359
|
+
<li class="flex items-start gap-3">
|
|
360
|
+
<span class="text-green-400">✓</span>
|
|
361
|
+
<span>Pads packets to uniform sizes</span>
|
|
362
|
+
</li>
|
|
363
|
+
</ul>
|
|
364
|
+
|
|
365
|
+
<div class="analogy-box mt-4">
|
|
366
|
+
<strong>Trade-off warning:</strong> Anonymous mode is slower (more hops, delays) and
|
|
367
|
+
uses more bandwidth (padding). It also limits your ability to host content for others.
|
|
368
|
+
Use it when privacy is more important than performance.
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
<!-- Section 7: What About Metadata? -->
|
|
373
|
+
<div class="tutorial-card">
|
|
374
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center">
|
|
375
|
+
<span class="step-number">7</span>
|
|
376
|
+
What About Metadata?
|
|
377
|
+
</h2>
|
|
378
|
+
<p class="text-mountain-300 mb-4">
|
|
379
|
+
Metadata (data about data) can be just as revealing as content. Here's how YAKMESH
|
|
380
|
+
handles it:
|
|
381
|
+
</p>
|
|
382
|
+
|
|
383
|
+
<table class="privacy-table">
|
|
384
|
+
<thead>
|
|
385
|
+
<tr>
|
|
386
|
+
<th>Metadata Type</th>
|
|
387
|
+
<th>Protection Level</th>
|
|
388
|
+
</tr>
|
|
389
|
+
</thead>
|
|
390
|
+
<tbody>
|
|
391
|
+
<tr>
|
|
392
|
+
<td class="text-mountain-300">Request timing</td>
|
|
393
|
+
<td class="private">Random delays in anonymous mode</td>
|
|
394
|
+
</tr>
|
|
395
|
+
<tr>
|
|
396
|
+
<td class="text-mountain-300">Packet sizes</td>
|
|
397
|
+
<td class="private">Padded to uniform sizes in anonymous mode</td>
|
|
398
|
+
</tr>
|
|
399
|
+
<tr>
|
|
400
|
+
<td class="text-mountain-300">Connection patterns</td>
|
|
401
|
+
<td class="shared">Visible to direct peers; hidden behind relays</td>
|
|
402
|
+
</tr>
|
|
403
|
+
<tr>
|
|
404
|
+
<td class="text-mountain-300">Online times</td>
|
|
405
|
+
<td class="shared">Direct peers know when you connect</td>
|
|
406
|
+
</tr>
|
|
407
|
+
<tr>
|
|
408
|
+
<td class="text-mountain-300">Content request frequency</td>
|
|
409
|
+
<td class="private">Encrypted and routed through mesh</td>
|
|
410
|
+
</tr>
|
|
411
|
+
</tbody>
|
|
412
|
+
</table>
|
|
413
|
+
|
|
414
|
+
<p class="text-mountain-300 mt-4">
|
|
415
|
+
<strong>Best practice:</strong> Use multiple direct peers so no single peer sees all
|
|
416
|
+
your activity patterns. The mesh naturally distributes your traffic.
|
|
417
|
+
</p>
|
|
418
|
+
</div>
|
|
419
|
+
|
|
420
|
+
<!-- Summary -->
|
|
421
|
+
<div class="bg-mountain-800/50 rounded-xl p-6 border border-mountain-700 mb-8">
|
|
422
|
+
<h2 class="text-xl font-bold mb-4">📌 Key Takeaways</h2>
|
|
423
|
+
<ul class="space-y-2 text-mountain-300">
|
|
424
|
+
<li>✓ <strong>Shared:</strong> Node ID, content hashes, connection status</li>
|
|
425
|
+
<li>✓ <strong>Private:</strong> IP (behind mesh), content (encrypted), real identity, location</li>
|
|
426
|
+
<li>✓ Privacy settings in config let you control visibility</li>
|
|
427
|
+
<li>✓ Anonymous mode provides maximum protection with performance trade-offs</li>
|
|
428
|
+
<li>✓ Direct peers see more than relay peers</li>
|
|
429
|
+
<li>✓ You can regenerate your node identity anytime for a fresh start</li>
|
|
430
|
+
</ul>
|
|
431
|
+
</div>
|
|
432
|
+
|
|
433
|
+
<!-- Navigation Footer -->
|
|
434
|
+
<div class="border-t border-mountain-700 mt-12 pt-8">
|
|
435
|
+
<div class="flex flex-col sm:flex-row gap-4">
|
|
436
|
+
<a href="trust-karma.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
|
|
437
|
+
<div class="text-xs text-mountain-400 mb-1">← Previous</div>
|
|
438
|
+
<div class="flex items-center gap-2">
|
|
439
|
+
<span class="text-xl">☯️</span>
|
|
440
|
+
<span class="font-semibold group-hover:text-emerald-400">Trust & Reputation</span>
|
|
441
|
+
</div>
|
|
442
|
+
</a>
|
|
443
|
+
<a href="security-basics.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
|
|
444
|
+
<div class="text-xs text-mountain-400 mb-1">Next →</div>
|
|
445
|
+
<div class="flex items-center gap-2">
|
|
446
|
+
<span class="text-xl">🛡️</span>
|
|
447
|
+
<span class="font-semibold group-hover:text-emerald-400">Security for Non-Techies</span>
|
|
448
|
+
</div>
|
|
449
|
+
</a>
|
|
450
|
+
</div>
|
|
451
|
+
</div>
|
|
452
|
+
|
|
453
|
+
<!-- Version Badge -->
|
|
454
|
+
<div class="mt-8 pt-6 border-t border-mountain-700">
|
|
455
|
+
<span class="inline-block text-xs theme-badge px-2 py-1 rounded">v2.8.2</span>
|
|
456
|
+
<span class="text-mountain-500 text-sm ml-2">Last updated: February 2026</span>
|
|
457
|
+
</div>
|
|
458
|
+
|
|
459
|
+
</div>
|
|
460
|
+
</main>
|
|
461
|
+
|
|
462
|
+
<script src="../prism.min.js"></script>
|
|
463
|
+
<script src="../prism-javascript.min.js"></script>
|
|
464
|
+
<script src="../prism-bash.min.js"></script>
|
|
465
|
+
<script src="../docs.js"></script>
|
|
466
|
+
</body>
|
|
467
|
+
</html>
|