מעלדונג פון Dendrite 0.1.0, אַ קאָמוניקאַציע סערווער מיט אַ ימפּלאַמענטיישאַן פון די מאַטריץ פּראָטאָקאָל

ארויס выпуск Matrix-сервера Dendrite 0.1.0, который ознаменовал переход разработки на стадию бета-тестирования. Dendrite развивается основной командой разработчиков децентрализованной коммуникационной платформы Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix. В отличие от эталонного сервера סינאַפּסע, написанного на языке Python, код Dendrite איז דעוועלאָפּינג на языке Go. Обе официальные реализации распространяются под лицензией Apache 2.0. В рамках проекта רומאַ отдельно развивается вариант сервера Matrix на языке Rust, который פונאנדערגעטיילט דורך אונטער די MIT דערלויבעניש.

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

מעלדונג פון Dendrite 0.1.0, אַ קאָמוניקאַציע סערווער מיט אַ ימפּלאַמענטיישאַן פון די מאַטריץ פּראָטאָקאָל

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

Разработка ведётся на основе спецификаций протокола Matrix и с использованием двух тестовых наборов — общих с Synapse тестов sytest и нового набора דערגאַנג. На текущем этапе развития 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+ראַש. די סיסטעם איז געגרינדעט ווי אַ קהל פון סערווערס וואָס קענען ינטעראַקט מיט יעדער אנדערע און זענען פאראייניגט אין אַ פּראָסט דיסענטראַלייזד נעץ. אַרטיקלען זענען רעפּליקייטיד אַריבער אַלע סערווערס צו וואָס די מעסידזשינג פּאַרטיסאַפּאַנץ זענען קאָננעקטעד. אַרטיקלען זענען פּראַפּאַגייטיד אַריבער סערווערס אין די זעלבע וועג ווי קאַמיטמאַנץ זענען פּראַפּאַגייטיד צווישן Git ריפּאַזאַטאָריז. אין די געשעעניש פון אַ צייַטווייַליק סערווירער אַוטידזש, אַרטיקלען זענען נישט פאַרפאַלן, אָבער זענען טראַנסמיטטעד צו יוזערז נאָך די סערווער רעזאַמייז אָפּעראַציע. פאַרשידן באַניצער שייַן אָפּציעס זענען געשטיצט, אַרייַנגערעכנט E- בריוו, טעלעפאָן נומער, Facebook חשבון, עטק.

עס איז קיין איין פונט פון דורכפאַל אָדער אָנזאָג קאָנטראָל אַריבער די נעץ. אַלע סערווערס באדעקט דורך די דיסקוסיע זענען גלייַך צו יעדער אנדערער.
יעדער באַניצער קענען לויפן זייער אייגענע סערווער און פאַרבינדן עס צו אַ פּראָסט נעץ. עס איז מעגלעך צו שאַפֿן טויערן פֿאַר ינטעראַקשאַן פון מאַטריץ מיט סיסטעמען באזירט אויף אנדערע פּראָטאָקאָלס, למשל, צוגעגרייט סערוויסעס פֿאַר צוויי-וועג שיקן אַרטיקלען צו ירק, פאַסעבאָאָק, טעלעגראַם, סקיפּע, האַנגאָוץ, E- בריוו, ווהאַצאַפּפּ און סלאַקק. אין אַדישאַן צו רעגע טעקסט מעסידזשינג און טשאַץ, די סיסטעם קענען ווערן גענוצט צו אַריבערפירן טעקעס, שיקן נאָוטאַפאַקיישאַנז,
אָרגאַנייזינג טעלעקאַנפראַנסאַז, מאַכן קול און ווידעא קאַללס. עס אויך שטיצט אַזאַ אַוואַנסירטע פֿעיִקייטן ווי אָנזאָג פון טייפּינג, אפשאצונג פון באַניצער בייַזייַן אָנליין, לייענען באַשטעטיקונג, שטופּן נאָוטאַפאַקיישאַנז, סערווער זייַט זוכן, סינגקראַנאַזיישאַן פון געשיכטע און קליענט סטאַטוס.

מקור: opennet.ru

לייגן אַ באַמערקונג