ການປ່ອຍ Dendrite 0.1.0, ເຊີບເວີການສື່ສານທີ່ປະຕິບັດໂປຣໂຕຄໍ Matrix

ຈັດພີມມາ выпуск Matrix-сервера Dendrite 0.1.0, который ознаменовал переход разработки на стадию бета-тестирования. Dendrite развивается основной командой разработчиков децентрализованной коммуникационной платформы Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix. В отличие от эталонного сервера Synapse, написанного на языке Python, код Dendrite ກຳ ລັງພັດທະນາ на языке Go. Обе официальные реализации распространяются под лицензией Apache 2.0. В рамках проекта ຣູມາ отдельно развивается вариант сервера Matrix на языке Rust, который ແຈກຢາຍໂດຍ ພາຍໃຕ້ໃບອະນຸຍາດ MIT.

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

ການປ່ອຍ Dendrite 0.1.0, ເຊີບເວີການສື່ສານທີ່ປະຕິບັດໂປຣໂຕຄໍ Matrix

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

Разработка ведётся на основе спецификаций протокола 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+ສຽງ. ລະບົບດັ່ງກ່າວໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນເປັນຊຸມຊົນຂອງເຄື່ອງແມ່ຂ່າຍທີ່ສາມາດພົວພັນກັບກັນແລະກັນແລະຖືກລວມເຂົ້າກັນເປັນເຄືອຂ່າຍການກະຈາຍທົ່ວໄປ. ຂໍ້ຄວາມຖືກຈໍາລອງໃນທົ່ວທຸກເຊີບເວີທີ່ຜູ້ເຂົ້າຮ່ວມສົ່ງຂໍ້ຄວາມເຊື່ອມຕໍ່. ຂໍ້ຄວາມຖືກເຜີຍແຜ່ໃນທົ່ວເຊີບເວີໃນແບບດຽວກັນທີ່ commits ຖືກເຜີຍແຜ່ລະຫວ່າງ Git repositories. ໃນກໍລະນີທີ່ເຄື່ອງແມ່ຂ່າຍຢຸດຊົ່ວຄາວ, ຂໍ້ຄວາມບໍ່ໄດ້ສູນເສຍ, ແຕ່ຖືກສົ່ງກັບຜູ້ໃຊ້ຫຼັງຈາກເຄື່ອງແມ່ຂ່າຍສືບຕໍ່ປະຕິບັດງານ. ຕົວເລືອກ ID ຜູ້ໃຊ້ຕ່າງໆໄດ້ຮັບການສະຫນັບສະຫນູນ, ລວມທັງອີເມວ, ເບີໂທລະສັບ, ບັນຊີ Facebook, ແລະອື່ນໆ.

ບໍ່ມີຈຸດດຽວຂອງຄວາມລົ້ມເຫຼວຫຼືການຄວບຄຸມຂໍ້ຄວາມໃນທົ່ວເຄືອຂ່າຍ. ເຄື່ອງແມ່ຂ່າຍທັງຫມົດທີ່ກວມເອົາໂດຍການສົນທະນາແມ່ນເທົ່າທຽມກັນກັບກັນແລະກັນ.
ຜູ້ໃຊ້ໃດກໍ່ຕາມສາມາດດໍາເນີນການເຄື່ອງແມ່ຂ່າຍຂອງຕົນເອງແລະເຊື່ອມຕໍ່ມັນກັບເຄືອຂ່າຍທົ່ວໄປ. ມັນເປັນໄປໄດ້ທີ່ຈະສ້າງ ປະຕູ ສໍາ​ລັບ​ການ​ໂຕ້​ຕອບ​ຂອງ​ມາ​ຕຣິກ​ເບື້ອງ​ກັບ​ລະ​ບົບ​ທີ່​ອີງ​ໃສ່​ອະ​ນຸ​ສັນ​ຍາ​ອື່ນໆ​, ສໍາ​ລັບ​ການ​ຍົກ​ຕົວ​ຢ່າງ​, ກະກຽມ ການບໍລິການສໍາລັບການສົ່ງຂໍ້ຄວາມສອງທາງໄປຫາ IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp ແລະ Slack. ນອກ​ເຫນືອ​ໄປ​ຈາກ​ການ​ສົ່ງ​ຂໍ້​ຄວາມ​ຕົວ​ອັກ​ສອນ​ແລະ​ການ​ສົນ​ທະ​ນາ​, ລະ​ບົບ​ສາ​ມາດ​ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ໂອນ​ໄຟລ​໌​, ສົ່ງ​ແຈ້ງ​ການ​,
ການ​ຈັດ​ຕັ້ງ​ການ​ປະ​ຊຸມ​ທາງ​ໂທລະ​ສັບ​, ການ​ໂທ​ສຽງ​ແລະ​ວິ​ດີ​ໂອ​. ມັນຍັງສະຫນັບສະຫນູນຄຸນນະສົມບັດແບບພິເສດເຊັ່ນ: ການແຈ້ງເຕືອນການພິມ, ການປະເມີນຜົນການປະກົດຕົວຂອງຜູ້ຊົມໃຊ້ອອນໄລນ໌, ອ່ານການຢືນຢັນ, ການແຈ້ງເຕືອນຊຸກຍູ້, ການຄົ້ນຫາຂ້າງເຊີຟເວີ, synchronization ຂອງປະຫວັດສາດແລະສະຖານະພາບລູກຄ້າ.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ