# Noterich P2P Sync သင်တန်းအကြောင်း: ကလောက်ဝန်မလိုဘဲ ကိရိယာများအကြား ချိတ်ဆက်ခြင်း > **သင့်မှတ်စုများကို ကိရိယာများအကြား လုံခြုံစွာ ချိတ်ဆက်နိုင်ပါသည် — ကလောက်ဝဘာသာဖြင့် သိမ်းဆည်းရန် မလိုအပ်ပါ။** ဒေတာပိုင်ဆိုင်မှုကို ယခင်ကထက် ပိုအရေးကြီးသော ခေတ်တွင် Noterich သည် ကိရိယာများအကြား ချိတ်ဆက်ခြင်းအတွက် ဆန်းသစ်သောနည်းလမ်းကို ပေးစွမ်းပါသည်။ ကျွန်ုပ်တို့၏ **P2P (Peer-to-Peer) Sync** လုပ်ဆောင်ချက်သည် ကလောက်ဝဘာသာဖြင့် မည်သည့် ကလောက်ဝစက်များကိုမဆို ချိတ်ဆက်နိုင်ပြီး ကလောက်ဝစက်များအပေါ် မှီခိုအားထားစရာမလိုပါ။ သင့်ဒေတာများသည် အမြဲတမ်း သင့်ပိုင်ဆိုင်နေပါမည်။ ## P2P Sync ကို အဘယ်ကြောင့် ရွေးချယ်သနည်း? ရိုးရာမှတ်စုစွဲအက်ပ်များသည် သင့်ဒေတာများကို ဗဟိုချုပ်ကိုင်မှုရှိသော စက်များပေါ်တွင် သိမ်းဆည်းထားပါသည်။ ဤသည်မှာ ပိုင်ဆိုင်မှုကိုကာကွယ်ခြင်း၊ စာချုပ်ဝင်ကြေးကို ကာကွယ်ခြင်းနှင့် တတိယပုဂ္ဂိုလ်များ၏ အခြေခံအဆောက်အအုံအပေါ် မှီခိုခြင်းတို့ကို ဖြစ်စေပါသည်။ Noterich သည် အခြားနည်းလမ်းတစ်ခုကို အသုံးပြုပါသည်: ```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 ချိတ်ဆက်နိုင်ပါသည်။ - **🌐 နေရာမရွေး ချိတ်ဆက်နိုင်ပါသည်**: ဒေသတွင်းကွန်ရက် သို့မဟုတ် အင်တာနက်မှတဆင့် ချိတ်ဆက်နိုင်ပါသည်။ - **📱 ပလက်ဖောင်းများအကြား ချိတ်ဆက်နိုင်ပါသည်**: ဒေးဗစ်စခရင်း၊ လက်ပ်တော့၊ တက်ဘလက်နှင့် မိုဘိုင်းတို့အကြား ချိတ်ဆက်နိုင်ပါသည်။ ## P2P Sync သည် မည်သို့အလုပ်လုပ်သနည်း? Noterich သည် **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 ``` ### နောက်ကွယ်မှ နည်းပညာများ Noterich ၏ P2P အကောင်အထည်ဖော်မှုသည် အောက်ပါတို့ကို အသုံးပြုပါသည်: 1. **PeerJS Library**: ဘရော့ဘ်များအကြား ဆက်သွယ်မှုအတွက် WebRTC ရှုပ်ထွေးမှုကို ကိုင်တွယ်ပေးပါသည်။ 2. **AES-GCM Encryption**: သင့်မှတ်စုဒေတာများအတွက် စစ်တပ်အဆင့် လျှို့ဝှက်ခြင်းနည်းပညာကို အသုံးပြုပါသည်။ 3. **PBKDF2 Key Derivation**: လုံခြုံသောစကားဝှက်အခြေခံ လျှို့ဝှက်ခြင်းအသုံးပြုမှုကို ကာကွယ်ပေးပါသည်။ 4. **MessagePack Serialization**: အမြန်ဆုံး ဘစ်နည်းပညာဖြင့် ဒေတာများကို ကုဒ်လုပ်ခြင်းကို အသုံးပြုပါသည်။ 5. **IndexedDB Storage**: အော့ဖ်လိုင်းအသုံးပြုနိုင်ရန် ဒေသတွင်းကွန်ဒစ်ဘယ်လ် ဒေတာဘေ့စ်ကို အသုံးပြုပါသည်။ ## P2P Sync ကို စတင်အသုံးပြုခြင်း ### ကြိုတင်လိုအပ်ချက်များ စတင်မည်မီ သင်သည် အောက်ပါတို့ကို ရှိရပါမည်: - ✅ Noterich ကို ကိရိယာနှစ်ခုစလုံးတွင် ထည့်သွင်းထားပါသည်။ - ✅ ကိရိယာနှစ်ခုစလုံးသည် အင်တာနက်နှင့် ချိတ်ဆက်ထားပါသည် (သို့မဟုတ် တူညီသော ဒေသတွင်းကွန်ရက်တွင်)။ - ✅ ခေတ်မီသော ဝဘာသာဖြင့် စတင်သုံးစွဲထားပါသည် (Chrome, Firefox, Edge, Safari)။ ### အဆင့် ၁: ရင်းမြစ်ကိရိယာမှ မျှဝေခြင်းကို စတင်ခြင်း 1. Noterich တွင် မျှဝေလိုသော မှတ်စုကို ဖွင့်ပါ။ 2. တွက်စက်ပေါ်ရှိ **Share** ခလုတ်ကို နှိပ်ပါ။ 3. **"P2P Share"** ရွေးချယ်ချက်ကို ရွေးချယ်ပါ။ 4. (ရွေးချယ်စရာမလိုပါက) လုံခြုံမှုအတွက် စကားဝှက်ကို သတ်မှတ်ပါ။ - စကားဝှက်သည် အနည်းဆုံး ၈ စာလုံးပါရမည်။ - 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] ``` ### အဆင့် ၂: ချိတ်ဆက်မှုလင့်ကို မျှဝေခြင်း P2P စက်က စတင်ပြီးနောက် Noterich သည် အောက်ပါတို့ကို ဖန်တီးပေးပါသည်: - **မျှဝေနိုင်သော သီးခြားလင့်ကို** ပါဝင်သော ချိတ်ဆက်မှုပါအချက်အလက်များကို ဖန်တီးပေးပါသည်။ - **QR code** ကို မိုဘိုင်းကိရိယာများအတွက် အသုံးပြုပါသည်။ လင့်ပုံစံမှာ အောက်ပါအတိုင်းဖြစ်ပါသည်: ``` https://noterich.com/#dbshare=<infoHash>&server=<signaling-server> ``` ### မျှဝေခြင်းနည်းလမ်းများ: | နည်းလမ်း | အကောင်းဆုံးအတွက် | မည်သို့လုပ်ဆောင်ရမည် | |--------|----------|--------| | 🔗 လင့်ကို ကူးယူခြင်း | အီးမေးလ်၊ မက်ဆေ့မီလ်အက်ပ်များဖြင့် | "လင့်ကို ကူးယူ" ခလုတ်ကို နှိပ်ပါ။ | | 📱 QR code | မိုဘိုင်းကိရိယာများ | ကိရိယာကင်မရာဖြင့် စကင်ဖတ်ပါ။ | | 📧 အီးမေးလ် | အဝေးမှ ပူးပေါင်းလုပ်ဆောင်သူများ | လင့်ကို အီးမေးလ်တွင် ကူးယူပါ။ | ### အဆင့် ၃: လက်ခံကိရိယာပေါ်တွင် လက်ခံခြင်း လက်ခံကိရိယာပေါ်တွင်: 1. **မျှဝေမည့်လင့်ကို ဖွင့်ပါ။** - လင့်ကို တိုက်ရိုက်နှိပ်ပါ၊ သို့မဟုတ် - မိုဘိုင်းကိရိယာဖြင့် QR code ကို စကင်ဖတ်ပါ။ 2. **လာရောက်သော မှတ်စုများကို ပြန်ကြည့်ပါ။** - မှတ်စုခေါင်းစဉ်များနှင့် မက်ထရစ်များကို ပြန်ကြည့်ပါ။ - ပေးပို့သူအချက်အလက်များကို စစ်ဆေးပါ။ 3. **စကားဝှက်ထည့်ပါ** (အကယ်၍ လျှို့ဝှက်ထားပါက) - ပေးပို့သူမှ ပေးထားသော စကားဝှက်ကို ထည့်ပါ။ - ဒေတာများကို သင့်ကိရိယာပေါ်တွင် လျှို့ဝှက်ထားပါ။ 4. **ရည်ညွှန်းမှတ်စုအတွက် နေရာကို ရွေးချယ်ပါ**။ - ရှိပြီးသားမှတ်စုများကို ရွေးချယ်ပါ၊ သို့မဟုတ် - ပြန်လည်ထည့်သွင်းရန်အတွက် မှတ်စုအသစ်ကို ဖန်တီးပါ။ 5. **ပြန်လည်ထည့်သွင်းခြင်းကို အတည်ပြုပါ**။ - မှတ်စုများကို လျှို့ဝှက်ပြီး IndexedDB တွင် သိမ်းဆည်းပါ။ - ရှာဖွေရေးမှတ်တမ်းကို အလိုအလျောက် ပြန်လည်တည်ဆောက်ပါ။ ```mermaid graph TD A[Open Link] --> 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] ``` ### အဆင့် ၄: လက်ခံကိရိယာပေါ်တွင် လက်ခံခြင်း လက်ခံကိရိယာပေါ်တွင်: 1. **မျှဝေမည့်လင့်ကို ဖွင့်ပါ။** - လင့်ကို တိုက်ရိုက်နှိပ်ပါ၊ သို့မဟုတ် - မိုဘိုင်းကိရိယာဖြင့် QR code ကို စကင်ဖတ်ပါ။ 2. **လာရောက်သော မှတ်စုများကို ပြန်ကြည့်ပါ။** - မှတ်စုခေါင်းစဉ်များနှင့် မက်ထရစ်များကို ပြန်ကြည့်ပါ။ - ပေးပို့သူအချက်အလက်များကို စစ်ဆေးပါ။ 3. **စကားဝှက်ထည့်ပါ** (အကယ်၍ လျှို့ဝှက်ထားပါက) - ပေးပို့သူမှ ပေးထားသော စကားဝှက်ကို ထည့်ပါ။ - ဒေတာများကို သင့်ကိရိယာပေါ်တွင် လျှို့ဝှက်ထားပါ။ 4. **ရည်ညွှန်းမှတ်စုအတွက် နေရာကို ရွေးချယ်ပါ**။ - ရှိပြီးသားမှတ်စုများကို ရွေးချယ်ပါ၊ သို့မဟုတ် - ပြန်လည်ထည့်သွင်းရန်အတွက် မှတ်စုအသစ်ကို ဖန်တီးပါ။ 5. **ပြန်လည်ထည့်သွင်းခြင်းကို အတည်ပြုပါ**။ - မှတ်စုများကို လျှို့ဝှက်ပြီး IndexedDB တွင် သိမ်းဆည်းပါ။ - ရှာဖွေရေးမှတ်တမ်းကို အလိုအလျောက် ပြန်လည်တည်ဆောက်ပါ။ ```mermaid graph TD 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 ```