Matrix
Matrix — протокол для создания федеративной сети коммуникаций в реальном времени. Работа протокола основана на линейной истории событий (events) в формате JSON внутри ациклического графа событий (DAG): простыми словами, является распределённой базой данных, хранящей полную историю отправленных сообщений и данные участвующих пользователей, реплицируя эту информацию между всеми участвующими серверами. Это означает, что чаты (комнаты) Matrix являются отказоустойчивыми и функционируют даже после падения сервера, где была создана эта комната.
Эталонные реализации клиентов и серверов[1][2] разрабатываются коммерческой компанией Element, сотрудники которой также возглавляют некоммерческую организацию Matrix.org Foundation, курирующую разработку спецификации протокола Matrix. На данный момент в сети Matrix насчитывается 28 миллионов аккаунтов и 60 тысяч серверов[3]. Для групповых VoIP-конференций используется свободный проект Jitsi Meet.
Интерфейс[править | править код]
Особенности[править | править код]
Как и в случае с остальными федеративными серверами, сеть из серверов протокола Matrix не имеет единой точки отказа. Более того, сохранность данных здесь возведена в абсолют, поэтому все сообщения, некогда отправленные пользователями, синхронизируются между участвующими серверами и в случае утраты одной из сторон — даже той, где изначально создавался групповой диалог — история сообщений всё ещё будет доступна и уцелевшие серверы смогут спокойно продолжить дискуссию. Каждый сервер хранит свою копию сообщений. Если «упавший» сервер вновь вернётся в сеть, он синхронизирует сообщения с другими серверами в том же хронологическом порядке, как они были отправлены.
- Мощные развивающиеся инструменты для модерации и управление правами с помощью уровней доступа.
- Открытый протокол шифрования на основе Signal Double Ratchet для одиночных и групповых комнат, прошедший независимый аудит.
- Поддержка как прямых аудио- и видеозвонков, так и аудио- и видеоконференций с помощью Jitsi Meet.
- Тегирование и группирование комнат в публичные сообщества (spaces[4]) для их удобной сортировки.
- Редактирование сообщений с историей и подсветкой изменений.
- Ответы на сообщения и их ветвление (треды[5]).
- Поддержка стикеров и их импорта из Telegram с помощью сервера интеграций Dimension или отдельного интерфейса для выбора стикеров.
- Поддержка пользовательских эмодзи-картинок.
Сравнения[править | править код]
В отличие от вредительских централизованных сервисов, вроде Telegram, WhatsApp, Viber и других, вся инфраструктура, описанная в открытой спецификации протокола, доступна любому желающему в виде проектов со свободным кодом: и клиенты, и серверы, и всякого рода вспомогательные программы.
Matrix является федеративной сетью без единой точки отказа (то есть децентрализованной), когда у сервисов выше она присутствует в виде компаний, которые ими владеют. В этой сети вы не заключены в рамки определённой платформы с единым сводом правил для всех.
Matrix поощряет разнообразие в виде множества альтернативных реализаций клиентов и серверов, когда ранее упомянутые сервисы прямо запрещают пользовательские проекты или не дают документацию по их реализации.
Шифрование клиентов Matrix работает на всех платформах, а не только на мобильных клиентах. Более того, вы куда с меньшей вероятностью обнаружите потайные лазейки в реализации шифрования в этом свободном и полностью прозрачном проекте.
Всё то же самое справедливо и для другого свободного протокола для построения федеративной сети коммуникаций в реальном времени — XMPP. Отличие в том, что этот протокол не является в той же мере децентрализованным, как Matrix: групповые конференции (MUC, MIX) привязаны к определённому серверу, после падения которого чат перестаёт функционировать.
Клиенты[править | править код]
Мосты с другими сетями[править | править код]
Как вы могли понять, всякого рода релеи для федеративных сетей не редкость — и Matrix не стал исключением, стремительно развиваясь в этом направлении. Основной фокус сосредоточен на ретрансляторах сообщений для соединения единичных каналов и даже Discord-гильдий, для которых нужно одобрение администраторов обеих подключаемых сторон, но доступны и транспорты для подключения своего Matrix-аккаунта к Telegram или Discord, позволяющие использовать Matrix-клиент для этих сетей.
Примечания[править | править код]
- ↑ https://github.com/matrix-org/synapse
- ↑ https://github.com/matrix-org/dendrite
- ↑ https://matrix.org/blog/2021/02/15/how-we-hosted-fosdem-2021-on-matrix
- ↑ https://github.com/matrix-org/matrix-doc/blob/matthew/msc1772/proposals/1772-groups-as-rooms.md
- ↑ https://github.com/matrix-org/matrix-doc/blob/kegan/msc/threading/proposals/2836-threading.md