# Noterich P2P Sync-Tutorial: Kompakter Datenaustausch ohne Cloud > **Sichern Sie Ihre Notizen zwischen den Geräten – ohne Cloud-Speicher.** In einer Zeit, in der Datenschutz immer wichtiger wird, bietet Noterich eine revolutionäre Lösung für den kompakten Datenaustausch zwischen verschiedenen Geräten. Unsere **P2P-Sync-Funktion** ermöglicht den sicheren Austausch von Notizen zwischen den Geräten, ohne auf Cloud-Server zu vertrauen. Ihre Daten bleiben immer Ihnen gehören. ## Warum P2P Sync wählen? Traditionelle Notiz-Apps speichern Ihre Daten auf zentralisierten Servern. Dies birgt Risiken bezüglich der Datenschirmung, Kosten für Abonnements und Abhängigkeit von Drittanbieter-Infrastruktur. Noterich geht einen anderen Weg: ```mermaid graph LR A[Ihr Gerät] <-->|Direct Connection| B[Ihr anderes Gerät] C[Cloud Server] -.->|Nicht erforderlich| A C -.->|Nicht erforderlich| B style A fill:#4CAF50,color:#fff style B fill:#4CAF50,color:#fff style C fill:#9E9E9E,color:#fff,stroke-dasharray: 5 5 ``` ### Hauptvorteile - **🔒 Datenschirmung an erster Stelle**: Ihre Notizen kommen nie mit Drittanbieterservern in Kontakt - **⚡ Schnell und direkt**: Geräte kommunizieren direkt, um den Austausch zu beschleunigen - **💰 Keine Abonnementskosten**: Kostenloser P2P-Austausch ohne Premium-Level - **🌐 Einfach nutzbar überall**: Austausch über lokale Netzwerk oder Internet - **📱 Kompakter Datenaustausch zwischen Plattformen**: Funktioniert zwischen Desktop, Laptop, Tablet und Mobilgeräten ## Wie P2P Sync funktioniert Noterich nutzt **WebRTC-Technologie** in Kombination mit **PeerJS**, um direkte Verbindungen zwischen den Geräten herzustellen. Wenn Sie einen Austausch starten: ```mermaid sequenceDiagram participant D1 als Gerät A (Sender) participant S als Signalisierungsserver participant D2 als Gerät B (Empfänger) D1->>S: Anfrage für Verbindung ID S-->>D1: Erzeugung von Raum-ID D1->>D2: Teilen Sie Verbindungslink (QR/URL) D2->>S: Verbindung über Raum-ID herstellen S-->>D2: Erstellen von Peer-Verbindung D1->>D2: Verschlüsseln und senden der Notizen D2->>D2: Entschlüsseln und importieren der Notizen Note über D1,D2: Direkter verschlüsselter Austausch<br/>Keine Daten gespeichert auf dem Server ``` ### Die Technologie hinter der Kulissen Noterichs P2P-Implementierung nutzt: 1. **PeerJS-Bibliothek**: Handhabt die Komplexität von WebRTC für Browser-Kommunikation 2. **AES-GCM-Verschlüsselung**: Militärisches Verschlüsselungssystem für Ihre Notizdaten 3. **PBKDF2-Schlüsselherleitung**: Sichere, passwortbasierte Verschlüsselungsschlüsselherstellung 4. **MessagePack-Serialisierung**: Effiziente Binärdatenkodierung für schnellen Austausch 5. **IndexedDB-Speicher**: Lokaler-Datenbank für Offline-Zugriffe ## Anfängerhilfe mit P2P Sync ### Voraussetzungen Bevor Sie beginnen, stellen Sie sicher, dass Sie: - ✅ Noterich auf beiden Geräten installiert sind - ✅ Beide Geräte mit dem Internet verbunden sind (oder zur gleichen lokalen Netzwerk) - ✅ Ein modernes Webbrowser (Chrome, Firefox, Edge, Safari) ### Schritt 1: Starten Sie den Austausch vom Ausgangsgerät 1. Öffnen Sie die Notiz, die Sie teilen möchten in Noterich 2. Klicken Sie auf die **Teilen**-Taste in der Toolbar 3. Wählen Sie die Option **"P2P Teilen"** 4. (Optional) Setzen Sie ein Passwort für zusätzliche Sicherheit - Passwörter müssen mindestens 8 Zeichen lang sein - Verwendet AES-256-GCM-Verschlüsselung 5. Warten Sie, bis der P2P-Server initialisiert ist ```mermaid graph TD A[Notiz öffnen] --> B[Klicken Sie auf Teilen-Taste] B --> C[Wählen Sie P2P Teilen] C --> D{Passwort eingeben?} D -->|Ja| E[Eingeben des Passworts ≥8 Zeichen] D -->|Nein| F[Verschlüsselung überspringen] E --> G[Initialisieren des P2P-Servers] F --> G G --> H[Generieren des Teilen-Links und QR-Code] ``` ### Schritt 2: Teilen Sie den Verbindungslink Sobald der P2P-Server gestartet ist, generiert Noterich: - **Ein eindeutiger teilbarer Link** mit Verbindungsparametern - **Ein QR-Code** für schnelles Scannen auf Mobilgeräten Der Link-Format sieht so aus: ``` https://noterich.com/#dbshare=<infoHash>&server=<signaling-server> ``` **Teilungsmethoden:** | Methode | Am besten geeignet | Wie man es macht | |--------|----------|--------| | 🔗 Link kopieren | E-Mail, Messenger-Apps | Klicken Sie auf „Link kopieren“ | | 📱 QR-Code | Mobilgeräte | Scannen mit der Kamera des Geräts | | 📧 E-Mail | Remotere Kooperationspartner | Kopieren Sie den Link in die E-Mail | ### Schritt 3: Empfangen auf dem Zielgerät Auf dem Empfängergerät: 1. **Öffnen Sie den Teilen-Link** - Klicken Sie direkt auf den Link oder - Scannen Sie den QR-Code mit Ihrem Mobilgerät 2. **Überprüfen Sie die eingegangenen Notizen** - Vorausschauen der Notizen-Titel und Metadaten - Überprüfen Sie die Empfängerinformationen 3. **Eingeben Sie das Passwort** (falls verschlüsselt) - Geben Sie das von dem Sender bereitgestellte Passwort ein - Die Daten werden lokal auf Ihrem Gerät entschlüsselt 4. **Wählen Sie den Ziel-Workspace** - Wählen Sie einen bestehenden Werkzeugraum oder - Erstellen Sie einen neuen Werkzeugraum für importierte Notizen 5. **Bestätigen Sie den Import** - Die Notizen werden entschlüsselt und in IndexedDB gespeichert - Der Suchindex wird automatisch wiederhergestellt ```mermaid graph LR A[Link öffnen] --> B[Verbindung mit dem Sender herstellen] B --> C{Verschlüsselt?} C -->|Ja| D[Eingeben des Passworts] C -->|Nein| E[Metadaten empfangen] D --> E E --> F[Notizen vorausschauen] F --> G[Werkzeugraum auswählen] G --> H[Importieren & Indexieren] H --> I[Sync abgeschlossen!] style I fill:#4CAF50,color:#fff ``` ## Fortgeschrittene Funktionen ### Verschlüsselter Austausch Für sensible Notizen bietet Noterich optional End-to-End-Verschlüsselung: **Verschlüsselungsprozess:** ```javascript // Passwort → Verschlüsselungs-Schlüssel (PBKDF2) password + salt → deriveKey() → AES-256-GCM-Schlüssel // Notiz-Daten → Verschlüsselter Buffer noteData + key + iv → encrypt() → encryptedBuffer // Übertragungs-Paket { encryptedBuffer: ArrayBuffer, salt: Uint8Array, // Für Schlüsselherleitung iv: Uint8Array // Initierungsvektor } ``` **Sicherheitsfunktionen:** - 🔐 100.000 PBKDF2-Iterationen für Schlüsselherleitung - 🔐 Zufälliger Salz und IV für jede Übertragung - 🔐 AES-256-GCM-authentifizierter Verschlüsselung - 🔐 Das Passwort wird nie übertragen – nur lokal verwendet ### Batch-Notiz-Sync Mehrere Notizen effizient übertragen: 1. Zugriff auf **Datenbank-Übertragung** aus den Einstellungen 2. Wählen Sie **"P2P Sync"**-Modus 3. Wählen Sie die Notizen, die synchronisiert werden sollen 4. Der Empfänger erhält eine Batch-Vorausschau mit Auswahloptionen **Leistungsoptimierung:** - Die Notizen werden in Teilen übertragen (je 512KB) - Nicht-blockierendes asynchrone Verarbeiten verhindert UI-Verstummung - Verlaufverfolgung mit bytebasiertem Genauigkeitsgrad - Umschaltung jederzeit ohne Datenzerstörung ### Konfliktlösung Bei der Synchronisierung von Notizen, die auf beiden Geräten vorhanden sind: ```mermaid graph TD A[Konflikt erkennen] --> B{Zeitstempel vergleichen} B -->|Lokaler Neuerwerter| C[Lokale Version behalten] B -->|Remote Neuerwerter| D[Konflikt-Dialog anzeigen] D --> E[Version wählen] E --> F[Lokale Version] E --> G[Remote Version] E --> H[Manuell verknüpfen] B -->|Beide gelöscht| I[Überspringen] style C fill:#2196F3,color:#fff style F fill:#2196F3,color:#fff style G fill:#4CAF50,color:#fff ``` **Geschützte Konflikttypen:** - `lokal-neuerwerter`: Ihre Version ist aktueller - `remote-neuerwerter`: Die eingehende Version ist aktueller - `lokal-gelöscht`: Sie haben diese Notiz lokal gelöscht - `remote-gelöscht`: Die Notiz wurde auf dem Gerät des Senders gelöscht - `remote-hergestellt`: Vorher gelöschte Notizen wiederhergestellt ## Fehlerbehebung ### Häufige Probleme & Lösungen #### ❌ „PeerJS-Bibliothek geladen nicht“ **Ursache**: Netzwerkblockierung von PeerJS-CDN oder Signalisierungsserver **Lösungen:** 1. Überprüfen Sie die Internetverbindung 2. Überprüfen Sie, ob der Firewall WebRTC-Verbindungen erlaubt 3. Versuchen Sie ein alternatives Netzwerk (Mobile Hotspot) 4. Stellen Sie sicher, dass der Browser WebRTC unterstützt #### ❌ „Verbindungs-Zeitüberschreitung“ **Ursache**: NAT/Firewall verhindert direkte Verbindung **Lösungen:** 1. Beide Geräte auf derselben Netzwerkverbindung zu haben hilft 2. VPN temporär deaktivieren 3. Überprüfen Sie die Router-WebRTC-Einstellungen 4. Verwenden Sie einen QR-Code für mobile Verbindungen #### ❌ „Entschlüsselung fehlgeschlagen“ **Ursache**: Falsches Passwort oder beschädigter Austausch **Lösungen:** 1. Überprüfen Sie, ob das Passwort genau passt (fallend gegenüber) 2. Erteilen Sie vom Sender einen neuen Teilen-Link an 3. Stellen Sie sicher, dass die Verbindung während des Austauschs stabil ist 4. Versuchen Sie kleinere Batches zu verwenden #### ❌ „Austausch im Gange“-Fehler **Ursache**: Mehrere gleichzeitige Synchronisierungsversuche **Lösungen:** 1. Warten Sie, bis der aktuelle Austausch abgeschlossen ist 2. Schließen Sie andere Noterich-Tabs/Windows 3. Neufahren Sie die Seite und versuchen Sie erneut 4. Löschen Sie den Browser-Cache, wenn der Fehler anhält ### Verbindungsstatus-Indikatoren | Status | Bedeutung | Aktion | |--------|---------|--------| | 🔵 Verbindung herstellen | Direkte Verbindung herstellen | 5-10 Sekunden warten | | 🟡 Vergleich | Untersuchen der Notizunterschiede | Normaler Prozess | | 🟠 Warten auf Benutzer | Passwort oder Bestätigung benötigt | Modul-Dialog überprüfen | | 🟢 Übertragung | Notizen in die Datenbank importieren | Tab nicht schließen | | ✅ Erfolg | Synchronisierung erfolgreich abgeschlossen | Notizen nutzen bereit | | 🔴 Fehler | Verbindung oder Übertragung fehlgeschlagen | Fehlerbeheben | ## Sicherheitsbest Practices ### Ihre Daten schützen Obwohl der P2P-Austausch in sich sicher ist, beachten Sie diese Richtlinien: 1. **Verwenden Sie starke Passwörter** - Mindestens 8 Zeichen (12+ empfohlen) - Mischen Sie Großbuchstaben, Kleinbuchstaben, Zahlen und Symbole - Verwenden Sie nie Passwörter von anderen Diensten 2. **Überprüfen Sie die Empfänger** - Teilen Sie Links nur mit vertrauenswürdigen Geräten - Verwenden Sie QR-Codes für Übertragungen in der Nähe - Vermeiden Sie das Teilen von Links in öffentlichen Kanälen 3. **Überwachen Sie aktive Verbindungen** - Überprüfen Sie während der Synchronisierung verbundene Peer - Herunterfahren nach erfolgreicher Übertragung - Löschen Sie geteilte Links, wenn sie kompromittiert sind 4. **Regelmäßige Backups** - Exportieren Sie wichtige Notizen regelmäßig - Speichern Sie die Backups an einem sicheren Ort - Testen Sie die Wiederherstellungsprozeduren regelmäßig ### Verständnis der Verschlüsselungsgrenzen **Was verschlüsselt ist:** - ✅ Inhalt der Notizen (Text, Formatierung, Metadaten) - ✅ Anhänge und eingebettete Medien - ✅ Datenstruktur während der Übertragung **Was nicht verschlüsselt ist:** - ⚠️ Verbindungsmetadaten (Zeitstempel, Datengröße) - ⚠️ IP-Adressen (sichtbar für den Signalisierungsserver) - ⚠️ Geräteidentifikatoren (für Verbindungsrouting) ## Leistungs-Tipps ### Optimieren Sie die Synchronisierungsgeschwindigkeit 1. **Netzwerkbedingungen** - Gleiche lokale Netzwerk = schnellste Übertragungen - 5GHz-WiFi bevorzugt gegenüber 2.4GHz - Kabelgebundenes Ethernet für Desktop-Geräte 2. **Batch-Größen** - Große Übertragungen: In kleinere Batches aufteilen - Verfolgen Sie den Fortschrittsindikator - Cancelieren und versuchen Sie erneut, wenn das Übertragen gestoppt wird 3. **Browser-Leistung** - Halten Sie die Noterich-Tab während der Synchronisierung aktiv - Schließen Sie unnötige Browser-Tabs - Aktualisieren Sie auf die neueste Browser-Version 4. **Geräteressourcen** - Stellen Sie sicher, dass genügend Speicherplatz vorhanden ist - Schließen Sie memory-intensive-Anwendungen - Neustarten Sie den Browser, wenn die Synchronisierung langsamer wird ## Speichermanagement Noterich implementiert intelligente Batches, um Browser-Abstürze zu verhindern: ```javascript // Asynchrone Batch-Processing mit setTimeout async function asyncBatchProcessor(items, processor, batchSize = 10) { // Prozessiert Items in Batches von 10 // Kontrolle alle 10 ms, um die Benutzerfreundlichkeit zu gewährleisten // Verhindert Blockierung des Hauptthread während großer Importen } ``` **Empfehlungen:** - Beschränken Sie die einzelne Übertragung auf maximal 100 Notizen - Warten Sie 30 Sekunden zwischen großen Batches - Löschen Sie den Browser-Cache regelmäßig ## FAQ ### F: Kann ich mehr als zwei Geräte synchronisieren? **A:** Ja! Starten Sie separate P2P-Sessions für jedes Gerätepaar. Für multi-gerätebasierte Arbeitsabläufe: 1. Synchronisieren Sie Gerät A → Gerät B 2. Dann synchronisieren Sie Gerät B → Gerät C 3. Oder verwenden Sie Gerät A als zentrale Einheit für alle anderen ### F: Funktioniert P2P-Sync offline? **A:** P2P erfordert eine anfängliche Internetverbindung für die Signalisierungsserver-Konnektion. Nach der Verbindungsherstellung: - ✅ Lokale Netzwerk-Übertragungen funktionieren ohne Internet - ✅ Daten werden direkt zwischen den Geräten übertragen - ❌ Anfängliche Verbindung erfordert Zugriff auf den Signalisierungsserver ### F: Was passiert, wenn die Synchronisierung unterbrochen wird? **A:** Noterich handhabt Konflikte elegant: - Teilweise übertragene Notizen werden verworfen - Keine beschädigten Daten gelangen in Ihre Datenbank - Fahren Sie einfach den Synchronisierungsprozess neu fort - Bereits synchronisierte Notizen bleiben unversehrt ### F: Kann ich mit einer anderen Noterich-Instanz synchronisieren? **A:** Absolut! P2P-Sync funktioniert zwischen beliebigen Noterich-Nutzern: - Teilen Sie individuelle Notizen mit Kooperationspartnern - Kein Zusammenhang mit einem Konto erforderlich - Jeder Transfer ist unabhängig und sicher - Perfekt für einmalige Notiz-Teilung ### F: Gibt es eine Dateigröße-Obergrenze? **A:** Praktische Grenzen hängen von: - Browser-Memorie - Netzwerkstabilität - Empfohlene maximale: 50MB pro Sitzung - Größere Übertragungen: In mehrere Batches aufgeteilt ### F: Wie lange ist der Teilen-Link gültig? **A:** Teilen-Links sind sessionbasiert: - Gültig solange die Noterich-Tab offen ist - Gültigkeit endet, wenn der Sender die Tab/Browser schließt - Einmalige Verwendung zur Sicherheit empfohlen - Generieren Sie einen neuen Link für jede Übertragungssitzung ## Vergleich: P2P vs. Cloud-Sync ```mermaid quadrantChart title "Vergleich der Synchronisierungsmethode" x-axis "Niedrigere Datenschirmung" --> "Höhere Datenschirmung" y-axis "Niedrigere Kontrolle" --> "Höhere Kontrolle" quadrant-1 "Noterich P2P" quadrant-2 "Vermeiden" quadrant-3 "Traditionelle Cloud" quadrant-4 "Zentralisierte Dienste" "Noterich P2P": [0.9, 0.9] "Traditionelle Cloud": [0.3, 0.4] "Zentralisierte Dienste": [0.4, 0.3] ``` | Feature | Noterich P2P | Cloud-Sync | |---------|--------------|------------| | **Datenaufbewahrung** | Nur auf den Geräten | Auf Drittanbieter-Servern | | **Datenschirmungsstufe** | Maximale | Abhängig vom Anbieter | | **Kosten** | Kostenlos | Meist abonnieren erforderlich | | **Einrichtungskomplexität** | Moderate | Einfach | | **Synchronisierungsgeschwindigkeit** | Sehr schnell (direkt) | Mittel (über Server) | | **Offline-Zugriff** | Vollständig | Begrenzt | | **Vermittlungsschutz** | Kein | Hohe | | **Datenportabilität** | Vollständig | Begrenzt | ## Praktische Anwendungsfälle ### 📚 Persönliche Wissensbasis Synchronisieren Sie Ihr PKM-System auf: - Heimdesktop für tiefgehende Arbeiten - Laptop für Besprechungssitzungen in Cafés - Tablet für Lesen und Anmerkungen - Handy für schnelle Notizen ### 👥 Team-Koordination Teilen Sie Forschungsnotizen sicher innerhalb der Teams: - Keine IT-Infrastruktur erforderlich - End-to-End-verschlüsselte Übertragungen - Überprüfung durch Übertragungsprotokolle - Einhaltung von Datenschutzregeln ### 🎓 Akademische Forschung Kooperieren Sie an wissenschaftlichen Arbeiten und Literaturübersichten: - Teilen Sie annotierte PDFs und Notizen - Behalten Sie eine lokale Version des Quelltextes - Arbeiten Sie über Universitäts- oder persönliche Geräte - Schützen Sie unveröffentlichte Forschungsergebnisse ### 🏢 Unternehmensumsetzung Implementieren Sie Noterich in Unternehmen mit Datenschutzbedürfnissen: - Keine Daten verlassen das Unternehmensnetzwerk - Funktioniert hinter Firewalls mit Konfiguration - Integriert mit bestehenden Sicherheitsrichtlinien - Reduziert Abhängigkeit von Cloud-Diensten ## Technischer Einblick (Für Entwickler) ### Architekturüberblick ```mermaid graph TB subgraph Sender["Sender-Gerät"] A1[Notiz-Daten] --> A2[MessagePack-Serialisieren] A2 --> A3{verschlüsselt?} A3 -->|Ja| A4[AES-256-GCM-verschlüsseln] A3 -->|Nein| A5[Plaintext] A4 --> A6[Teilen in 512KB] A5 --> A6 A6 --> A7[WebRTC-Datenkanal] end subgraph Empfänger["Empfänger-Gerät"] B1[WebRTC-Datenkanal] --> B2[Teilen der Teile wiederherstellen] B2 --> B3{verschlüsselt?} B3 -->|Ja| B4[AES-256-GCM-dekryptieren] B3 -->|Nein| B5[Plaintext] B4 --> B6[MessagePack-Deräzerialisieren] B5 --> B6 B6 --> B7[IndexedDB-Speicher] B7 --> B8[Indexüberschreiben] end end A7 -.->|Direkte P2P-Verbindung| B1 style A4 fill:#FF5722,color:#fff style B4 fill:#FF5722,color:#fff style A7 fill:#4CAF50,color:#fff style B1 fill:#4CAF50,color:#fff ```