SHA256
31 lines
1.7 KiB
Markdown
31 lines
1.7 KiB
Markdown
# Межсерверная передача сообщений
|
|
|
|
## Зачем
|
|
|
|
Когда у 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`.
|
|
|
|
## Статус
|
|
|
|
Отложено до этапа децентрализации.
|