# नोटरिच P2P सिंक ट्यूटोरियल: क्लाउडविरहित क्रॉस-डिव्हाइस सिंक > **आपल्या नोट्सना विविध डिव्हाइसेसवर सुरक्षितपणे सिंक करा – क्लाउड स्टोरेजची आवश्यकता नाही.** डेटा गोपनीयता अधिक महत्त्वाची झालेल्या युगात, नोटरिच क्रॉस-डिव्हाइस सिंकिंगसाठी एक नवीन पद्धत देते. आमचे **P2P (पीअर-टू-पीअर) सिंक** फीचर आपल्या डिव्हाइसेसवर नोट्स सहजपणे सिंक करण्यास मदत करते; कोणत्याही क्लाउड सर्व्हरवर अवलंबून नाही. आपली माहिती नेहमीच आपलीच राहते. ## P2P सिंक का वापरा? पारंपारिक नोट-टेकिंग अॅप्स आपली माहिती केंद्रीकृत सर्व्हरवर संग्रहित करतात. यामुळे गोपनीयतेचा धोका, सबस्क्रिप्शनचा खर्च आणि तृतीय पक्षाच्या इन्फ्रास्ट्रक्चरवर अवलंबन निर्माण होते. नोटरिच वेगळा मार्ग वापरते: ```mermaid graph LR A[आपले डिव्हाइस] <-->|डायरेक्ट कनेक्शन| B[आपले दुसरे डिव्हाइस] C[क्लाउड सर्व्हर] -.->|आवश्यक नाही| A C -.->|आवश्यक नाही| B style A fill:#4CAF50,color:#fff style B fill:#4CAF50,color:#fff style C fill:#9E9E9E,color:#fff,stroke-dasharray: 5 5 ``` ### मुख्य फायदे - **🔒 गोपनीयता प्रथम**: आपल्या नोट्स कधीही क्लाउड सर्व्हरवर जात नाहीत. - **⚡ वेगवान आणि थेट**: डिव्हाइसेस थेटपणे संवाद करतात, त्यामुळे सिंकिंग वेगवान होते. - **💰 कोणतेही सबस्क्रिप्शन नाही**: प्रीमियम वर्गांशिवाय मोफत P2P सिंकिंग. - **🌐 कुठेही कार्य करते**: लोकल नेटवर्क किंवा इंटरनेटवर सिंकिंग. - **📱 क्रॉस-प्लॅटफॉर्म**: डेस्कटॉप, लॅपटॉप, टॅबलेट आणि मोबाईलवर कार्य करते. ## P2P सिंक कसे कार्य करते? नोटरिच **WebRTC टेक्नॉलॉजी** आणि **PeerJS** वापरून आपल्या डिव्हाइसेसवर थेट कनेक्शन स्थापित करते. जेव्हा आपण सिंकिंग सुरू करता: ```mermaid sequenceDiagram participant D1 as डिव्हाइस A (प्रेसर) participant S as सिग्नलिंग सर्व्हर participant D2 as डिव्हाइस B (रिसीवर) D1->>S: कनेक्शन ID मागितले S-->>D1: रूम ID तयार केले D1->>D2: कनेक्शन लिंक शेअर केले (QR/URL) D2->>S: रूम ID वापरून कनेक्शन स्थापित केले S-->>D2: पीअर कनेक्शन स्थापित केले D1->>D2: नोट्स एनक्रिप्ट केल्या आणि पाठवल्या D2->>D2: नोट्स डिक्रिप्ट केल्या आणि इम्पोर्ट केल्या नोट्स D1, D2 वर थेट एनक्रिप्टेड ट्रान्सफर झाले<br/>सर्व्हरवर कोणतीही माहिती संग्रहित नाही. ``` ### पार्श्वभूमीतील तंत्रज्ञान नोटरिचचे 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[नोट उघडा] --> B[Share बटणावर क्लिक करा] B --> C[P2P Share निवडा] C --> D{पासवर्ड सेट केला का?} D -->|होय| E[पासवर्ड टाइप करा ≥8 अक्षरे] D -->|नाही| F[एनक्रिप्शन टाळा] E --> G[P2P सर्व्हर इनिशियलाइज करा] F --> G G --> H[साझा लिंक आणि QR कोड तयार करा] ``` ### पायरी 2: कनेक्शन लिंक साझा करा जेव्हा P2P सर्व्हर सुरू होतो, तेव्हा नोटरिच खालील गोष्टी तयार करते: - **विशिष्ट साझा लिंक**: कनेक्शन पॅरामीटर्स असलेला लिंक. - **QR कोड**: मोबाईल डिव्हाइससाठी सहजपणे स्कॅन करता येणारा कोड. लिंकचा फॉरमॅट असा असतो: ``` https://noterich.com/#dbshare=<infoHash>&server=<signaling-server> ``` **साझा करण्याच्या पद्धती:** | पद्धत | सर्वोत्तम वापर | कसे करावे | |--------|----------|--------| | 🔗 लिंक कॉपी करा | ईमेल, मेसेजिंग अॅप्ससाठी | “लिंक कॉपी” बटणावर क्लिक करा | | 📱 QR कोड | मोबाईल डिव्हाइससाठी | डिव्हाइस कॅमेऱ्याने स्कॅन करा | | 📧 ईमेल | दूरस्थ सहकारी | लिंक ईमेलमध्ये पेस्ट करा | ### पायरी 3: लक्ष्य डिव्हाइसवर प्राप्त करा लक्ष्य डिव्हाइसवर: 1. **साझा लिंक उघडा** - थेट लिंकवर क्लिक करा, किंवा - QR कोड स्कॅन करा. 2. **आलेल्या नोट्स तपासा** - नोटची शीर्षके आणि मेटाडेटा पाहा. - पाठवणाऱ्याची माहिती तपासा. 3. **पासवर्ड टाका** (जर एनक्रिप्ट केले असेल तर) - पाठवणाऱ्याने दिलेला पासवर्ड टाका. - डेटा आपल्या डिव्हाइसवर डिक्रिप्ट होते. 4. **गंतव्य कार्यस्थान निवडा** - विद्यमान कार्यस्थान निवडा, किंवा - इम्पोर्ट केलेल्या नोट्ससाठी नवीन कार्यस्थान तयार करा. 5. **इम्पोर्ट निश्चित करा** - नोट्स डिक्रिप्ट होऊन इंडेक्स्डबुकमध्ये संग्रहित होतात. - सर्च इंडेक्स पुन्हा तयार होतो. ```mermaid graph LR A[लिंक उघडा] --> B[कनेक्शन बटणावर क्लिक करा] B --> C[पीअर-टू-पीअर साझा निवडा] C --> D{पासवर्ड सेट केला का?} D -->|होय| E[पासवर्ड टाइप करा ≥8 अक्षरे] D -->|नाही| F[एनक्रिप्शन टाळा] E --> G[पीअर-टू-पीअर सर्व्हर इनिशियलाइज करा] F --> G G --> H[साझा लिंक आणि QR कोड तयार करा] ``` ### अभ्यासक्षमता ### एनक्रिप्टेड ट्रान्सफर संवेदनशील नोट्ससाठी, नोटरिच पर्यायी एंड-टू-पीअर एनक्रिप्शन देते: **एनक्रिप्शन प्रक्रिया:** ```javascript // पासवर्ड → एनक्रिप्शन की (PBKDF2) password + salt → deriveKey() → AES-256-GCM की ``` **सुरक्षा वैशिष्ट्ये:** - 🔐 100,000 PBKDF2 इटरेशन्स की की डेरिव्हरनसाठी - 🔐 प्रत्येक ट्रान्सफरसाठी रँडम सॉल्ट आणि IV - 🔐 AES-256-GCM प्रमाणित एनक्रिप्शन - 🔐 पासवर्ड कधीही प्रसारित होत नाही – केवळ स्थानिकपणे वापरले जाते. ### बॅच नोट सिंकिंग अनेक नोट्स एकाच वेळी ट्रान्सफर करा: 1. सेटिंगमधून **डेटाबेस ट्रान्सफर** वापरा. 2. **"P2P सिंक"** मोड निवडा. 3. सिंक करायच्या नोट्स निवडा. 4. रिसीवर बॅच प्रीव्ह्यूसह मिळते. **परफॉर्मन्स ऑप्टिमायझेशन:** - नोट्स 512KB च्या बॅचमध्ये ट्रान्सफर केल्या जातात. - नॉन-ब्लॉकिंग असिंक्ट प्रोसेसमुळे यूआर्ड ट्रान्सफर टाळता येते. - बाइट-स्तरीय अचूकतेने प्रगती मोजली जाते. - कोणत्याही वेळी रद्द करता येते, कोणतीही डेटा नुकसान होत नाही. ### संघर्ष निवारण जेव्हा दोन्ही डिव्हाइसेसवर नोट्स असतात: ```mermaid graph TD A[संघर्ष ओळखा] --> B{टाइमस्टॅम्प तुलना करा} B -->|लोकल नवीन| C[लोकल आवृत्ती ठेवा] B -->|रिमोट नवीन| D[संघर्ष संदेश दाखवा] D --> E[आवृत्ती निवडा] E --> F[लोकल] E --> G[रिमोट] E --> H[मॅन्युअल मर्ज करा] B -->|दोन्ही हटवले| I[टाळा] style C fill:#2196F3,color:#fff style F fill:#2196F3,color:#fff style G fill:#4CAF50,color:#fff style H fill:#4CAF50,color:#fff ```