# دليل استخدام P2P Sync من Noterich: توحيد الملاحظات بين الأجهزة دون الحاجة إلى السحابة > **قم بتبادل ملاحظاتك بين الأجهزة بأمان – بدون الحاجة إلى تخزين سحابي.** في عصر حيث أصبحت خصوصية البيانات أكثر أهمية من أي وقت مضى، يقدم Noterich طريقة مبتكرة لتوحيد الملاحظات بين الأجهزة. تسمح وظيفة **P2P (Peer-to-Peer) Sync** لك بمشاركة الملاحظات بين الأجهزة دون الاعتماد على أي خوادم سحابية. بياناتك تظل خاصة بك دائمًا. ## لماذا اختر P2P Sync؟ تخزن تطبيقات تدوين الملاحظات التقليدية بياناتك على خوادم مركزية. هذا يخلق مخاطر تتعلق بخصوصية البيانات، وتكاليف الاشتراك، والاعتماد على البنية التحتية للطرف الثالث. لكن Noterich يتبع طريقة مختلفة: ```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 Sync يستخدم Noterich **تقنية WebRTC** مع **PeerJS** لإقامة اتصالات مباشرة بين الأجهزة. عند بدء التبادل: ```mermaid sequenceDiagram participant D1 as جهاز A (المرسل) participant S as خادم الإشارة participant D2 as جهاز B (المستقبل) D1->>S: طلب اتصال ID S-->>D1: توليد رقم الغرفة D1->>D2: مشاركة رابط الاتصال (QR/URL) D2->>S: الاتصال باستخدام رقم الغرفة S-->>D2: إنشاء اتصال بين الأقران D1->>D2: تشفير وإرسال الملاحظات D2->>D2: فك التشفير وإدخال الملاحظات Note over D1,D2: نقل مشفر مباشر<br/>لا يتم تخزين البيانات على الخادم ``` ### التقنيات وراء الكواليس تستخدم تنفيذية P2P من Noterich: 1. **مكتبة PeerJS**: تتعامل مع تعقيدات WebRTC للتواصل بين المتصفحات 2. **تشفير AES-GCM**: تشفير من نوع العسكري لبيانات الملاحظات 3. **توليد مفاتيح PBKDF2**: توليد مفاتيح تشفير آمنة بناءً على كلمة المرور 4. **تشفير MessagePack**: تشفير بيانات ثنائية فعال للنقل السريع 5. **تخزين IndexedDB**: قاعدة بيانات محلية للوصول دون اتصال بالإنترنت ## البدء باستخدام P2P Sync ### الشروط المسبقة قبل البدء، تأكد من أنك: - ✅ قمت بتثبيت Noterich على كلا الجهازين - ✅ كلا الجهازين متصلان بالإنترنت (أو نفس الشبكة المحلية) - ✅ استخدم متصفحًا حديثًا (Chrome، Firefox، Edge، Safari) ### الخطوة 1: بدء المشاركة من الجهاز الأصلي 1. افتح الملاحظة التي تريد مشاركتها في Noterich 2. اضغط على زر **مشاركة** في شريط الأدوات 3. اختر خيار **"P2P Share"** 4. (اختياري) حدد كلمة مرور للحماية الإضافية - يجب أن تكون الكلمة المرورية مكونة من 8 حروف على الأقل - تستخدم تشفير AES-256-GCM 5. انتظر حتى يتم تهيئة خادم P2P ```mermaid graph TD A[افتح الملاحظة] --> B[اضغط على زر المشاركة] B --> C[اختر P2P Share] C --> D{هل حددت كلمة مرورية؟} D -->|نعم| E[أدخل كلمة المرورية ≥8 حروف] D -->|لا| F[تجاوز التشفير] E --> G[تهيئة خادم P2P] F --> G G --> H[生成 رابط المشاركة ورقم QR] ``` ### الخطوة 2: مشاركة رابط الاتصال بمجرد بدء خادم P2P، يقوم Noterich ب生成: - **رابط مشاركة فريد** يحتوي على معلومات الاتصال - **رقم QR** للقراءة السريعة على الأجهزة المحمولة شكل الرابط يكون كالتالي: ``` https://noterich.com/#dbshare=<infoHash>&server=<signaling-server> ``` **طرق المشاركة:** | طريقة | الأفضل للاستخدام | كيفية الاستخدام | |--------|----------|--------| | 🔗 نسخ الرابط | البريد الإلكتروني، تطبيقات المراسلة | اضغط على زر "نسخ الرابط" | | 📱 رقم QR | الأجهزة المحمولة | قراءة الرقم QR باستخدام الكاميرا | | 📧 البريد الإلكتروني | الشركاء البعيدين | أدخال الرابط في البريد الإلكتروني | ### الخطوة 3: استقبال المعلومات على الجهاز المستهدف على الجهاز المستقبل: 1. **افتح رابط المشاركة** - اضغط على الرابط مباشرة، أو - قراءة الرقم QR باستخدام الكاميرا على الجهاز المحمول 2. **مراجعة الملاحظات الواردة** - تفقد عناوين الملاحظات والبيانات الوصفية - التحقق من معلومات المرسل 3. **إدخال كلمة المرورية** (إذا كانت مشفرة) - إدخال كلمة المرورية المقدمة من المرسل - يتم فك تشفير البيانات محليًا على الجهاز 4. **اختيار العملية المكانية المستهدفة** - اختيار العملية المكانية الموجودة، أو - إنشاء عملية مكانية جديدة لملاحظات المستوردة 5. **التأكيد على الاستيراد** - تتم فك تشفير الملاحظات وتخزينها في IndexedDB - يتم إعادة بناء فهرس البحث تلقائيًا ```mermaid graph LR A[افتح الرابط] --> B[الاتصال بالمرسل] B --> C{هل تم تشفيرها؟} C -->|نعم| D[أدخل كلمة المرورية] C -->|لا| E[استقبال البيانات الوصفية] D --> E E --> F[تفقد الملاحظات] F --> G[اختيار العملية المكانية] G --> H[الاستيراد والتفريز] H --> I[تم التبادل!] style I fill:#4CAF50,color:#fff ``` ## الميزات المتقدمة ### النقل المشفرة للملاحظات الحساسة، يقدم Noterich تشفير نهائي اختياري: **عملية التشفير:** ```javascript // كلمة المرورية → مفتاح التشفير (PBKDF2) password + salt → deriveKey() → مفتاح AES-256-GCM // بيانات الملاحظة → حافظة مشفرة noteData + key + iv → encrypt() → encryptedBuffer // حزمة النقل { encryptedBuffer: ArrayBuffer, salt: Uint8Array, // لإعادة توليد المفتاح iv: Uint8Array // متجه البدء } ``` **ميزات الأمان:** - 🔐 100,000 تكرارات لإعادة توليد المفتاح باستخدام PBKDF2 - 🔐 ملاعق عشوائية ورموز بيانية لكل عملية نقل - 🔐 تشفير معتمد باستخدام AES-256-GCM - 🔐 لا يتم نقل كلمة المرورية أبدًا – تُستخدم محليًا فقط ### نقل الملاحظات بشكل جماعي نقل عدة ملاحظات بكفاءة: 1. الوصول إلى **تخزين قاعدة البيانات** من الإعدادات 2. اختيار وضع **"P2P Sync"** 3. اختيار الملاحظات التي يتم نقلها 4. يقوم المستقبل بعرض تفاصيل الملاحظات مع خيارات الاختيار **تحسين الأداء:** - يتم نقل الملاحظات على قطع (512KB لكل قطعة) - المعالجة غير المتوقفة تمنع تجمد واجهة المستخدم - تتبع التقدم بدقة على مستوى البايت - يمكن إلغاء النقل في أي وقت دون تلف البيانات ### حل النزاعات عند نقل ملاحظات موجودة على جهازين: ```mermaid graph TD A[تحديد النزاع] --> B{مقارنة التواريخ} B -->|النسخة المحلية أحدث| C[الاحتفاظ بالنسخة المحلية] B -->|النسخة البعيدة أحدث| D[عرض نافذة النزاع] D --> E[اختيار النسخة] E --> F[النسخة المحلية] E --> G[النسخة البعيدة] E --> H[الدمج يدويًا] B -->|كلاهما محذوف| I[تجاوز] ``` **أنواع النزاعات والمعالجات:** - `local-newer`: النسخة المحلية أكثر حداثة - `remote-newer`: النسخة البعيدة أكثر حداثة - `local-deleted`: قمت بحذف الملاحظة محليًا - `remote-deleted`: تم حذف الملاحظة على جهاز المرسل - `remote-restored`: تم استرجاع الملاحظة سابقًا ## الحلول التقنية ### المشاكل الشائعة وحلولها #### ❌ "لم يتم تحميل مكتبة PeerJS" **السبب**: حجب الشبكة PeerJS CDN أو خادم الإشارة **الحلول:** 1. التحقق من اتصال الإنترنت 2. التأكد من أن جدار الحماية يسمح باتصالات WebRTC 3. تجربة شبكة بديلة (مثلاً hotspot المحمول) 4. التأكد من أن المتصفح يدعم WebRTC #### ❌ "وقت استجابة الاتصال" **السبب**: NAT/جدار الحماية يمنع الاتصال المباشر **الحلول:** 1. وجود الجهازين على نفس الشبكة يساعد 2. تعطيل VPN مؤقتًا 3. التحقق من إعدادات WebRTC في الراوتر 4. استخدام رمز QR للاتصالات المحمولة #### ❌ "فشل التشفير" **السبب**: كلمة المرورية الخاطئة أو حزمة النقل تالفة **الحلول:** 1. التحقق من أن كلمة المرورية مطابقة تمامًا (تأخذ في الاعتبار الأحرف) 2. طلب رابط مشاركة جديد من المرسل 3. التأكد من وجود اتصال مستقر أثناء النقل 4. تجربة أحجام أكبر من القطع #### ❌ خطأ "التبادل في حالة متقدمة" **السبب**: محاولات متعددة للتبادل في نفس الوقت **الحلول:** 1. الانتظار حتى ينتهي التبادل الحالي 2. إغلاق علامات التبويب/النوافذ الأخرى من Noterich 3. تحديث الصفحة وتجربة مرة أخرى 4. مسح كروم الإعدادات إذا استمرت المشكلة ### مؤشرات حالة الاتصال | الحالة | المعنى | الإجراء | |--------|---------|--------| | 🔵 يتم الاتصال | يتم إنشاء اتصال بين الأقران | انتظر 5-10 ثوان | | 🟡 يتم التحقق | تحليل الاختلافات في الملاحظات | عملية طبيعية | | 🟠 نحتاج إلى كلمة مرورية | حاجة إلى كلمة مرورية أو تأكيد | التحقق من نافذة الطلب | | 🟢 يتم تطبيق | استيراد الملاحظات إلى قاعدة البيانات | لا تغلق النافذة | | ✅ نجاح | تمت عملية التبادل بنجاح | استخدام الملاحظات | | 🔴 خطأ | فشل الاتصال أو النقل | التحقق من حلول | ## الممارسات الأمنية المثلى ### حماية بياناتك على الرغم من أن التبادل P2P آمن بطبيعته، يجب اتباع هذه الإرشادات: 1. **استخدام كلمات مرور قوية** - الحد الأدنى 8 حروف (يُفضل 12+) - خلط الأحرف الكبيرة والصغيرة والأرقام والرموز - عدم إعادة استخدام كلمات المرور من خدمات أخرى 2. **التحقق من المستلمين** - مشاركة الروابط فقط مع الأجهزة الموثوقة - استخدام رموز QR للنقل عند القرب الجسدي - تجنب نشر الروابط في القنوات العامة 3. **مراقبة الاتصالات الفعلية** - التحقق من الأقران المتصلين أثناء عملية التبادل - فصل الاتصال بعد نجاح النقل - إلغاء الروابط المشاركة إذا تعرضت للخطر 4. **النسخ الاحتياطي المنتظم** - تصدير الملاحظات المهمة بشكل دوري - تخزين النسخ الاحتياطية في مكان آمن - اختبار إجراءات الاسترجاع بانتظام ### فهم حدود التشفير **ما يتم تشفيره:** - ✅ محتوى الملاحظة (النص، التنسيق، البيانات الوصفية) - ✅ المرفقات والوسائط المضمنة - ✅ هيكل قاعدة البيانات أثناء النقل **ما لا يتم تشفيره:** - ⚠️ بيانات الاتصال (التوقيت، حجم البيانات) - ⚠️ عناوين IP (متاحة لخادم الإشارة) - ⚠️ معرفات الأجهزة (لتوجيه الاتصالات) ## نصائح أداء ### تحسين سرعة التبادل 1. **ظروف الشبكة** - نفس الشبكة المحلية = أسرع نقلات - يُفضل استخدام واي فاي 5GHz على 2.4GHz - الإنترنت عبر كابل الإيثر للأجهزة الكمبيوتر 2. **أحجام الحزم** - النقل الكبير: تقسيمه إلى حزم أصغر - مراقبة مؤشر التقدم - إلغاء الطلب وإعادة المحاولة إذا تعطلت العملية 3. **أداء المتصفح** - الحفاظ على علامة التبويب من Noterich نشطة أثناء عملية التبادل - إغلاق النوافذ الإضافية غير الضرورية - تحديث المتصفح إلى أحدث إصدار 4. **موارد الجهاز** - التأكد من وجود مساحة تخزين كافية - إغلاق التطبيقات التي تستهلك الكثير من الذاكرة - إعادة تشغيل المتصفح إذا تعطلت عملية النقل ### إدارة الذاكرة يقوم Noterich بتحضير الحزم بذكاء لمنع ارتخاء المتصفح: ```javascript // معالجة الحزم بشكل غير متزامن باستخدام setTimeout async function asyncBatchProcessor(items, processor, batchSize = 10) { // معالجة الحزم بالتتابع كل 10 ثوان // إعطاء التحكم كل 10 ثوان لضمان استمرارية واجهة المستخدم // لمنع توقف العملية الرئيسية أثناء عمليات الاستيراد الكبيرة } ``` **التوصيات:** - الحد من عدد الحزم الواحدة إلى 100 ملاحظة - الانتظار 30 ثانية بين عمليات النقل الكبيرة - مسح كروم الإعدادات بشكل دوري ## الأسئلة الشائعة ### س: هل يمكنني نقل الملاحظات إلى أكثر من جهاز؟ **ج**: نعم! قم بإنشاء جلسات P2P منفصلة لكل زوج من الأجهزة. للعملية المتعددة الأجهزة: 1. نقل جهاز A إلى جهاز B 2. ثم نقل جهاز B إلى جهاز C 3. أو استخدام جهاز A كمركز لجميع الأجهزة الأخرى ### س: هل يعمل P2P Sync دون اتصال بالإنترنت؟ **ج**: P2P يحتاج إلى اتصال بالإنترنت لأجل تأسيس اتصال خادم الإشارة. بعد إنشاء الاتصال: - ✅ يمكن نقل البيانات عبر الشبكة المحلية دون اتصال بالإنترنت - ✅ يتم نقل البيانات مباشرة بين الأجهزة - ❌ يحتاج الاتصال الأولي إلى الوصول إلى خادم الإشارة ### س: ماذا يحدث إذا تعطل النقل؟ **ج**: يتعامل Noterich مع النزاعات بطريقة مرنة: - يتم التخلص من الملاحظات التي تم نقلها جزئيًا - لا يتم إدخال أي بيانات ملوثة إلى قاعدة البيانات - يتم إعادة تشغيل عملية النقل مباشرة - الملاحظات التي تم استيرادها لا تتأثر ### س: هل يمكنني نقل الملاحظات مع مستخدم آخر؟ **ج**: بالطبع! يعمل P2P بين أي مستخدمين من Noterich: - مشاركة الملاحظات الفردية مع الشركاء - لا حاجة لربط الحساب مع أي شخص - كل عملية نقل مستقلة وآمنة - مثالي للتبادلات لمرة واحدة فقط ### س: هل هناك حد أقصى لحجم الملف؟ **ج**: الحدود العملية تعتمد على: - سعة ذاكرة المتصفح - استقرار الشبكة - يُفضل الحد الأقصى 50MB لكل جلسة - يمكن تقسيم الحزم إلى أجزاء أكبر لعملية النقل ### س: كم مدة صلاحية رابط المشاركة؟ **ج**: روابط المشاركة تعمل على أساس الجلسة: - صالحة أثناء بقاء تبويب Noterich مفتوح - تنتهي عند إغلاق تبويب/متصفح المرسل - يُفضل استخدام رابط جديد لكل جلسة نقل ## مقارنة: P2P مقابل Cloud Sync ```mermaid quadrantChart title "مقارنة طرق التبادل" x-axis "خصوصية أقل" --> "خصوصية أعلى" y-axis "تحكم أقل" --> "تحكم أعلى" quadrant-1 "Noterich P2P" quadrant-2 "تجنبها" quadrant-3 "السحابة التقليدية" quadrant-4 "الخدمات المركزية" "Noterich P2P": [0.9, 0.9] "السحابة التقليدية": [0.3, 0.4] "الخدمات المركزية": [0.4, 0.3] ```