Dendrite, коммуникационный сервер с реализацией протокола Matrix

Дендрит - это коммуникационный сервер то есть разработан командой Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix.

В отличие от эталонного сервера Synapse, написанного на Python, код Dendrite разработан на Go. Обе официальные реализации распространяются под лицензией Apache 2.0.

В рамках проекта Ruma разрабатывается отдельная версия сервера Matrix на языке Rust, которая распространяется по лицензии MIT.

Новый сервер направлен на достижение высокой эффективности, надежности и масштабируемости.

О дендрите

дендрит опережает Synapse по производительности, он требует гораздо меньше памяти для работы и может масштабироваться за счет балансировки нагрузки между несколькими узлами.

Дендритная архитектура поддерживает горизонтальное масштабирование и основано на разделении контроллеров в виде микросервисов, где каждый экземпляр микросервиса имеет свои собственные таблицы в базе данных.

Балансировщик нагрузки отвечает за отправку вызовов микросервисам. Потоки (процедуры go) используются для распараллеливания операций в коде, что позволяет использовать ресурсы всех ядер ЦП, не разделяя их на отдельные процессы.

дендрит поддерживает работу в двух режимах: монолитном и многокомпонентном (полилит).

  • В монолитном режиме Все микросервисы связаны в исполняемый файл, запускаются в процессе и напрямую взаимодействуют друг с другом.
  • В многокомпонентном режиме (кластер) микросервисы можно запускать по отдельности, даже с разнесением на разных узлах. Взаимодействие компонентов в многокомпонентном режиме осуществляется с помощью внутреннего HTTP API и платформы Apache Kafka.

Разработка осуществляется на основе спецификаций протокола Matrix и с использованием двух наборов тестов: общих тестов Sytest с Synapse и нового набора Complement.

На текущем этапе разработки Dendrite успешно проходит 56% тестов. клиент-серверного API и 77% тестов API федерации, в то время как фактическое покрытие функциональности оценивается в 70% для API клиент-сервер и 95% для API федерации.

На стадии бета-тестирования Dendrite готов к первоначальному развертыванию. и переход к разработке с регулярными выпусками новых. Между выпусками теперь будет обновляться схема хранилища базы данных (в отличие от установки чанков из репозитория, после обновления содержимое базы данных не будет потеряно).

Изменения, которые нарушают обратную совместимость, изменяют структуру базы данных или требуют изменения конфигурации, будут предлагаться только в основных выпусках.

На данный момент, рекомендуется использовать Dendrite в монолитном режиме вместе с СУБД PostgreSQL для создания небольших домашних серверов и узлов P2P. Использование SQLite пока не рекомендуется из-за нерешенных проблем с обработкой параллельных операций.

Функции еще не реализованы в дендрите Они включают в себя: подтверждения сообщений, закладки, push-уведомления, OpenID, ссылка на электронную почту, поиск на стороне сервера, каталог пользователей, списки игнорирования пользователей, создание групп и сообществ, оценка присутствия пользователя в сети, входы гостей, взаимодействие со сторонними сетями.

Базовый функционал для работы чатов (создание, приглашения, правила аутентификации), средства объединения участников в комнаты, синхронизация событий после выхода из офлайн, учетные записи, профили, индикация набора номера, загрузка и выгрузка файлов редактирования (Media API) доступны для использования сообщения, списки контроля доступа, маркировка и сквозное шифрование, устройства и списки ключей.

Напомним, что платформа для организации децентрализованных коммуникаций Matrix использует HTTPS + JSON в качестве транспорта с возможностью использования WebSockets или протокола на основе CoAP + Noise. Система сформирована как сообщество серверов, которые могут взаимодействовать друг с другом и объединены в общую децентрализованную сеть.

Сообщения реплицируются на все серверы к которому подключены участники обмена сообщениями. Сообщения распространяются между серверами аналогично тому, как коммиты распространяются между репозиториями Git.

источник: https://matrix.org


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.