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,431 @@
|
|
|
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>Share Files with Friends - YAKMESH Tutorials</title>
|
|
10
|
+
<meta name="description" content="Learn how to share files and folders with friends using YAKMESH peer-to-peer network. No cloud uploads required - share directly from your device.">
|
|
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-badge { background: rgba(16, 185, 129, 0.2); color: #34d399; }
|
|
18
|
+
.tutorial-card { background: rgba(30, 41, 59, 0.5); border: 1px solid #334155; border-radius: 0.75rem; padding: 1.5rem; margin-bottom: 1.5rem; }
|
|
19
|
+
.tutorial-card:hover { border-color: #10b981; }
|
|
20
|
+
.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; }
|
|
21
|
+
.warning-box { background: rgba(251, 191, 36, 0.1); border: 1px solid #fbbf24; border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; }
|
|
22
|
+
.tip-box { background: rgba(16, 185, 129, 0.1); border: 1px solid #10b981; border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; }
|
|
23
|
+
.info-box { background: rgba(59, 130, 246, 0.1); border: 1px solid #3b82f6; border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; }
|
|
24
|
+
</style>
|
|
25
|
+
</head>
|
|
26
|
+
<body class="bg-mountain-900 text-white min-h-screen">
|
|
27
|
+
|
|
28
|
+
<nav class="docs-sidebar" id="sidebar">
|
|
29
|
+
<a href="../index.html" class="sidebar-logo">
|
|
30
|
+
<span class="logo-icon">🏔️</span>
|
|
31
|
+
<span class="logo-text">Yakmesh</span>
|
|
32
|
+
</a>
|
|
33
|
+
<a href="/dashboard" class="sidebar-dashboard-link"><span>📊</span> <span>Dashboard</span></a>
|
|
34
|
+
<ul class="sidebar-nav">
|
|
35
|
+
<li><a href="../index.html"><span>🏠</span> <span>Overview</span></a></li>
|
|
36
|
+
<li><a href="../getting-started.html"><span>🚀</span> <span>Getting Started</span></a></li>
|
|
37
|
+
<li><a href="../tutorials.html"><span>📖</span> <span>Tutorials</span></a></li>
|
|
38
|
+
<li><a href="../yak-protocol.html"><span class="yak-icon"></span> <span>YAK://</span></a></li>
|
|
39
|
+
<li><a href="../annex.html"><span>🌉</span> <span>ANNEX</span></a></li>
|
|
40
|
+
<li><a href="../nakpak.html"><span>🎒</span> <span>NAKPAK</span></a></li>
|
|
41
|
+
<li><a href="../namche.html"><span>🚪</span> <span>NAMCHE</span></a></li>
|
|
42
|
+
<li><a href="../doko.html"><span>🧺</span> <span>DOKO</span></a></li>
|
|
43
|
+
<li><a href="../sherpa.html"><span>🧗</span> <span>SHERPA</span></a></li>
|
|
44
|
+
<li><a href="../mandala.html"><span>🌐</span> <span>MANDALA</span></a></li>
|
|
45
|
+
<li><a href="../mantra.html"><span>🕉️</span> <span>MANTRA</span></a></li>
|
|
46
|
+
<li><a href="../gumba.html"><span>🛕</span> <span>GUMBA</span></a></li>
|
|
47
|
+
<li><a href="../yurt.html"><span>🏕️</span> <span>YURT</span></a></li>
|
|
48
|
+
<li><a href="../katha.html"><span>💬</span> <span>KATHA</span></a></li>
|
|
49
|
+
<li><a href="../vani.html"><span>🎙️</span> <span>VANI</span></a></li>
|
|
50
|
+
<li><a href="../darshan.html"><span>👁️</span> <span>DARSHAN</span></a></li>
|
|
51
|
+
<li><a href="../stupa.html"><span>🛕</span> <span>STUPA</span></a></li>
|
|
52
|
+
<li><a href="../lama.html"><span>🔮</span> <span>LAMA</span></a></li>
|
|
53
|
+
<li><a href="../mani.html"><span>⏱️</span> <span>MANI</span></a></li>
|
|
54
|
+
<li><a href="../karma.html"><span>☯️</span> <span>KARMA</span></a></li>
|
|
55
|
+
<li><a href="../tattva.html"><span>🔯</span> <span>TATTVA</span></a></li>
|
|
56
|
+
<li><a href="../tribhuj.html"><span>🔺</span> <span>TRIBHUJ</span></a></li>
|
|
57
|
+
<li><a href="../ypc27.html"><span>🔐</span> <span>YPC-27</span></a></li>
|
|
58
|
+
<li><a href="../sakshi.html"><span>👁️</span> <span>SAKSHI</span></a></li>
|
|
59
|
+
<li><a href="../geo-proof.html"><span>🌍</span> <span>PRAMAAN</span></a></li>
|
|
60
|
+
<li><a href="../trust-security.html"><span>🔒</span> <span>SURAKSHA</span></a></li>
|
|
61
|
+
<li><a href="../docs-bundle.html"><span>📚</span> <span>GRANTH</span></a></li>
|
|
62
|
+
<li><a href="../api.html"><span>📡</span> <span>API</span></a></li>
|
|
63
|
+
<li><a href="../adapters.html"><span>🔌</span> <span>Adapters</span></a></li>
|
|
64
|
+
<li><a href="../studio.html"><span>🎨</span> <span>Studio</span></a></li>
|
|
65
|
+
<li><a href="../quick-reference.html"><span>📋</span> <span>Quick Ref</span></a></li>
|
|
66
|
+
</ul>
|
|
67
|
+
</nav>
|
|
68
|
+
|
|
69
|
+
<button class="sidebar-toggle" id="sidebarToggle" title="Toggle sidebar">☰</button>
|
|
70
|
+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
71
|
+
|
|
72
|
+
<main class="docs-main" id="mainContent">
|
|
73
|
+
<div class="docs-content">
|
|
74
|
+
<div class="mb-6">
|
|
75
|
+
<a href="../tutorials.html" class="theme-accent hover:underline">← Back to Tutorials</a>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<!-- Header -->
|
|
79
|
+
<header class="mb-8">
|
|
80
|
+
<div class="flex items-center gap-3 mb-4">
|
|
81
|
+
<span class="text-4xl">📤</span>
|
|
82
|
+
<div>
|
|
83
|
+
<h1 class="text-3xl font-bold">Share Files with Friends</h1>
|
|
84
|
+
<p class="text-gray-400">Learn to share files directly from your device - no cloud uploads required</p>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="flex items-center gap-4 text-sm text-gray-400">
|
|
88
|
+
<span class="theme-badge px-3 py-1 rounded-full">Beginner</span>
|
|
89
|
+
<span>⏱️ 5 min read</span>
|
|
90
|
+
<span>📁 DOKO Protocol</span>
|
|
91
|
+
</div>
|
|
92
|
+
</header>
|
|
93
|
+
|
|
94
|
+
<!-- Introduction -->
|
|
95
|
+
<div class="tutorial-card">
|
|
96
|
+
<h2 class="text-xl font-semibold mb-4 theme-accent">What You'll Learn</h2>
|
|
97
|
+
<p class="text-gray-300 mb-4">
|
|
98
|
+
In this tutorial, you'll learn how to share files and folders with friends using YAKMESH's DOKO (Distributed Object Keeper and Organizer) system.
|
|
99
|
+
Unlike traditional file sharing services, YAKMESH doesn't upload your files to any cloud server. Instead, your files stay on your device and are
|
|
100
|
+
shared directly with your friends through an encrypted peer-to-peer connection.
|
|
101
|
+
</p>
|
|
102
|
+
<ul class="list-disc list-inside text-gray-300 space-y-2">
|
|
103
|
+
<li>Share a folder from your computer</li>
|
|
104
|
+
<li>Generate a shareable link</li>
|
|
105
|
+
<li>Send the link to a friend</li>
|
|
106
|
+
<li>Understand how DOKO links work</li>
|
|
107
|
+
</ul>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<!-- Prerequisites -->
|
|
111
|
+
<div class="tutorial-card">
|
|
112
|
+
<h2 class="text-xl font-semibold mb-4">📋 Before You Start</h2>
|
|
113
|
+
<p class="text-gray-300 mb-4">Make sure you have:</p>
|
|
114
|
+
<ul class="list-disc list-inside text-gray-300 space-y-2">
|
|
115
|
+
<li>YAKMESH installed and running on your computer</li>
|
|
116
|
+
<li>Your node online and connected to the mesh (check your dashboard)</li>
|
|
117
|
+
<li>A folder or file you want to share</li>
|
|
118
|
+
</ul>
|
|
119
|
+
<div class="tip-box mt-4">
|
|
120
|
+
<p class="text-sm"><strong>💡 Tip:</strong> If you haven't set up YAKMESH yet, check out the <a href="../getting-started.html" class="theme-accent hover:underline">Getting Started guide</a> first.</p>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<!-- Step 1 -->
|
|
125
|
+
<div class="tutorial-card">
|
|
126
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
127
|
+
<span class="step-number">1</span>
|
|
128
|
+
Choose What to Share
|
|
129
|
+
</h2>
|
|
130
|
+
<p class="text-gray-300 mb-4">
|
|
131
|
+
First, decide which folder or file you want to share. For this tutorial, let's say you have a folder called
|
|
132
|
+
<code class="bg-gray-800 px-2 py-1 rounded">vacation-photos</code> in your Documents folder that you want to share with a friend.
|
|
133
|
+
</p>
|
|
134
|
+
<p class="text-gray-300 mb-4">
|
|
135
|
+
Open your terminal or command prompt and navigate to the location of your files:
|
|
136
|
+
</p>
|
|
137
|
+
<pre><code class="language-bash"># On Windows
|
|
138
|
+
cd C:\Users\YourName\Documents
|
|
139
|
+
|
|
140
|
+
# On macOS/Linux
|
|
141
|
+
cd ~/Documents</code></pre>
|
|
142
|
+
<p class="text-gray-300 mt-4">
|
|
143
|
+
Verify your folder is there:
|
|
144
|
+
</p>
|
|
145
|
+
<pre><code class="language-bash"># List contents
|
|
146
|
+
ls -la vacation-photos/</code></pre>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<!-- Step 2 -->
|
|
150
|
+
<div class="tutorial-card">
|
|
151
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
152
|
+
<span class="step-number">2</span>
|
|
153
|
+
Share the Folder with YAKMESH
|
|
154
|
+
</h2>
|
|
155
|
+
<p class="text-gray-300 mb-4">
|
|
156
|
+
Now, use the <code class="bg-gray-800 px-2 py-1 rounded">yakmesh share</code> command to create a shareable link for your folder:
|
|
157
|
+
</p>
|
|
158
|
+
<pre><code class="language-bash"># Share the entire folder
|
|
159
|
+
yakmesh share vacation-photos/</code></pre>
|
|
160
|
+
<p class="text-gray-300 mt-4">
|
|
161
|
+
You'll see output like this:
|
|
162
|
+
</p>
|
|
163
|
+
<pre><code class="language-bash">📤 Sharing: vacation-photos/
|
|
164
|
+
Files: 47 items (234.5 MB total)
|
|
165
|
+
|
|
166
|
+
✅ Share created successfully!
|
|
167
|
+
|
|
168
|
+
🔗 Share Link:
|
|
169
|
+
yak://qubit-lattice-prism/vacation-photos
|
|
170
|
+
|
|
171
|
+
📋 Or use the compact iO code:
|
|
172
|
+
qubit-lattice-prism
|
|
173
|
+
|
|
174
|
+
⏰ Share expires: Never (persistent)
|
|
175
|
+
🔒 Encryption: End-to-end encrypted</code></pre>
|
|
176
|
+
|
|
177
|
+
<div class="info-box mt-4">
|
|
178
|
+
<p class="text-sm"><strong>ℹ️ What happened?</strong> YAKMESH indexed your files, created a cryptographic content fingerprint,
|
|
179
|
+
and generated a human-readable <strong>iO name</strong> (like "qubit-lattice-prism") that's easy to share verbally.
|
|
180
|
+
Your files stay on your device - nothing is uploaded anywhere.</p>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<div class="tip-box mt-4">
|
|
184
|
+
<p class="text-sm"><strong>💡 Why iO names?</strong> Instead of ugly hashes like "QmX7k2n...", YAKMESH uses a 256-word
|
|
185
|
+
quantum-themed wordlist to create memorable 3-word codes. Each word encodes 8 bits of the content fingerprint,
|
|
186
|
+
giving you 24 bits of uniqueness - enough for millions of distinct shares.</p>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<!-- Step 3 -->
|
|
191
|
+
<div class="tutorial-card">
|
|
192
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
193
|
+
<span class="step-number">3</span>
|
|
194
|
+
Customize Your Share (Optional)
|
|
195
|
+
</h2>
|
|
196
|
+
<p class="text-gray-300 mb-4">
|
|
197
|
+
The basic share command works great, but you can customize it with additional options:
|
|
198
|
+
</p>
|
|
199
|
+
|
|
200
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Set an Expiration Time</h3>
|
|
201
|
+
<pre><code class="language-bash"># Share expires in 7 days
|
|
202
|
+
yakmesh share vacation-photos/ --expires 7d
|
|
203
|
+
|
|
204
|
+
# Share expires in 24 hours
|
|
205
|
+
yakmesh share vacation-photos/ --expires 24h</code></pre>
|
|
206
|
+
|
|
207
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Limit Number of Downloads</h3>
|
|
208
|
+
<pre><code class="language-bash"># Only allow 3 downloads
|
|
209
|
+
yakmesh share vacation-photos/ --max-downloads 3</code></pre>
|
|
210
|
+
|
|
211
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Password Protect the Share</h3>
|
|
212
|
+
<pre><code class="language-bash"># Require a password to access
|
|
213
|
+
yakmesh share vacation-photos/ --password "secretcode123"</code></pre>
|
|
214
|
+
|
|
215
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Combine Options</h3>
|
|
216
|
+
<pre><code class="language-bash"># Expires in 2 days, max 5 downloads, password protected
|
|
217
|
+
yakmesh share vacation-photos/ --expires 2d --max-downloads 5 --password "familytrip"</code></pre>
|
|
218
|
+
</div>
|
|
219
|
+
|
|
220
|
+
<!-- Step 4 -->
|
|
221
|
+
<div class="tutorial-card">
|
|
222
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
223
|
+
<span class="step-number">4</span>
|
|
224
|
+
Send the Link to Your Friend
|
|
225
|
+
</h2>
|
|
226
|
+
<p class="text-gray-300 mb-4">
|
|
227
|
+
Copy the share link and send it to your friend using any messaging app, email, or however you prefer.
|
|
228
|
+
There are two formats you can use:
|
|
229
|
+
</p>
|
|
230
|
+
|
|
231
|
+
<h3 class="font-semibold mt-4 mb-3 text-gray-200">Full yak:// Link</h3>
|
|
232
|
+
<pre><code class="language-bash">yak://qubit-lattice-prism/vacation-photos</code></pre>
|
|
233
|
+
<p class="text-gray-300 mt-2">
|
|
234
|
+
This link can be clicked if your friend has YAKMESH installed - it opens the download automatically.
|
|
235
|
+
The human-readable words ("qubit-lattice-prism") uniquely identify your content.
|
|
236
|
+
</p>
|
|
237
|
+
|
|
238
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">iO Code (for verbal sharing)</h3>
|
|
239
|
+
<pre><code class="language-bash">qubit-lattice-prism</code></pre>
|
|
240
|
+
<p class="text-gray-300 mt-2">
|
|
241
|
+
Just tell your friend these three words! They can fetch it with:
|
|
242
|
+
</p>
|
|
243
|
+
<pre><code class="language-bash">yakmesh fetch qubit-lattice-prism</code></pre>
|
|
244
|
+
<p class="text-gray-300 mt-2">
|
|
245
|
+
No typing long hashes - just memorable quantum words.
|
|
246
|
+
</p>
|
|
247
|
+
|
|
248
|
+
<div class="warning-box mt-4">
|
|
249
|
+
<p class="text-sm"><strong>⚠️ Important:</strong> Your computer must be online and running YAKMESH for your friend to download the files.
|
|
250
|
+
If you shut down your computer, the share will be temporarily unavailable until you come back online.</p>
|
|
251
|
+
</div>
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<!-- Step 5 -->
|
|
255
|
+
<div class="tutorial-card">
|
|
256
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
257
|
+
<span class="step-number">5</span>
|
|
258
|
+
Your Friend Downloads the Files
|
|
259
|
+
</h2>
|
|
260
|
+
<p class="text-gray-300 mb-4">
|
|
261
|
+
When your friend receives the link, they can download the files using these methods:
|
|
262
|
+
</p>
|
|
263
|
+
|
|
264
|
+
<h3 class="font-semibold mt-4 mb-3 text-gray-200">Method A: Click the Link</h3>
|
|
265
|
+
<p class="text-gray-300 mb-2">
|
|
266
|
+
If they have YAKMESH installed, clicking the <code class="bg-gray-800 px-2 py-1 rounded">yakmesh://</code> link
|
|
267
|
+
will open the download interface automatically.
|
|
268
|
+
</p>
|
|
269
|
+
|
|
270
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Method B: Use the Command Line</h3>
|
|
271
|
+
<pre><code class="language-bash"># Using the iO code (easy to share verbally!)
|
|
272
|
+
yakmesh fetch qubit-lattice-prism
|
|
273
|
+
|
|
274
|
+
# Using the full yak:// link
|
|
275
|
+
yakmesh fetch "yak://qubit-lattice-prism/vacation-photos"
|
|
276
|
+
|
|
277
|
+
# Download to a specific folder
|
|
278
|
+
yakmesh fetch qubit-lattice-prism --output ~/Downloads/vacation-pics/</code></pre>
|
|
279
|
+
|
|
280
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Method C: Use the Dashboard</h3>
|
|
281
|
+
<p class="text-gray-300">
|
|
282
|
+
Open the YAKMESH dashboard, click "Receive Files", and paste the share link or code.
|
|
283
|
+
</p>
|
|
284
|
+
</div>
|
|
285
|
+
|
|
286
|
+
<!-- Managing Shares -->
|
|
287
|
+
<div class="tutorial-card">
|
|
288
|
+
<h2 class="text-xl font-semibold mb-4">
|
|
289
|
+
<span class="step-number">6</span>
|
|
290
|
+
Manage Your Active Shares
|
|
291
|
+
</h2>
|
|
292
|
+
<p class="text-gray-300 mb-4">
|
|
293
|
+
You can view and manage all your active shares using the <code class="bg-gray-800 px-2 py-1 rounded">yakmesh doko</code> commands:
|
|
294
|
+
</p>
|
|
295
|
+
|
|
296
|
+
<h3 class="font-semibold mt-4 mb-3 text-gray-200">List All Active Shares</h3>
|
|
297
|
+
<pre><code class="language-bash">yakmesh share list</code></pre>
|
|
298
|
+
<p class="text-gray-300 mt-2">Output example:</p>
|
|
299
|
+
<pre><code class="language-bash">📋 Your Active Shares:
|
|
300
|
+
|
|
301
|
+
iO Name Description Size Downloads Expires
|
|
302
|
+
─────────────────────────────────────────────────────────────────────────
|
|
303
|
+
qubit-lattice-prism vacation-photos 234.5 MB 2/∞ Never
|
|
304
|
+
photon-cipher-node work-documents 12.3 MB 0/5 2d 14h
|
|
305
|
+
fermion-hash-crystal birthday-video 1.2 GB 1/1 Expired
|
|
306
|
+
|
|
307
|
+
Total: 3 shares (1.45 GB)</code></pre>
|
|
308
|
+
|
|
309
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Get Details About a Specific Share</h3>
|
|
310
|
+
<pre><code class="language-bash">yakmesh share info qubit-lattice-prism</code></pre>
|
|
311
|
+
|
|
312
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Stop Sharing</h3>
|
|
313
|
+
<pre><code class="language-bash"># Stop a specific share
|
|
314
|
+
yakmesh share remove qubit-lattice-prism
|
|
315
|
+
|
|
316
|
+
# Stop all shares
|
|
317
|
+
yakmesh share clear --all</code></pre>
|
|
318
|
+
|
|
319
|
+
<h3 class="font-semibold mt-6 mb-3 text-gray-200">Extend Expiration</h3>
|
|
320
|
+
<pre><code class="language-bash"># Add 7 more days to an expiring share
|
|
321
|
+
yakmesh share extend photon-cipher-node --add 7d</code></pre>
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<!-- How It Works -->
|
|
325
|
+
<div class="tutorial-card">
|
|
326
|
+
<h2 class="text-xl font-semibold mb-4">🔍 How DOKO Links Work</h2>
|
|
327
|
+
<p class="text-gray-300 mb-4">
|
|
328
|
+
Understanding what happens behind the scenes helps you use YAKMESH more effectively:
|
|
329
|
+
</p>
|
|
330
|
+
|
|
331
|
+
<ol class="list-decimal list-inside text-gray-300 space-y-4">
|
|
332
|
+
<li>
|
|
333
|
+
<strong class="text-white">Content Fingerprinting:</strong> When you share a folder, YAKMESH creates a unique cryptographic
|
|
334
|
+
fingerprint of your content. This is then converted to a human-readable <strong>iO name</strong>
|
|
335
|
+
(like "qubit-lattice-prism") that you can easily share verbally.
|
|
336
|
+
</li>
|
|
337
|
+
<li>
|
|
338
|
+
<strong class="text-white">Mesh Registration:</strong> Your node announces to the mesh network that it has this content
|
|
339
|
+
available. Other nodes record this information but don't download the actual files.
|
|
340
|
+
</li>
|
|
341
|
+
<li>
|
|
342
|
+
<strong class="text-white">Direct Connection:</strong> When your friend requests the files, their node finds yours on the
|
|
343
|
+
mesh and establishes a direct encrypted connection. No middleman servers are involved.
|
|
344
|
+
</li>
|
|
345
|
+
<li>
|
|
346
|
+
<strong class="text-white">Chunk Transfer:</strong> Files are sent in small encrypted chunks. If the connection is interrupted,
|
|
347
|
+
the download can resume where it left off.
|
|
348
|
+
</li>
|
|
349
|
+
<li>
|
|
350
|
+
<strong class="text-white">Verification:</strong> Your friend's node verifies that the received content matches the
|
|
351
|
+
fingerprint in the iO name, ensuring nothing was corrupted or tampered with during transfer.
|
|
352
|
+
</li>
|
|
353
|
+
</ol>
|
|
354
|
+
|
|
355
|
+
<div class="tip-box mt-6">
|
|
356
|
+
<p class="text-sm"><strong>💡 Privacy Note:</strong> Only the content hash is visible on the mesh network.
|
|
357
|
+
File names, folder structure, and actual content are encrypted and only accessible to someone with the share link.</p>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
<!-- Troubleshooting -->
|
|
362
|
+
<div class="tutorial-card">
|
|
363
|
+
<h2 class="text-xl font-semibold mb-4">🔧 Troubleshooting</h2>
|
|
364
|
+
|
|
365
|
+
<h3 class="font-semibold mt-4 mb-2 text-gray-200">"Share not found" error</h3>
|
|
366
|
+
<p class="text-gray-300 mb-4">
|
|
367
|
+
This usually means your node is offline. Check that YAKMESH is running with
|
|
368
|
+
<code class="bg-gray-800 px-2 py-1 rounded">yakmesh status</code>.
|
|
369
|
+
</p>
|
|
370
|
+
|
|
371
|
+
<h3 class="font-semibold mt-4 mb-2 text-gray-200">Slow download speeds</h3>
|
|
372
|
+
<p class="text-gray-300 mb-4">
|
|
373
|
+
This depends on your internet upload speed. For large files, consider using
|
|
374
|
+
<code class="bg-gray-800 px-2 py-1 rounded">--replicate</code> to cache copies on other nodes.
|
|
375
|
+
</p>
|
|
376
|
+
|
|
377
|
+
<h3 class="font-semibold mt-4 mb-2 text-gray-200">Friend can't connect</h3>
|
|
378
|
+
<p class="text-gray-300 mb-4">
|
|
379
|
+
Check that both of you are connected to the mesh network. Run
|
|
380
|
+
<code class="bg-gray-800 px-2 py-1 rounded">yakmesh peers</code> to see your connections.
|
|
381
|
+
</p>
|
|
382
|
+
|
|
383
|
+
<h3 class="font-semibold mt-4 mb-2 text-gray-200">Share expired accidentally</h3>
|
|
384
|
+
<p class="text-gray-300 mb-4">
|
|
385
|
+
You can recreate it with the same command. The content hash will be identical since the files haven't changed.
|
|
386
|
+
</p>
|
|
387
|
+
</div>
|
|
388
|
+
|
|
389
|
+
<!-- Summary -->
|
|
390
|
+
<div class="tutorial-card">
|
|
391
|
+
<h2 class="text-xl font-semibold mb-4 theme-accent">🎉 Summary</h2>
|
|
392
|
+
<p class="text-gray-300 mb-4">
|
|
393
|
+
Congratulations! You've learned how to share files with friends using YAKMESH. Here's a quick recap:
|
|
394
|
+
</p>
|
|
395
|
+
<ul class="list-disc list-inside text-gray-300 space-y-2">
|
|
396
|
+
<li><code class="bg-gray-800 px-2 py-1 rounded">yakmesh share [path]</code> - Create a share link</li>
|
|
397
|
+
<li><code class="bg-gray-800 px-2 py-1 rounded">yakmesh doko list</code> - View your active shares</li>
|
|
398
|
+
<li><code class="bg-gray-800 px-2 py-1 rounded">yakmesh fetch [link]</code> - Download shared content</li>
|
|
399
|
+
<li>Files stay on your device - no cloud uploads!</li>
|
|
400
|
+
<li>All transfers are end-to-end encrypted</li>
|
|
401
|
+
</ul>
|
|
402
|
+
</div>
|
|
403
|
+
|
|
404
|
+
<!-- Navigation Footer -->
|
|
405
|
+
<div class="border-t border-mountain-700 mt-12 pt-8">
|
|
406
|
+
<div class="flex flex-col sm:flex-row gap-4">
|
|
407
|
+
<a href="mesh-network.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
|
|
408
|
+
<div class="text-xs text-mountain-400 mb-1">← Previous</div>
|
|
409
|
+
<div class="flex items-center gap-2">
|
|
410
|
+
<span class="text-xl">🕸️</span>
|
|
411
|
+
<span class="font-semibold group-hover:text-emerald-400">Join the Mesh Network</span>
|
|
412
|
+
</div>
|
|
413
|
+
</a>
|
|
414
|
+
<a href="dashboard.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-emerald-500 transition group">
|
|
415
|
+
<div class="text-xs text-mountain-400 mb-1">Next →</div>
|
|
416
|
+
<div class="flex items-center gap-2">
|
|
417
|
+
<span class="text-xl">📊</span>
|
|
418
|
+
<span class="font-semibold group-hover:text-emerald-400">Understanding the Dashboard</span>
|
|
419
|
+
</div>
|
|
420
|
+
</a>
|
|
421
|
+
</div>
|
|
422
|
+
</div>
|
|
423
|
+
</div>
|
|
424
|
+
</main>
|
|
425
|
+
|
|
426
|
+
<script src="../prism.min.js"></script>
|
|
427
|
+
<script src="../prism-javascript.min.js"></script>
|
|
428
|
+
<script src="../prism-bash.min.js"></script>
|
|
429
|
+
<script src="../docs.js"></script>
|
|
430
|
+
</body>
|
|
431
|
+
</html>
|