# Учебное пособие по 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: Генерируем ID комнаты
D1->>D2: Обмениваемся ссылкой на соединение (QR/URL)
D2->>S: Подключение по ID комнаты
S-->>D2: Установление peer-соединения
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. Нажмите кнопку **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-сервер начнет работать, Noterich сгенерирует:
- **Уникальную ссылку для обмена**, содержащую параметры соединения
- **QR-код** для быстрого сканирования на мобильных устройствах
Формат ссылки выглядит так:
```
https://noterich.com/#dbshare=<infoHash>&server=<signaling-server>
```
**Способы обмена:**
| Метод | Лучше всего подходит для | Как это сделать |
|--------|----------|--------|
| 🔗 Копирование ссылки | Электронная почта, приложения для обмена сообщениями | Нажмите кнопку "Копировать ссылку" |
| 📱 QR-код | Мобильные устройства | Сканируйте с помощью камеры устройства |
| 📧 Электронная почта | remote collaborators | Вставьте ссылку в электронное письмо |
### Шаг 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 предлагает опциональное end-to-end шифрование:
**Процесс шифрования:**
```javascript
// Пароль → Ключ шифрования (PBKDF2)
password + salt → deriveKey() → Ключ AES-256-GCM
// Данные заметки → Зашифрованный буфер
noteData + key + iv → encrypt() → encryptedBuffer
// Пакет передачи
{
encryptedBuffer: ArrayBuffer,
salt: Uint8Array, // Для генерации ключа
iv: Uint8Array // Инициализационный вектор
}
```
**Функции безопасности:**
- 🔐 100,000 итераций PBKDF2 для генерации ключа
- 🔐 Случайный соль и IV для каждой передачи
- 🔐 Аутентифицированное шифрование AES-256-GCM
- 🔐 Пароль никогда не передается — используется только локально
### Батт-синхронизация заметок
Эффективно передавать несколько заметок:
1. Получить **Database Transfer** из настроек
2. Выбрать режим **"P2P Sync"**
3. Выбрать заметки для синхронизации
4. Получатель получает предварительный просмотр батт-передач
**Оптимизация производительности:**
- Заметки передаются части (512KB каждая)
- Необоротное асинхронное обработка предотвращает застой UI
- Отслеживание прогресса с точностью до байт
- Отмена в любое время без повреждения данных
### Решение конфликтов
Когда синхронизируются заметки, существующие на обоих устройствах:
```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
```
**Решаемые типы конфликтов:**
- `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. Снимите кэш браузера, если проблема сохраняется
### Индикаторы состояния соединения
| Состояние | Значение | Действия |
|--------|---------|--------|
| 🔵 Подключение | Установление peer-соединения | Подождите 5-10 секунд |
| 🟡 Анализирование | Анализ различий в заметках | Нормальный процесс |
| 🟠 Ждание пользователя | Необходимо ввести пароль или подтверждение | Проверьте диалоговые окна |
| 🟢 Применение | Импорт заметок в базу данных | Не закрывать окно |
| ✅ Успех | Синхронизация завершена успешно | Готовы к использованию заметок |
| 🔴 Ошибка | Соединение или передача не удалась | Проверьте решение проблем |
## Практические рекомендации
### 📚 Личная база знаний
Синхронизуйте вашу систему управления личными знаниями между:
- Домашним компьютером для глубокой работы
- Ноутбуком для сессий в кафе
- Планшетом для чтения и аннотаций
- Телефоном для быстрой записи
### 👥 Коллективная работа
Безопасно делиться исследовательскими записями внутри команд:
- Не требуется IT-инфраструктура
- End-to-end зашифрованная передача
- История проверок через записи передачи
- Соблюдение правил конфиденциальности
### 🎓 Академические исследования
Сотрудничайте в работах и обзорах литературы:
- Представляйте аннотированные PDF-файлы и заметки
- Сохраняйте историю версий локально
- Работайте между университетскими/личными устройствами
- Защищайте неопубликованные исследования
### 🏢 Экономическое применение
Внедряйте Noterich в организациях, ориентированных на конфиденциальность:
- Никакие данные не покидают корпоративную сеть
- Работает через брандмауэр с настройками
- Интегрируется с существующими политиками безопасности
- Снижает зависимость от облачных сервисов
## Техническое вдохновение (Для разработчиков)
### Обзор архитектуры
```mermaid
graph TB
subgraph Сообщатель ["Устройство отправителя"]
A1[Данные заметки] --> A2[Сериализация MessagePack]
A2 --> A3{Зашифровано?}
A3 -->|Да| A4[Шифрование AES-256-GCM]
A3 -->|Нет| A5[Простой бинарный файл]
A4 --> A6[Разделение на 512KB]
A5 --> A6
A6 --> A7[ВебRTC-данный канал]
end
subgraph Приемник ["Устройство получателя"]
B1[ВебRTC-данный канал] --> B2[Распаковка блоков]
B2 --> B3{Зашифровано?}
B3 -->|Да| B4[Декодирование AES-256-GCM]
B3 -->|Нет| B5[Простой бинарный файл]
B4 --> B6[Распаковка MessagePack]
B5 --> B6
B6 --> B7[Хранение в IndexedDB]
B7 --> B8[Пересмотр индекса]
end
A7 -.->|Прямое P2P| B1
style A4 fill:#FF5722,color:#fff
style B4 fill:#FF5722,color:#fff
style A7 fill:#4CAF50,color:#fff
style B1 fill:#4CAF50,color:#fff
```
### Ключевые детали реализации
**Настройка сервера сигнализации:**
```javascript
const peerConfig = {
host: 'www.noterich.com',
port: 443,
secure: true,
key: 'peerjs'
};
```
**Процесс шифрования:**
1. Генерируем случайный соль (16 байт)
2. Генерируем случайный IV (12 байт)
3. Генерируем ключ с помощью PBKDF2 (100к итераций)
4. Шифруем с помощью AES-256-GCM
5. Пакет: `{encryptedBuffer, salt, iv}`
**Протокол передачи данных:**
```javascript
// Типы сообщений:
{ type: 'metadata', payload: {...} } // Список заметок
{ type: 'note-chunk', payload: {...} } // Блоки данных заметок
{ type: 'progress', payload: {...} } // Прогресс передачи
{ type: 'complete', payload: {...} } // Завершение передачи
{ type: 'cancel-sync-request' } // Запрос отмены синхронизации
{ type: 'error', message: '...' } // Обозначение ошибки
```
## Будущее план
Noterich продолжает улучшать возможности P2P:
- 🔄 **Автоматическая синхронизация в фоновом режиме**: Обнаруживает близлежащие устройства и синхронизирует бездействиями
- 🌐 **Многослойная сеть**: Мультипроводные передачи через промежуточные устройства
- 📦 **Селективная синхронизация**: Выбор конкретных частей заметок для синхронизации
- 🔔 **Уведомления push**: Уведомление о приходе запросов синхронизации
- 📊 **Анализ синхронизации**: Визуализация истории синхронизации и переданных данных
- 📦 **Глубокая ссылка**: Прямое обмена заметками с помощью ссылок
## Заключение
P2P Sync от Noterich представляет собой перемену в нашем подходе к синхронизации заметок. Устранение облачного посредника позволило создать систему, которая уважает вашу конфиденциальность, снижает затраты и дает полный контроль над вашими данными.
Независимо от того, являетесь ли вы студентом, который управляет исследовательскими записями, профессионалом, который организует проектную документацию, или командой, которая сотрудничает по конфиденциальным материалам, P2P Sync предоставляет необходимую безопасность и гибкость.
**Начните синхронизацию сегодня — ваши заметки, ваши устройства, ваш контроль.**
---
### Краткое руководство
```
┌─────────────────────────────────────────────────────┐
│ Краткое руководство по P2P Sync от Noterich │
├─────────────────────────────────────────────────────┤
│ 1. Откройте заметку → Нажмите "Шагать" → Выберите P2P │
│ 2. Установите пароль (рекомендуется, но не обязательно) │
│ 3. Копируйте ссылку или покажите QR-код │
│ 4. На устройстве получателя: Откройте ссылку / Сканируйте QR-код │
│ 5. Введите пароль, если зашифровано │
│ 6. Выберите рабочую область → Подтвердите импорт │
│ 7. Подождите завершения → Начните работать! │
├─────────────────────────────────────────────────────┤
│ 🔒 Шифрование: AES-256-GCM + PBKDF2 (100к итераций) │
│ ⚡ Технологическая структура: WebRTC + PeerJS + IndexedDB │
│ 📦 Размер блока: 512KB для оптимальной производительности │
│ 🌐 Сигнализация: www.noterich.com:443 │
└─────────────────────────────────────────────────────┤
```
Руководство по P2P-синхронизации в NoteRich: между устройствами без облака
Учебное пособие по P2P Sync от Noterich: Синхронизация между устройствами без использования облачного хранилища Синхрони...
Команда NoteRich
Продукт и защита конфиденциальности
Jun 03, 2026
38 мин чтения
Готовы изменить свой рабочий процесс?
Ваш приватный, ИИ- powered
центр заметок ждёт вас
Присоединяйтесь к тысячам пользователей, доверяющих NoteRich конфиденциальное и мощное ведение заметок. Попробуйте прямо в браузере — без установки, без банковской карты, ваши заметки никогда не покинут ваше устройство.
Без банковской карты
Работает в браузере
100% Локальные заметки
Ресурсы и руководства
Изучайте наши подробные статьи о локальном ведении заметок, архитектуре конфиденциальности и продвинутых рабочих процессах.
- Превратите свои заметки в память ИИ внутри NoteRich
- Преобразуйте текст в визуальные инфографики с помощью ИИ NoteRich
- Руководство по рабочим пространствам и расширенному поиску в NoteRich
- Rich Text против Markdown в NoteRich: как переключаться и использовать оба
- Руководство по P2P-синхронизации в NoteRich: между устройствами без облака
- Руководство по OCR в NoteRich: сканирование бумажных заметок в цифровой текст
- Объяснение локального шифрования AES-GCM в NoteRich
- Руководство по локальной базе знаний RAG в NoteRich
- Руководство по математическим формулам LaTeX в NoteRich: как писать формулы
- Горячие клавиши и советы по продуктивности в NoteRich
- Возможности и преимущества NoteRich для онлайн-заметок
- Как использовать конфиденциальный ИИ NoteRich для приватного обобщения документов
- Как использовать Mermaid.js для блок-схем в NoteRich — полное руководство
- Как вставлять видео и вложения в NoteRich
- Как экспортировать PDF и HTML без водяных знаков в NoteRich
- Как встраивать интерактивные ECharts в NoteRich