Rilaxx ta' Dendrite 0.1.0, server ta' komunikazzjoni b'implimentazzjoni tal-protokoll Matrix

ippubblikat выпуск Matrix-сервера Dendrite 0.1.0, который ознаменовал переход разработки на стадию бета-тестирования. Dendrite развивается основной командой разработчиков децентрализованной коммуникационной платформы Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix. В отличие от эталонного сервера Synapse, написанного на языке Python, код Dendrite qed tiżviluppa на языке Go. Обе официальные реализации распространяются под лицензией Apache 2.0. В рамках проекта Ruma отдельно развивается вариант сервера Matrix на языке Rust, который imqassma minn taħt il-liċenzja MIT.

Новый сервер нацелен на достижение высокой эффективности, надёжности и масштабируемости. Dendrite опережает Synapse по производительности, требует для своей работы существенно меньше памяти и может масштабироваться через балансировку нагрузки на несколько узлов. Архитектура Dendrite поддерживает горизонтальное масштабирование и основывается на разделении обработчиков в форме микросервисов, где каждый экземпляр микросервиса имеет свои таблицы в БД. Диспетчеризацией обращения к микросервисам занимается балансировщик нагрузки. Для распаралелливания операций в коде применяются потоки (go routines), позволяющие задействовать ресурсы всех ядер CPU без разделения на отдельные процессы.

Rilaxx ta' Dendrite 0.1.0, server ta' komunikazzjoni b'implimentazzjoni tal-protokoll Matrix

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

Разработка ведётся на основе спецификаций протокола Matrix и с использованием двух тестовых наборов — общих с Synapse тестов sytest и нового набора Komplement. На текущем этапе развития Dendrite успешно проходит 56% тестов Client-Server API и 77% тестов Federation API, при этом фактический охват функциональности оценивается в 70% для Client-Server API и 95% для Federation API.

Стадия бета-тестирования свидетельствует о готовности Dendrite для начального внедрения и переходе к разработке с периодическим формированием новых выпусков. Между выпусками теперь будет обеспечиваться обновление схемы хранения данных в БД (в отличие от установки срезов из репозитория, после обновления содержимое базы теряться не будет). Изменения, нарушающие обратную совместимость, меняющие структуру БД или требующие правки конфигурации, будут предлагаться только в значительных выпусках. Dendrite пока рекомендуется использовать в монолитном режиме совместно с СУБД PostgreSQL для создания небольших исходных серверов (homeserver) и P2P-узлов. Использование SQLite пока не рекомендуется из-за нерешённых проблем с обработкой одновременных операций.

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

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

Напомним, что платформа для организации децентрализованных коммуникаций Matrix применяет в качестве транспорта HTTPS+JSON с возможностью использования WebSockets или протокола на базе CoAP+storbju. Is-sistema hija ffurmata bħala komunità ta 'servers li jistgħu jinteraġixxu ma' xulxin u huma magħquda f'netwerk deċentralizzat komuni. Il-messaġġi huma replikati fuq is-servers kollha li magħhom huma konnessi l-parteċipanti tal-messaġġi. Il-messaġġi huma propagati fuq is-servers bl-istess mod li l-kommessi huma propagati bejn ir-repożitorji Git. F'każ ta' qtugħ temporanju tas-server, il-messaġġi ma jintilfux, iżda jiġu trażmessi lill-utenti wara li s-server jerġa' jibda jaħdem. Diversi għażliet tal-ID tal-utent huma appoġġjati, inklużi email, numru tat-telefon, kont Facebook, eċċ.

M'hemm l-ebda punt uniku ta' falliment jew kontroll tal-messaġġ fin-netwerk. Is-servers kollha koperti mid-diskussjoni huma ugwali għal xulxin.
Kwalunkwe utent jista 'jmexxi s-server tiegħu stess u jgħaqqadha ma' netwerk komuni. Huwa possibbli li toħloq bibien għall-interazzjoni ta' Matrix ma' sistemi bbażati fuq protokolli oħra, pereżempju, ippreparat servizzi biex jintbagħtu messaġġi f'żewġ direzzjonijiet lil IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp u Slack. Minbarra sms instantanji u chats, is-sistema tista’ tintuża biex tittrasferixxi fajls, tibgħat notifiki,
jorganizzaw telekonferenzi, jagħmlu sejħiet bil-vuċi u bil-vidjo. Jappoġġja wkoll karatteristiċi avvanzati bħal notifika tat-tajpjar, evalwazzjoni tal-preżenza online tal-utent, konferma tal-qari, notifiki push, tfittxija min-naħa tas-server, sinkronizzazzjoni tal-istorja u l-istatus tal-klijent.

Sors: opennet.ru

Żid kumment