# Постоянный server-to-server WS и DM sync ## Зачем Сейчас синхронизация между серверами работает в основном как periodic sync и one-shot push. Для нормальной репликации ещё нужен постоянный межсерверный канал: - живое подключение к партнёру; - push новых блоков; - push DM; - ACK на доставку; - backoff/reconnect; - стартовый backfill. ## Что сделать 1. Поднять постоянное WebSocket-соединение между партнёрскими серверами. 2. Сделать push новых блоков сразу после `AddBlock`. 3. Сделать push DM-блоков между серверами. 4. Добавить ACK и повторную отправку при сбое. 5. Ввести стартовый обмен курсорами и добор хвоста. ## Что уже есть - `ListBlockchainHeads`; - `GetBlockchainBlock`; - `GetSyncUserProfile`; - базовый periodic sync; - базовый backfill хвоста; - базовый full resync при divergence. ## Откуда продолжать - от текущего `sync_servers` bootstrap и `PeriodicBlockchainSyncService`; - дальше выделить отдельный межсерверный transport layer. ## Какие документы потом обновить - `Dev_Docs/Blockchain/sync-between-servers.md`; - `Dev_Docs/Personal_Messages/README.md`; - `Dev_Docs/API/`.