Files
SHiNE-server/TODO/Децентрализация/межсерверная_передача_сообщений.md
T

1.7 KiB

Межсерверная передача сообщений

Зачем

Когда у SHiNE появится несколько серверов, пользователи на разных серверах должны получать личные сообщения без ручной синхронизации и без привязки к одному центральному узлу.

Что сделать

  1. Определить протокол server-to-server доставки DM.
  2. Добавить маршрутизацию получателя по серверу, user id, публичному ключу или PDA.
  3. Добавить ACK, повторы, дедупликацию и backfill пропущенных сообщений.
  4. Разделить realtime-доставку и восстановление истории.
  5. Описать поведение при недоступности удалённого сервера.

Что учесть

  • Логика DM должна соответствовать документам в docs/Personal_Messages/.
  • При изменении формата signed DM-блока или правил доставки нужно обновлять протокол и байтовый формат DM.
  • Если появятся новые server API/WebSocket операции, нужно обновить docs/API/.

Документы, которые потом нужно обновить

  • docs/Personal_Messages/Протокол_DM_v1.md;
  • docs/Personal_Messages/Формат_DM_v1.md;
  • docs/API/;
  • docs/API/09_Operations_Index.md, если добавляются новые op.

Статус

Отложено до этапа децентрализации.