Serbestberdana Dendrite 0.1.0, serverek pêwendiyê bi pêkanîna protokola Matrix

weşandin выпуск Matrix-сервера Dendrite 0.1.0, который ознаменовал переход разработки на стадию бета-тестирования. Dendrite развивается основной командой разработчиков децентрализованной коммуникационной платформы Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix. В отличие от эталонного сервера synapse, написанного на языке Python, код Dendrite pêşdikeve на языке Go. Обе официальные реализации распространяются под лицензией Apache 2.0. В рамках проекта Ruma отдельно развивается вариант сервера Matrix на языке Rust, который belav kirin ji hêla di bin lîsansa MIT.

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

Serbestberdana Dendrite 0.1.0, serverek pêwendiyê bi pêkanîna protokola Matrix

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

Разработка ведётся на основе спецификаций протокола Matrix и с использованием двух тестовых наборов — общих с Synapse тестов sytest и нового набора Tevlîhev kirin. На текущем этапе развития 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+Deng. Pergal wekî civakek pêşkêşkeran pêk tê ku dikarin bi hevûdu re têkilî daynin û di nav torek nenavendî ya hevpar de têne yek kirin. Mesaj li hemî serverên ku beşdarên peyamberdanê pê ve girêdayî ne têne dubare kirin. Mesaj di nav serveran de bi heman awayê ku commit di navbera depoyên Git de têne belav kirin têne belav kirin. Di bûyera qutbûna serverê ya demkî de, peyam winda nabin, lê piştî ku server kar ji nû ve dest pê dike ji bikarhêneran re têne şandin. Vebijarkên cihêreng ên nasnameya bikarhêner têne piştgirî kirin, di nav de e-name, jimareya têlefonê, hesabê Facebook, hwd.

Li seranserê torê xalek têkçûn an kontrolkirina peyamê tune. Hemî serverên ku ji hêla nîqaşê ve têne vegirtin ji hev re wekhev in.
Her bikarhêner dikare servera xwe bimeşîne û wê bi torgilokek hevpar ve girêbide. Ew gengaz e ku çêbikin dergehên ji bo danûstendina Matrix bi pergalên li ser protokolên din re, mînakî, amade kirin xizmetên ji bo şandina peyamên du-alî ji IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp û Slack re. Ji bilî mesajên nivîsê yên tavilê û sohbetan, pergal dikare ji bo veguheztina pelan, şandina agahdariyan were bikar anîn,
organîzekirina telekonferansê, çêkirina bangên deng û vîdyoyê. Di heman demê de ew taybetmendiyên pêşkeftî yên wekî agahdarkirina nivîsandinê, nirxandina hebûna serhêl a bikarhêner, pejirandina xwendinê, agahdariya push, lêgerîna ji hêla serverê, hevdemkirina dîrokê û rewşa xerîdar piştgirî dike.

Source: opennet.ru

Add a comment