# नोटरिच P2P सिंक ट्यूटोरियल: क्लाउड के बिना क्रॉस-डिवाइस सिंकिंग > **अपने नोट्स को विभिन्न डिवाइसों पर सुरक्षित रूप से सिंक करें – क्लाउड स्टोरेज की आवश्यकता नहीं है.** डेटा गोपनीयता बहुत महत्वपूर्ण होने के इस युग में, नोटरिच क्रॉस-डिवाइस सिंकिंग के लिए एक नवीन तरीका प्रस्तुत करता है। हमारा **P2P (पीयर-टू-पीयर) सिंक** फीचर, किसी भी क्लाउड सर्वर पर निर्भर न होकर, आपके डिवाइसों के बीच नोट्स को सुरक्षित रूप से सिंक करने में मदद करता है। आपका डेटा हमेशा आपका ही रहेगा। ## P2P सिंक क्यों चुनें? पारंपरिक नोट-लेयरिंग ऐप्स, आपका डेटा केंद्रीकृत सर्वरों पर संग्रहीत करते हैं। इससे गोपनीयता संबंधी जोखिम, सब्सक्रिप्शन लागत, एवं तृतीय-पक्ष इन्फ्रास्ट्रक्चर पर निर्भरता होती है। नोटरिच एक अलग तरीका अपनाता है: ```mermaid graph LR A[Your Device] <-->|Direct Connection| B[Your Other Device] C[Cloud Server] -.->|Not Required| A C -.->|Not Required| B style A fill:#4CAF50,color:#fff style B fill:#4CAF50,color:#fff style C fill:#9E9E9E,color:#fff,stroke-dasharray: 5 5 ``` ### मुख्य लाभ - **🔒 गोपनीयता पहले**: आपके नोट्स कभी भी तृतीय-पक्ष सर्वरों से संपर्क नहीं करते। - **⚡ तेज़ एवं सीधा संचार**: डिवाइस एक-दूसरे से सीधे संवाद करते हैं, जिससे सिंकिंग तेज़ होती है। - **💰 कोई सब्सक्रिप्शन नहीं**: कोई प्रीमियम लेवल की आवश्यकता नहीं है। - **🌐 कहीं भी काम करता है**: लोकल नेटवर्क या इंटरनेट के जरिए सिंकिंग होती है। - **📱 क्रॉस-प्लेटफॉर्म**: डेस्कटॉप, लैपटॉप, टैबलेट एवं मोबाइल डिवाइसों पर भी काम करता है। ## P2P सिंक कैसे काम करता है? नोटरिच, **WebRTC तकनीक** एवं **PeerJS** का उपयोग करके आपके डिवाइसों के बीच सीधा संचार स्थापित करता है। जब आप सिंकिंग शुरू करते हैं: ```mermaid sequenceDiagram participant D1 as Device A (Sender) participant S as Signaling Server participant D2 as Device B (Receiver) D1->>S: Request connection ID S-->>D1: Generate room ID D1->>D2: Share connection link (QR/URL) D2->>S: Connect using room ID S-->>D2: Establish peer connection D1->>D2: Encrypt & send notes D2->>D2: Decrypt & import notes Note over D1,D2: Direct encrypted transfer<br/>No data stored on server ``` ### पीछे की तकनीकें नोटरिच की P2P कार्यप्रणाली में निम्नलिखित तकनीकें शामिल हैं: 1. **PeerJS लाइब्रेरी**: ब्राउज़र-टू-ब्राउज़र संचार के लिए WebRTC की जटिलताओं को संभालती है। 2. **AES-GCM एन्क्रिप्शन**: आपके नोट डेटा के लिए सैन्य-स्तरीय एन्क्रिप्शन। 3. **PBKDF2 कुंजी उत्पन्नीकरण**: सुरक्षित पासवर्ड-आधारित एन्क्रिप्शन कुंजी उत्पन्न करने की प्रक्रिया। 4. **MessagePack सिरियलाइजेशन**: तेज़ संचार हेतु बाइनरी डेटा का एन्क्रिप्शन। 5. **IndexedDB स्टोरेज**: ऑफलाइन एक्सेस हेतु लोकल-पहले डेटाबेस। ## P2P सिंक कैसे शुरू करें? ### पूर्व-आवश्यकताएँ शुरू करने से पहले, यह सुनिश्चित करें कि: - ✅ दोनों डिवाइसों पर नोटरिच इंस्टॉल है। - ✅ दोनों डिवाइस इंटरनेट से जुड़े हैं (या एक ही लोकल नेटवर्क में)। - ✅ एक आधुनिक वेब ब्राउज़र (Chrome, Firefox, Edge, Safari) उपलब्ध है। ### चरण 1: स्रोत डिवाइस से सिंकिंग शुरू करें 1. नोटरिच में वह नोट खोलें जिसे आप सिंक करना चाहते हैं। 2. टूलबार में **“Share”** बटन पर क्लिक करें। 3. **“P2P Share”** विकल्प चुनें। 4. (वैकल्पिक) अतिरिक्त सुरक्षा हेतु पासवर्ड सेट करें। - पासवर्ड कम से कम 8 अक्षरों का होना चाहिए। - AES-256-GCM एन्क्रिप्शन का उपयोग किया गया है। 5. P2P सर्वर के इनिशियलाइज़ होने का इंतज़ार करें। ```mermaid graph TD A[Open Note] --> B[Click Share Button] B --> C[Select P2P Share] C --> D{Set Password?} D -->|Yes| E[Enter Password ≥8 chars] D -->|No| F[Skip Encryption] E --> G[Initialize P2P Server] F --> G G --> H[Generate Share Link & QR Code] ``` ### चरण 2: संपर्क लिंक साझा करें जब P2P सर्वर शुरू हो जाता है, तो नोटरिच निम्नलिखित करता है: - **एक विशिष्ट साझा करने योग्य लिंक** जिसमें संपर्क पैरामीटर हैं। - **एक QR कोड** जिसका उपयोग मोबाइल डिवाइसों पर स्कैन करके किया जा सकता है। लिंक का फॉर्मेट इस प्रकार है: ``` https://noterich.com/#dbshare=<infoHash>&server=<signaling-server> ``` **साझा करने के तरीके:** | तरीका | सबसे उपयुक्त | कैसे करें? | |--------|----------|--------| | 🔗 लिंक कॉपी करें | ईमेल, मैसेजिंग ऐप्स में | “कॉपी लिंक” बटन पर क्लिक करें। | | 📱 QR कोड | मोबाइल डिवाइसों में | डिवाइस की कैमरे से स्कैन करें। | | 📧 ईमेल | दूरस्थ सहयोगियों के लिए | लिंक को ईमेल में पेस्ट करें। | ### चरण 3: लक्ष्य डिवाइस पर नोट प्राप्त करें लक्ष्य डिवाइस पर: 1. **लिंक खोलें** - सीधे लिंक पर क्लिक करें, या - QR कोड को स्कैन करें। 2. **आने वाले नोटों को देखें** - नोटों के शीर्षक एवं मेटाडेटा देखें। - भेजने वाले व्यक्ति की जानकारी जाँचें। 3. **पासवर्ड दर्ज करें** (यदि एन्क्रिप्टेड है) - भेजने वाले द्वारा दिए गए पासवर्ड दर्ज करें। - डेटा आपके डिवाइस पर स्थानीय रूप से एन्क्रिप्ट हो जाएगा। 4. **गंतव्य वर्कस्पेस चुनें** - मौजूदा वर्कस्पेस चुनें, या - इम्पोर्ट किए गए नोटों हेतु नया वर्कस्पेस बनाएं। 5. **इम्पोर्ट को पुष्ट करें** - नोट्स एन्क्रिप्ट होकर इंडेक्सडब्ल्यूडीई में संग्रहीत हो जाएंगे। - सर्च इंडेक्स स्वचालित रूप से पुनः बन जाएगा। ```mermaid graph LR A[Open Link] --> B[Connect to Sender] B --> C{Encrypted?} C -->|Yes| D[Enter Password] C -->|No| E[Receive Metadata] D --> E E --> F[Preview Notes] F --> G[Select Workspace] G --> H[Import & Index] H --> I[Sync Complete!] style I fill:#4CAF50,color:#fff ``` ## उन्नत विशेषताएँ ### एन्क्रिप्टेड ट्रांसफर संवेदनशील नोटों हेतु, नोटरिच वैकल्पिक एंड-टू-पीयर एन्क्रिप्शन प्रदान करता है: **एन्क्रिप्शन प्रक्रिया:** ```javascript // पासवर्ड → एन्क्रिप्शन कुंजी (PBKDF2) password + salt → deriveKey() → AES-256-GCM key // नोट डेटा → एन्क्रिप्टेड बफर noteData + key + iv → encrypt() → encryptedBuffer // ट्रांसफर पैकेज { encryptedBuffer: ArrayBuffer, salt: Uint8Array, // Key derivation हेतु iv: Uint8Array // Initialization vector } ``` **सुरक्षा विशेषताएँ:** - 🔐 100,000 PBKDF2 इटरेशन्स कुंजी उत्पन्न हेतु - 🔐 प्रत्येक ट्रांसफर हेतु यादृच्छिक सैल्ट एवं आईवी - 🔐 AES-256-GCM प्रमाणित एन्क्रिप्शन - 🔐 पासवर्ड कभी भी प्रसारित नहीं किया जाता – केवल स्थानीय रूप से उपयोग किया जाता है। ### बैच नोट सिंकिंग कई नोटों को एक साथ ट्रांसफर करें: 1. **डेटाबेस ट्रांसफर** सेटिंग्स से उपलब्ध कराएं। 2. **“P2P Sync”** मोड चुनें। 3. ट्रांसफर करने हेतु नोट्स चुनें। 4. रिसीवर बैच प्रीव्यू प्राप्त करेगा। **प्रदर्शन सुधार:** - नोट्स 512KB के बैचों में ट्रांसफर किए जाते हैं। - नॉन-ब्लॉकिंग एसीटीई प्रोसेसिंग से प्रगति रोकी जाती है। - बाइट-स्तरीय अंतर्दृष्टि से प्रगति ट्रैक की जाती है। - कभी भी रद्द करें, बिना डेटा नष्ट होने के। ### संघर्ष समाधान जब दोनों डिवाइसों पर नोट्स सिंक हो रहे हों: ```mermaid graph TD A[Detect Conflict] --> B{Compare Timestamps} B -->|Local Newer| C[Keep Local Version] B -->|Remote Newer| D[Show Conflict Dialog] D --> E[Choose Version] E --> F[Local] E --> G[Remote] E --> H[Merge Manually] B -->|Both Deleted| I[Skip] style C fill:#2196F3,color:#fff style F fill:#2196F3,color:#fff style G fill:#4CAF50,color:#fff style B1 fill:#4CAF50,color:#fff ```