# P2P Sync Tutorial: Cross-Device Without Cloud
> **Sync your notes across devices securely — no cloud storage required.**
Sa isang panahon kung saan ang privacy ng data ay mas mahalaga kaysa dati, nag-aalok ang Noterich ng isang makabagong paraan para sa cross-device synchronization. Ang aming **P2P (Peer-to-Peer) Sync** feature ay nagpapahintulot sa iyong mga device na magbahagi ng mga tala nang walang pag-asa sa anumang cloud server. Ang iyong data ay mananatiling sa iyo — palagi.
## Bakit P2P Sync?
Ang mga tradisyonal na app para sa pagtatala ng tala ay nag-iimbak ng iyong data sa mga centralized na server. Ito ay naglalagay sa atin sa potensyal na panganib sa privacy, gastos sa subscription, at pag-asa sa imprastraktura ng third-party. Ang Noterich ay gumagamit ng ibang paraan:
```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
```
### Mga Pangunahing Bentahe
- **🔒 Privacy First**: Ang iyong mga tala ay hindi kailanman makakarating sa mga third-party server
- **⚡ Fast & Direct**: Ang mga device ay direktang nag-uugnayan para sa mas mabilis na synchronization
- **💰 No Subscription**: Libreng P2P sync nang walang premium tiers
- **🌐 Works Anywhere**: Sync sa pamamagitan ng local network o internet
- **📱 Cross-Platform**: gumagana sa desktop, laptop, tablet, at mobile
## Paano gumagana ang P2P Sync
Ginagamit ng Noterich ang **WebRTC technology** kasama ang **PeerJS** upang makabuo ng direktang koneksyon sa pagitan ng iyong mga device. Kapag ikaw ay nagsimula ng synchronization:
```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
```
### Ang Teknolohiya sa Likod ng Scenes
Ang P2P implementation ng Noterich ay gumagamit ng:
1. **PeerJS Library**: Naghawak ng komplikadong WebRTC para sa komunikasyon sa pagitan ng browser
2. **AES-GCM Encryption**: Militar-grade encryption para sa iyong mga tala ng data
3. **PBKDF2 Key Derivation**: Secure password-based encryption key generation
4. **MessagePack Serialization**: Epektibong binary data encoding para sa mabilis na transfer
5. **IndexedDB Storage**: Local-first database para sa offline access
## Pagsisimula sa P2P Sync
### Mga Prerequisite
Bago ka magsimula, tiyakin na mayroon kang:
- ✅ Naka-install ang Noterich sa parehong device
- ✅ Ang parehong device ay nakakonekta sa internet (o pareho sa local network)
- ✅ Isang modernong web browser (Chrome, Firefox, Edge, Safari)
### Hakbang 1: Simulan ang Pagbabahagi mula sa Source Device
1. Buksan ang tala na gusto mong ibahagi sa Noterich
2. I-click ang **Share** button sa toolbar
3. Piliin ang **"P2P Share"** option
4. (Opsyonal) Mag-set ng password para sa karagdagang seguridad
- Ang mga password ay dapat may hindi kukulangin sa 8 characters
- Ginagamit ang AES-256-GCM encryption
5. Maghintay hanggang ang P2P server ay makapag-initialize
```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]
```
### Hakbang 2: Ibahagi ang Connection Link
Kapag nagsimula na ang P2P server, gumagawa ang Noterich ng:
- **Isang natatanging shareable link** na naglalaman ng mga parameter ng koneksyon
- **Isang QR code** para sa mabilis na mobile scanning
Ang format ng link ay ganito:
```
https://noterich.com/#dbshare=<infoHash>&server=<signaling-server>
```
**Mga Paraan ng Pagbabahagi:**
| Paraan | Pinakamainam para sa | Paano gawin |
|--------|----------|--------|
| 🔗 Kopyahin ang Link | Email, messaging apps | I-click ang "Copy Link" button |
| 📱 QR Code | Mobile devices | Scan gamit ang camera ng device |
| 📧 Email | Remote collaborators | I-paste ang link sa email |
### Hakbang 3: Makatanggap sa Target Device
Sa receiving device:
1. **Buksan ang share link**
- I-click ang link nang direkta, O
- Scan ang QR code gamit ang mobile device
2. **Tingnan ang mga dumating na tala**
- Preview ang mga title at metadata ng tala
- Siguradong tiyakin ang impormasyon ng sender
3. **I-enter ang password** (kung naka-encrypt)
- I-input ang password na ibinigay ng sender
- Ang data ay de-encrypt sa lokal sa iyong device
4. **Piliin ang destinasyong workspace**
- Pumili ng existing workspace, O
- Lumikha ng bagong workspace para sa mga imported na tala
5. **Kumpirmahin ang import**
- Ang mga tala ay de-encrypt at nai-save sa IndexedDB
- Ang search index ay muling nabubuo nang awtomatiko
```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
```
## Mga Advanced na Feature
### Naka-encrypt na Transfers
Para sa mga sensitibong tala, nag-aalok ang Noterich ng opsyonal na end-to-end encryption:
**Proseso ng Encryption:**
```javascript
// Password → Encryption Key (PBKDF2)
password + salt → deriveKey() → AES-256-GCM key
// Note Data → Encrypted Buffer
noteData + key + iv → encrypt() → encryptedBuffer
// Transfer Package
{
encryptedBuffer: ArrayBuffer,
salt: Uint8Array, // Para sa key derivation
iv: Uint8Array // Initialization vector
}
```
**Mga Security Feature:**
- 🔐 100,000 PBKDF2 iterations para sa key derivation
- 🔐 Random salt at IV para sa bawat transfer
- 🔐 AES-256-GCM authenticated encryption
- 🔐 Ang password ay hindi kailanman ipinapadala — ginagamit lamang sa lokal
### Batch Note Sync
I-transfer nang epektibo ang maraming tala:
1. Akses ang **Database Transfer** mula sa settings
2. Piliin ang **"P2P Sync"** mode
3. Pumili ng mga tala na sasabayin
4. Ang receiver ay makakakuha ng batch preview na may mga opsyon sa pagpili
**Optimization ng Performance:**
- Ang mga tala ay inililipat sa mga chunk (512KB bawat isa)
- Non-blocking async processing ay pumipigil sa UI freeze
- Pagtatala ng progress na may precision sa byte-level
- I-cancel anumang oras nang walang data corruption
### Conflict Resolution
Kapag sinusabay ang mga tala na umiiral sa parehong device:
```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
```
**Mga Conflict Type na Hinaharap:**
- `local-newer`: Ang iyong bersyon ay mas bago
- `remote-newer`: Ang incoming version ay mas bago
- `local-deleted`: I-deleted mo ang tala sa lokal
- `remote-deleted`: Ang tala ay nai-delete sa device ng sender
- `remote-restored`: Ang dating deleted na tala ay na-rerestore
## Troubleshooting
### Karaniwang Mga Problema at Solusyon
#### ❌ "PeerJS library not loaded"
**Cause**: Network blocking ng PeerJS CDN o signaling server
**Solusyon:**
1. Tingnan ang internet connection
2. Siguradong pinapayagan ng firewall ang WebRTC connections
3. Subukan ang alternatibong network (mobile hotspot)
4. Siguraduhing suportado ng browser ang WebRTC
#### ❌ "Connection timeout"
**Cause**: NAT/Firewall na pumipigil sa direktang koneksyon
**Solusyon:**
1. Ang parehong device ay nasa parehong network ay nakatutulong
2. I-disable ang VPN pansamantala
3. Tingnan ang mga setting ng WebRTC ng router
4. Gamitin ang QR code para sa mobile connections
#### ❌ "Decryption failed"
**Cause**: Maling password o corrupted na transfer
**Solusyon:**
1. Siguradong tiyakin na ang password ay eksaktong tumutugma (case-sensitive)
2. Humingi ng bagong share link mula sa sender
3. Siguraduhing stable ang koneksyon habang nag-transfer
4. Subukan ang mas maliit na batch sizes
#### ❌ "Sync in progress" error
**Cause**: Maraming simultaneous sync attempts
**Solusyon:**
1. Maghintay hanggang matapos ang kasalukuyang synchronization
2. I-close ang ibang Noterich tabs/windows
3. I-refresh ang page at subukan muli
4. I-lockdown ang browser cache kung patuloy
### Mga Indikasyon ng Koneksyon
| Status | Kahulugan | Aksyon |
|--------|---------|--------|
| 🔵 Connecting | Nagtatag ng peer connection | Maghintay ng 5-10 segundo |
| 🟡 Comparing | Sinusuri ang mga pagkakaiba ng tala | Normal na proseso |
| 🟠 Waiting-for-user | Kailangan ng password o confirmation | Tingnan ang modal dialogs |
| 🟢 Applying | I-import ang mga tala sa database | Huwag isara ang tab |
| ✅ Success | Naging matagumpay ang synchronization | Handa nang gamitin ang mga tala |
| 🔴 Error | Nangyari ang koneksyon o transfer | Tingnan ang troubleshooting |
## Mga Security Best Practices
### Proteksyon ng Iyong Data
Bagaman ang P2P sync ay likas na ligtas, sundin ang mga sumusunod na alituntunin:
1. **Gumamit ng Matatag na mga Password**
- Minimum 8 characters (12+ recommended)
- Pagsamahin ang uppercase, lowercase, numbers, symbols
- Huwag ulitin ang mga password mula sa ibang services
2. **Suriin ang mga Recipient**
- Ibahagi lamang ang links sa mga trusted na device
- Gamitin ang QR code para sa physical proximity transfers
- Iwasan ang pag-post ng links sa mga public channels
3. **Subaybayan ang Aktibong Koneksyon**
- Tingnan ang mga connected peer habang nag-sync
- I-disconnect matapos ang matagumpay na transfer
- I-revoke ang shared links kung naging compromised
4. **Regular na Backups**
- I-export ang mga mahahalagang tala paminsan-minsan
- Itago ang mga backup sa isang secure na lugar
- Subukan ang mga proseso ng restoration paminsan-minsan
### Pag-unawa sa mga Limitasyon ng Encryption
**Ano ang naka-encrypt:**
- ✅ Laman ng tala (text, formatting, metadata)
- ✅ Mga attachment at embedded media
- ✅ Estruktura ng database habang nag-transfer
**Ano ang hindi naka-encrypt:**
- ⚠️ Mga metadata ng koneksyon (timing, data size)
- ⚠️ Mga IP address (visible sa signaling server)
- ⚠️ Mga device identifier (para sa routing ng koneksyon)
## Mga Performance Tips
### Optimize ang Sync Speed
1. **Mga kondisyon ng Network**
- Parehong local network = pinakamabilis na transfer
- Mas mainam ang 5GHz WiFi kaysa sa 2.4GHz
- Wired Ethernet para sa desktop devices
2. **Mga Batch Sizes**
- Malalaking transfer: Split sa mas maliliit na batch
- Tingnan ang progress indicator
- I-cancel at subukan muli kung nahuli
3. **Performance ng Browser**
- Panatilihing aktibo ang Noterich tab habang nag-sync
- I-close ang mga hindi kinakailangang browser tabs
- I-update sa pinakabagong bersyon ng browser
4. **Mga Resources ng Device**
- Siguraduhing may sapat na storage space
- I-disconnect ang mga application na nangangailangan ng maraming memory
- I-restart ang browser kung nahuli ang sync
## Memory Management
Ginagamit ng Noterich ang smart batching upang maiwasan ang browser crash:
```javascript
// Async batch processing with setTimeout yielding
async function asyncBatchProcessor(items, processor, batchSize = 10) {
// Processes items in batches of 10
// Yields control every 10ms para manatiling responsive ang UI
// Para maiwasan ang pag-block ng main thread sa panahon ng malalaking import
}
```
**Mga Rekomendasyon:**
- Limitahan ang isang transfer sa 100 notes maximum
- Maghintay ng 30 segundo sa pagitan ng malalaking batch syncs
- I-lockdown ang browser cache paminsan-minsan
## FAQ
### Q: Maaari ba akong mag-sync sa higit sa dalawang device?
**A:** Oo! Simulan ang separate P2P sessions para sa bawat device pair. Para sa multi-device workflows:
1. Sync Device A → Device B
2. Pagkatapos ay sync Device B → Device C
3. O gumamit ang Device A bilang central hub para sa lahat ng iba pa
### Q: Gumagana ba ang P2P sync offline?
**A:** Ang P2P ay nangangailangan ng paunang internet connection para sa signaling server handshake. Pagkatapos ma-set up:
- ✅ Ang local network transfer ay gumagana nang walang internet
- ✅ Ang data ay direktang nagte-transfer sa pagitan ng mga device
- ❌ Ang paunang koneksyon ay nangangailangan ng access sa signaling server
### Q: Ano ang mangyayari kung ma-interrupt ang synchronization?
**A:** Ang Noterich ay mahusay na humaharap sa mga interbensyon:
- Ang mga bahaging transferred ay itatapon
- Walang corrupted na data ang makakapasok sa iyong database
- Magsimula lamang muli ang proseso ng synchronization
- Ang mga na-sync na tala ay mananatiling hindi nagbabago
### Q: Maaari ba akong mag-sync sa isang Noterich instance ng ibang tao?
**A:** Oo! Ang P2P sync ay gumagana sa pagitan ng anumang Noterich user:
- Ibahagi ang mga indibidwal na tala sa mga collaborator
- Hindi kailangan ang account linkage
- Bawat transfer ay independent at secure
- Perpekto para sa one-time note sharing
### Q: Mayroon bang limitasyon sa laki ng file?
**A:** Ang practical limitasyon ay nakadepende sa:
- Memory availability ng browser
- Stability ng network
- Recommended max: 50MB bawat session
- Mas malalaking transfer: Split sa multiple batches
### Q: Gaano katagal nananatiling valid ang share links?
**A:** Ang mga share links ay session-based:
- Valid habang bukas ang Noterich tab ng sender
- Aalis ang valididad kapag nagsara ang sender ng tab/browser
- Inirerekomenda ang one-time use para sa seguridad
- Gumawa ng bagong link para sa bawat transfer session
## Comparison: P2P vs Cloud Sync
```mermaid
quadrantChart
title "Sync Method Comparison"
x-axis "Lower Privacy" --> "Higher Privacy"
y-axis "Lower Control" --> "Higher Control"
quadrant-1 "Noterich P2P"
quadrant-2 "Avoid"
quadrant-3 "Traditional Cloud"
quadrant-4 "Centralized Services"
"Noterich P2P": [0.9, 0.9]
"Traditional Cloud": [0.3, 0.4]
"Centralized Services": [0.4, 0.3]
```
| Feature | Noterich P2P | Cloud Sync |
|---------|--------------|------------|
| **Data Storage** | Iyong mga device lamang | Third-party servers |
| **Privacy Level** | Maximum | Depende sa provider |
| **Cost** | Libre | Kadalasan ay subscription-based |
| **Complexidad ng Pag-setup** | Moderate | Simple |
| **Sync Speed** | Napakabilis (direct) | Medium (sa pamamagitan ng server) |
| **Offline Access** | Buo | Limitado |
| **Vendor Lock-in** | Wala | Malaki |
| **Portability ng Data** | Buo | Restricted |
## Mga Real-World Use Cases
### 📚 Personal Knowledge Base
Sync ang iyong PKM (Personal Knowledge Management) system sa:
- Desktop sa bahay para sa malalim na trabaho
- Laptop para sa mga sesyon sa coffee shop
- Tablet para sa pagbabasa at pag-annotate
- Phone para sa mabilis na pagkuha ng data
### 👥 Team Collaboration
Ibahagi nang ligtas ang mga tala ng pananaliksik sa loob ng mga team:
- Walang kinakailangang IT infrastructure
- End-to-end encrypted transfers
- Audit trail sa pamamagitan ng mga log ng transfer
- Sumusunod sa mga privacy regulation
### 🎓 Academic Research
Magsanay sa mga papel at literature review:
- Ibahagi ang mga annotated na PDF at tala
- Panatilihing lokal na history ng version
- Magtrabaho sa mga university/personal device
- Protektahan ang hindi pa nailathalang pananaliksik
### 🏢 Enterprise Deployment
I-deploy ang Noterich sa mga organisasyon na may privacy-conscious na mga polisiya:
- Walang data ang lumalabas sa network ng kompanya
- Gumagana sa likod ng mga firewall na may configuration
- I-integrate sa mga umiiral na security policies
- Nabawasan ang dependence sa cloud services
## Technical Deep Dive (Para sa Developers)
### Overview ng Architecture
```mermaid
graph TB
subgraph Sender["Sender Device"]
A1[Note Data] --> A2[MessagePack Serialize]
A2 --> A3{Encrypted?}
A3 -->|Yes| A4[AES-256-GCM Encrypt]
A3 -->|No| A5[Plain Binary]
A4 --> A6[Chunk into 512KB]
A5 --> A6
A6 --> A7[WebRTC Data Channel]
end
subgraph Receiver["Receiver Device"]
B1[WebRTC Data Channel] --> B2[Reassemble Chunks]
B2 --> B3{Encrypted?}
B3 -->|Yes| B4[AES-256-GCM Decrypt]
B3 -->|No| B5[Plain Binary]
B4 --> B6[MessagePack Deserialize]
B5 --> B6
B6 --> B7[IndexedDB Storage]
B7 --> B8[Search Index Rebuild]
end
Tutorial sa P2P Sync ng NoteRich: Cross-Device Nang Walang Cloud
P2P Sync Tutorial: CrossDevice Without Cloud Sync your notes across devices securely — no cloud storage required. Sa isa...
Koponan ng NoteRich
Mga Tagapagtaguyod ng Produkto at Privacy
Jun 03, 2026
43 min na pagbasa
Handa na bang baguhin ang iyong workflow?
Ang Iyong Pribado, Pinapatakbo ng AI
Sentro ng Pagtatala ay Naghihintay
Sumali sa libu-libong gumagamit na nagtitiwala sa NoteRich para sa pribado at makapangyarihang pagtatala. Subukan sa iyong browser — walang pag-install, walang credit card, ang iyong mga tala ay hindi lalabas sa iyong device.
Walang credit card
Gumagana sa browser
100% lokal na tala
Mga Mapagkukunan at Gabay
Tuklasin ang aming mga malalalim na artikulo tungkol sa lokal na pagtatala, arkitektura ng privacy, at mga advanced na workflow ng produktibidad.
- Gawing AI memory ang iyong mga tala sa loob ng NoteRich
- Gawing Visual na Infographics ang Teksto gamit ang NoteRich AI
- Tutorial sa Mga Workspace at Advanced na Paghahanap ng NoteRich
- Rich Text vs Markdown ng NoteRich: Paano Lumipat at Gamitin ang Pareho
- Tutorial sa P2P Sync ng NoteRich: Cross-Device Nang Walang Cloud
- Tutorial sa OCR ng NoteRich: I-scan ang mga Papel na Tala Patungo sa Digital na Teksto
- Ipinaliwanag ang Lokal-Muna na AES-GCM Encryption ng NoteRich
- Tutorial sa Lokal na Knowledge Base RAG ng NoteRich
- Gabay sa mga Equation ng LaTeX Math ng NoteRich: Paano Sumulat ng mga Formula
- Mga Keyboard Shortcut at Mga Tip sa Produktibidad ng NoteRich
- Mga Tampok at Benepisyo ng NoteRich para sa Online na Pagtatala
- Paano Gamitin ang NoteRich Privacy AI upang Buuin nang Pribado ang mga Dokumento
- Paano Gamitin ang Mermaid.js para sa mga Flowchart sa NoteRich – Kumpletong Tutorial
- Paano Mag-insert ng Video at mga Attachment sa NoteRich
- Paano Mag-export ng PDF at Walang Watermark na HTML sa NoteRich
- Paano Mag-embed ng Interactive na ECharts sa NoteRich