The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

11.10.2020 18:45

Опубликован выпуск Matrix-сервера Dendrite 0.1.0, который ознаменовал переход разработки на стадию бета-тестирования. Dendrite развивается основной командой разработчиков децентрализованной коммуникационной платформы Matrix и позиционируется как реализация второго поколения серверных компонентов Matrix. В отличие от эталонного сервера Synapse, написанного на языке Python, код Dendrite развивается на языке Go. Обе официальные реализации распространяются под лицензией Apache 2.0. В рамках проекта Ruma отдельно развивается вариант сервера Matrix на языке Rust, который распространяется под лицензией MIT.

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

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

Разработка ведётся на основе спецификаций протокола Matrix и с использованием двух тестовых наборов - общих с Synapse тестов sytest и нового набора Complement. На текущем этапе развития 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+Noise. Система формируется как содружество серверов, которые могут взаимодействовать между собой и объединяются в общую децентрализованную сеть. Сообщения реплицируются по всем серверам, к которым подключены участники обмена сообщениями. Сообщения распространяются по серверам по аналогии с тем, как коммиты распространяются между Git-репозиториями. В случае временного отключения сервера сообщения не теряются, а передаются пользователям после возобновления работы сервера. Поддерживаются различные варианты идентификаторов пользователя, включая email, номер телефона, учётную запись в Facebook и т.п.

В сети отсутствует единая точка отказа или контроля за сообщениями. Все серверы, которые охватывает обсуждение, равноправны между собой. Любой пользователь может запустить собственный сервер и подключить его к общей сети. Возможно создание шлюзов для взаимодействия Matrix с системами на базе других протоколов, например, подготовлены сервисы для двусторонней отправки сообщений в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp и Slack. Помимо мгновенного обмена текстовыми сообщениями и организации чатов, система может использоваться для передачи файлов, отправки уведомлений, организации телеконференций, совершения голосовых и видео звонков. Поддерживаются также такие расширенные возможности как уведомление о наборе текста, оценка присутствия пользователя в online, подтверждение прочтения, push-уведомления, поиск на стороне сервера, синхронизация истории и состояния клиентов.


  1. Главная ссылка к новости (https://matrix.org/blog/2020/1...)
  2. OpenNews: Gitter переходит в экосистему Matrix и объединяется с Matrix-клиентом Element
  3. OpenNews: Matrix-клиент Riot сменил название на Element
  4. OpenNews: Выпуск децентрализованной коммуникационной платформы Matrix 1.0
  5. OpenNews: Выпуск Matrix-клиента Riot 1.6 с включением сквозного шифрования
  6. OpenNews: Создатели WordPress инвестировали $4.6 млн в компанию, развивающую Matrix-клиент Riot
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53869-matrix
Ключевые слова: matrix, im, dendrite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (102) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:24, 11/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И на сколько Go быстрее Python?
     
     
  • 2.17, Аноним (17), 20:59, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    В какой задаче?
     
     
  • 3.25, And (??), 21:35, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В бизнес задаче.
     
     
  • 4.29, Вы забыли заполнить поле Name (?), 21:48, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +16 +/
    быстрее
     
  • 2.52, Анончик99999 (?), 03:01, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Перепиши на Go и узнаешь!
     
     
  • 3.66, YetAnotherOnanym (ok), 09:41, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, минусов накидали. Болит у питонщиков, болит...
     
     
  • 4.74, Vitaliy (??), 11:10, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, глупости обычно болит... Если бесцельно переписывать одно на другое, то может стать только хуже. Есть примеры, когда максимально оптимизированную по скорости разработку переписывали на Go и становилось хуже. Очень часто проблема не в ЯП, а в архитектуре, алгоритмах или внешних компонентах. Поэтому и спросили на сколько Dendrite быстрее Synapse.
     
     
  • 5.77, anonymous (??), 11:46, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Большой проект на python всегда тяжело сопровождать.
     
     
  • 6.84, Аноним (84), 13:31, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Большой проект это не просто, но не всегда тяжело. Это про Go можно сказать что там это точно всегда тяжело по очевидным причинам.
     
     
  • 7.116, anonymous (??), 20:21, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как по мне наоборот -- это в Python по очевидным причинам и точно всегда (если проект реально большой). А вот про Go не понимаю. Буду благодарен, если поделитесь соображениями :)
     
  • 4.83, Аноним (84), 13:29, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Людям обычно не нравится когда им в глаза нагло врут, язык тут не при чём.
     
     
  • 5.95, YetAnotherOnanym (ok), 16:04, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То есть, перепишет, но не узнает?
     
  • 2.60, istepan (ok), 06:54, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нельзя сравнивать интерпретируемы и компелируемые языки, это разные инструменты для разных задач.
    Это как сравнивать кувалду с молотком. Кувалдой легко ломать стены, но затруднительно забивать гвозди.

    По той же причине нельзя сравнивать Go и C++..

    Разработчик ПО, это ремесло, и нужно уметь выбирать инструменты.

     
     
  • 3.65, A.Stahl (ok), 08:51, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Нельзя сравнивать интерпретируемы и компелируемые языки

    Можно.

    >Это как сравнивать кувалду с молотком. Кувалдой легко ломать стены, но затруднительно забивать гвозди.

    И сам взял и сравнил.


    Сравнивать можно и нужно всё. Сравнение это вообще самый базис интеллекта.

     
  • 3.67, YetAnotherOnanym (ok), 09:48, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть, питонисты - это те, кто использует молоточек для ломания стен.
     
     
  • 4.85, Аноним (84), 13:34, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для ломания стен питонисты привыкли использовать отбойный молоток C/C++ вместо ручной кувалды.
     
     
  • 5.96, YetAnotherOnanym (ok), 16:19, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Для ломания стен питонисты привыкли использовать отбойный молоток C/C++ вместо ручной кувалды.

    Неее, не примазывайся. Тот, кто переписал критичный по производительности фрагмент кода на C/C++ - это уже не питонист.

     
     
  • 6.120, OzWMTjhctYyY0jBcJyMQ (?), 12:03, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а кто?
     

  • 1.4, Аноним (4), 19:42, 11/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    "монолитном и полилитном.."
    есть такое слово - полилитном?
     
     
  • 2.6, Онаним (?), 19:56, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Это новояз от неосиляторов C.
    Кластер не модно.
     
  • 2.8, Аноним (8), 19:58, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В сербском языке есть. Означает политический.
     
  • 2.61, Oxyd76 (?), 08:10, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поллитровом -- Без поллитры не разберёшься.
     

  • 1.5, Онаним (?), 19:55, 11/10/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –5 +/
     

     ....ответы скрыты (11)

  • 1.7, Онаним (?), 19:57, 11/10/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

     ....ответы скрыты (5)

  • 1.14, Fracta1L (ok), 20:52, 11/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Кто разбирается, объясните, как этим пользоваться?
     
     
  • 2.19, Аноним (17), 21:01, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нахер оно тебе нужно ... это аноанизм технологический
     
     
  • 3.59, Fracta1L (ok), 06:53, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нахер оно тебе нужно ... это аноанизм технологический

    Чтобы по-онанировать технологически

     
  • 2.28, Аноним (26), 21:46, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это ещё и для конченого пользователя предполагается. Ага, пользователь осилит в два клика. Настроит докерок, влепит образок, а после первого глюка полезет в кишки, и пораскинет мозгами... по всем ближайшим стенам
     
     
  • 3.53, Мордатый (?), 04:47, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хок, Докерок, ты не шей мне срок, машинка Торвальдса YAML-чку сломала.
     

  • 1.23, Аноним (-), 21:21, 11/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По теме ! Рассово чистый шедоусокс вышел https://github.com/ShadowsocksR-Live/shadowsocksr-native
     
  • 1.24, Аноним (24), 21:33, 11/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В чем смысл переизобретать Jabber/XMPP? Такая же федеративная сеть с равными узлами и шлюзами, ну зачем???

    Хоть бы до почты не добрались, свят, свят...

     
     
  • 2.30, Аноним (26), 21:53, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если для чатика мне понадобится мейнтейнер кафки, разраб на го и еще кто-нибудь со знанием нутра вот этого вот супового набора - предложивший это отправится в пешее эротическое на гипрзвуковой скорости.
     
  • 2.32, пох. (?), 22:01, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В чем смысл переизобретать Jabber/XMPP?

    Ну, например, потому что он - xml-based (то есть блоатварь дырявая бай дизигн) г-но несовместимое даже само с собой?

    Проблема не в том что они переизобретают жабер (они вовсе и не его переизобретают), а в том что у них получается вообще полный п-ц (ага, требующий kafka. Блжад.)

    Херачь молнией, Г-ди, тут уже ничего не поправить.

     
     
  • 3.33, Аноним здорового человека (?), 22:51, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А email вообще MIME использует. Говорят, однажды психиаторы видели человека, дочитавшего до конца RFC 2045, 2046, 2047, 4288, 4289 и 2049. Но вёл он себя как-то странно и всё время повторял: your bunny peace death...

    К счастью, никто другой эти RFC пока до конца не дочитал, чтобы всё переписать на Go и JSON, поэтому до сих пор всё работает.

     
     
  • 4.103, пох. (?), 23:22, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А email вообще MIME использует.

    хочет - использует. Причем остановившись в чтении ровно там где показалось удобно. Не хочет - не использует вовсе, ляпает stone-age plaintext.

    Причем вот ведь что интересно - если и в майме не пожабиться на плейнтекстовую копию (а не "у нас в dnk произошла ошибка" (с)Paypal) - то оно будет _полностью_ взаимочитаемо - любителю майма удастся прочитать текстовую писанину, для нелюбителя будет текст "и еще какое-то ненужно вдесятеро большего размера рядом болтается", которое ему ничего не испортит.

     
  • 3.35, Аноним (-), 23:02, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    о, мнение типичного иксперта опеннета подъехало, оказывает все, чем плох (нет) xmpp - это xml
     
     
  • 4.36, Аноним (-), 23:06, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а вот этот анон прав. в первую очередь xmpp был плох тем что его реализация была на неведомом п..це под названием ерланг, что не позволяло нормально его поковырять, а в процессе переписывания выплыло все подтаенное гно и был он послан массами. А в прочем был шанс.
     
     
  • 5.37, zzz (??), 23:32, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >xmpp был плох тем что его реализация была на неведомом п..це под названием ерланг

    Открой для себя Prosody и Openfire.

    >не позволяло нормально его поковырять

    Вот оно чо, Михалыч! И как только МС с Аппле зохватили рынок настолок.

     
     
  • 6.48, Аноним (-), 01:18, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Давай, расскажи мне про тысячи альтернатив в 2006м
     
     
  • 7.99, Аноним (24), 20:33, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как там в прошлом?
     
  • 7.118, Аноним (118), 12:21, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    jabberd, вроде, на православной сишечке был (или таки на крестах? запамятовал).
     
  • 6.104, пох. (?), 23:25, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Открой для себя Prosody и Openfire.

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

    Зная как устроен протокол - я, в общем-то, и не удивлен.

     
  • 5.69, YetAnotherOnanym (ok), 10:48, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > плох тем что его реализация была на неведомом п..це под названием ерланг

    Дай-ка угадаю, ты узнал, что ejabberd написан на эрланге, попытался понять, что это такое, обломался и объявил эрланг недостатком на основании того, что он недоступен твоему пониманию.

     
     
  • 6.87, Аноним (84), 13:51, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А он был плюсом?
     
     
  • 7.94, YetAnotherOnanym (ok), 16:00, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А он был плюсом?

    Да. Был и есть. Ты даже не представляешь, насколько весомым.

     
  • 7.105, пох. (?), 23:27, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну хз, он ли был плюсом - но на нем, во всяком случае, написали демон, который даже почти не падал и не терял подключения.

    А на plain c - не написали, почему-то. Возможно, дело и не в эрланге, а в том, как надо ушибиться, чтобы вообще полезть такое разрабатывать, но контрольный эксперимент проводить не на ком.

     
  • 4.46, Аноним (-), 01:01, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все проблемы от xml/html/tcp/c/c++ - надо срочно всё переписать!
     
  • 4.114, Аноним (114), 10:21, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А чем плох пох? Или пох не плох? Или плох не пох?
     
  • 3.39, Аноним (39), 23:50, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > xml-based (то есть блоатварь дырявая

    Какие же уязвимости нашли в языке разметки?

     
  • 3.40, Аноним (24), 00:18, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И в чем недостаток XML-based протокола? Может в его расширяемости? И в каком месте XMPP несовместим сам с собой? Или ты про ядро XMPP и доп возможности коих миллион? Но и что тут плохого? Есть базовый XMPP, есть расширения, и только не надо за скорость обработки XML говорить(кстати ты это любому коммерческому серису скажи который SOAP-only),если в том же Matrix текстовый JSON пересылается поверх HTTP 1.1 карл!
     
     
  • 4.41, Онаним (?), 00:22, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В блоатпарсере.
    Даже мерзкий JSON выглядит приличнее.
    Более того, ему не сложно дать схему.
     
     
  • 5.42, Аноним (24), 00:34, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    JSON со схемой которой как бы нет в принципе одни костыли будет отличаться от XML только кавычками <>, в чем суть?
     
     
  • 6.44, Аноним (-), 00:45, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в некоторых случая xml гораздо удобней, например, для добавления комментариев
     
     
  • 7.119, Аноним (118), 12:27, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, давай, фигачь в сетевом протоколе комментарии, а то принимающая сторона может чего-то не понять.
     
  • 4.47, Аноним (47), 01:04, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Несовместим сам собой XMPP с его бесконечнымы необязательными и местами невразумительными XEP-ами. В результате это самой расширяемости толком работало меньше фич чем даже в изначальном icq.
     
     
  • 5.50, Аноним (50), 01:24, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Та всем уже пофиг. Гугл как всегда справился на твердую пятерку - похоронил окончательно хорошую на то время технологию.
     
     
  • 6.68, nickname (??), 10:29, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    гугл похоронил все свои мессенджеры, в итоге юзеры андроида так и не имеют единого средства обмена сообщениями.
     
     
  • 7.75, Сейд (ok), 11:33, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    SMS
     
  • 6.89, Аноним (84), 14:00, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это разве гугл придумал 100500 XEP для одного и того же, разве гугл клепал не совместимые друг с другом клиенты? Это всё авторы xmpp делали.
     
  • 5.51, Аноним (-), 02:08, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Несовместим сам собой XMPP с его бесконечнымы необязательными и местами невразумительными XEP-ами

    примеры несовместимости и невразумительных XEP'ов в студию
    > В результате это самой расширяемости толком работало меньше фич чем даже в изначальном icq.

    примеры таких фич в студию

     
     
  • 6.88, Аноним (84), 13:53, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Обмен файлами. Эти ребята придумали штук пять вариантов обмена файлами, в результате ни один не сделали повсеместным.
     
     
  • 7.107, Аноним (107), 23:41, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В актуальных клиентах устоялся HTTP File Upload, его и в Compliance Suite давно уже включили.
     
  • 2.55, progserega (ok), 05:05, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Чисто технически - XMPP - гибкий, настраиваемый, масштабируемый протокол. Платформа для построения систем обмена сообщениями. В теории - всё хорошо.

    На практике же всё оказалось не так радужно:

    1. Идея с расширяемым протоколом и XEP-ами - провалилась. Ситуация, когда даже картинку послать абоненту проблематично (не факт, что его сервер поддерживает этот XEP, не факт, что клиент его поддерживает этот XEP) - это прям печаль. "Кто в лес, кто по дрова". Эту ситуацию можно описать одной фразой: "Этот функционал наверное есть, но это не точно".
    2. То же касается истории хранения переписки на сервере, чехорда с приоритетами сессий и отсутствием синхронизаций между ними. Т.е. могла быть ситуация, когда сообщение приходит на мобилку, но на ПК ты его не увидишь.
    3. Сложности с работой через мобильные сети - нестабильные каналы связи. Сообщения могли приходить несколько раз. Плюс морока с подтверждением отправки - тоже XEP и потому "оно есть, но это не точно".
    4. Комнаты. Разрозненность по серверам. Т.е. есть одна комната на одном сервере, а на другом сервере - пусть и с таким же именем - это совсем другая комната. И если первый сервер ляжет - комната помрёт. Насколько я помню даже в IRC это не так и потому конференции в IRC живы и сейчас, а конференции в XMPP - не прижились.
    5. Голосовая связь - про это даже и говорить нет смысла. Может быть у кого-то и работало.
    6. Шифрование - так же как и всё остальное - если сильно захотеть, то можно настроить между абонентами, но это надо прям озадачиться.

    В чём плюсы матрицы:
    1. Единая спека на протокол, формируемая FOSS-организацией - matrix.org (если я не путаю конечно)
    2. сервера передают состояние, а не сообщения. Т.е. между клиентами всё синхронизируется.
    3. Конференции "размазываются" по серверам, формируя "единое пространство". Т.е. состояние комнаты синхронизируется со всеми серверами, пользователи которых участвуют в этой комнате. И если даже самый первый сервер отключится - конференция продолжит работать. Сообщения формируются в виде цепочки-графа, стекаясь с серверов в единое дерево.
    4. На мобилках работает нормально. Были эксперименты у разработчиков по улучшению ситуации, чтобы работа системы была возможна на совсем узких каналах (в эксперименте вроде был канал в 100 бод). В том числе с помощью CBOR.
    5. Голосовая - 1:1 работает через COTURN (нормально работает, правда в новом клиенте там есть недочёты по ней, но это уровня баги/правятся). В конференциях - через модуль jitsi.
    6. Шифрованием они прям озадачились и сделали, на мой взгляд очень хорошо - в том числе p2p шифрование в конференциях, поддержка нескольких устройств, сверка их через кросс-подпись, проверка отпечатков через QR/смайлы.
    7. Ну и движение идёт. Спеки расширяются, реализация пилится, движение есть. Внедрения так же - вон правительство Франции на matrix перешло, немецкие военные тоже вроде перешли уже.

     
     
  • 3.70, Аноним (24), 10:50, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам протокол XMPP поддерживается всеми, есть опциональные XEP которые могут поддерживаться или нет, на то они и опциональные, если слить воедино ядро XMPP и XEP такой монстр получится которого на практике сложно будет реализовать
     
     
  • 4.82, Аноним (47), 13:23, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Сам протокол XMPP" это уровень icq тысяча девятьсот девяностомохнатого года, а опциональные XEP породили бардак и бестолковщину. Фича есть, но это неточно.
     
     
  • 5.100, Аноним (24), 20:35, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ICQ годнота была, не гони на топчик
     
  • 3.76, Сейд (ok), 11:37, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Картинки в XMPP сейчас отправляются абоненту через XEP-0363: HTTP File Upload.
     
     
  • 4.81, Аноним (47), 13:19, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И этот XEP конечно же равнобезглючно поддерживается всеми клиентами и серверами ?
     
     
  • 5.92, Сейд (ok), 14:27, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На приём картинок — всеми.

     
  • 4.90, Аноним (84), 14:08, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Картинки в XMPP

    Картинки в XMPP никак не стандартизованы и как их отправлять решает конкретный клиент.

    > HTTP File Upload.

    А это вообще финишь, мне что бы обменяться картинкой надо http сервер запустить на телефоне и открыть к нему доступ из интернета.

     
     
  • 5.93, Сейд (ok), 14:30, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В каком из XMPP-клиентов не работает XEP-0363: HTTP File Upload?
     
  • 5.117, Johny (?), 07:24, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    прекращайте бредить.   http открыт на сервере, картинка туда заливется клиентов по http post запросу , собеседнику или в групповой чатик направляется ссылка + миниатюра в MIME.
    все живые и используемые клиенты это давно поддерживают
     
  • 3.79, Аноним (79), 12:35, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я могу признать только сложности с синхронизацией, чтобы сообщения одновременно приходили и на телефон и на пк, а не одно из двух. Придумали какое-то расширение, но серверам оно не нравилось по какой-то причине (вроде можно было их задудосить с помощью него, но это не точно), из-за чего буквально любой аналог оказывался удобнее. Такие вещи нужно делать принудительными.
     
     
  • 4.91, Аноним (84), 14:12, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Я могу признать только сложности с синхронизацией

    Поэтому jabber и помер.

     
  • 4.112, progserega (ok), 05:26, 13/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Я могу признать только сложности с синхронизацией

    А с конференциями разве не беда?

     
  • 3.101, Аноним (101), 21:03, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За столько буков - однозначно плюс. Странно, что столь мало до сих пор, но это видимо у местного студента пригорает. Ладно, пойду читать чо ты там понапесал.
     
  • 3.102, Аноним (101), 21:12, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Окей, прочитал. Да, XMMP -- это XEP если по-русски читать. Но матрикс - то еще говно. Знаешь чем они  там озадачены? Модерацией. Да, пля. Мы с пацанами иного мнения. Свобода слова - мастхэв, модерация - мастдай. Мобилка имеет достаточно ресурсов для хранения всех твоих мыслей. Другие девайсы (включая твои собственные) могут это реплицировать. Fail-safety. Протокол общения пока ещё сырой, но мы работаем. Да, я буду держать вас в курсе.
     
  • 3.121, nuclight (??), 16:10, 22/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > 2. сервера передают состояние, а не сообщения. Т.е. между клиентами всё синхронизируется.

    А точно? Звучит несколько избыточно.

    Минусы Матрицы же не перечислены. А они начинаются уже с формата адреса и HTTP.

     
     
  • 4.123, progserega (ok), 05:18, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А что в этом избыточного Вполне логично иметь на всех клиентах одно состояние ... большой текст свёрнут, показать
     
  • 2.122, nuclight (??), 16:12, 22/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего, доберемся однажды и до почты. Впрочем, мы не хипстеры =)
     

  • 1.57, Аноним (57), 06:39, 12/10/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.72, YetAnotherOnanym (ok), 11:00, 12/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > при помощи внутреннего HTTP API

    Внутренний мог бы быть и бинарным, через что-нибудь попроще, чем http.
    > и платформы Apache Kafka

    Ну блиииин... Оно ещё и жабамашину с собой тащит...

     
  • 1.73, Аноним (73), 11:01, 12/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Может хоть в нём будет нормальное логирование ошибок.
    Если сломаться Synapse, он будет молчать о причине поломки как партизан.
     
     
  • 2.106, пох. (?), 23:33, 12/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "причина поломки: где-то в программе баг"
    Так лучше стало?

    Или может ты прямо собираешься его ЧИНИТЬ? Может еще и кодить умеешь? (хаха, конечно пошутил, иначе ты давно запилил бы себе такой лог ошибок, какой тебе нужен)

     

  • 1.97, borbacuca (ok), 16:28, 12/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    некоторые вещи и на фортране быстрее
    тут жеж была статья со сравненнием
     
  • 1.115, InuYasha (??), 11:23, 13/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Увидел ссылку на новость, "Пожалуйста, ками-сама, только бы на Си, или на плюсах!! (>_<)", открываю:
    >> эталонного сервера Synapse, написанного на языке Python, код Dendrite развивается на языке Go

    - FFFFFFFFFFUUUUUuuuuuuu :_(

     
     
  • 2.124, progserega (ok), 05:41, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Увидел ссылку на новость, "Пожалуйста, ками-сама, только бы на Си, или на
    > плюсах!! (>_<)", открываю:
    >>> эталонного сервера Synapse, написанного на языке Python, код Dendrite развивается на языке Go
    > - FFFFFFFFFFUUUUUuuuuuuu :_(

    Учитывая, что матрица развивается "вот прямо сейчас", налету обрастая концепциями (см. мой коммент выше: https://www.opennet.ru/openforum/vsluhforumID3/122079.html#123 ), то писать реализацию на достаточно затратном по времени разработчика языке - именно в данный момент - нерационально (моё предположение). Логичным видится написание концептуального сервера на более быстрым для разработки/рефакторинге языке, отладки всех концпций, а уж потом, вторым/третьим этапом реализация минималистичных по использованию ресурсов серверов на более "тяжёлых" для разработки языках.

    Причём, как я понимаю вторым этапом выбран Go, для реализации задачи второго этапа: "запуск в виде несколих процессов" для балансировки нагрузки на больших высоконагруженных конфигурациях.
    А вот третим этапом будут, возможно, буду смотреть на C++ пристальнее, т.к. идут разговоры в том числе о p2p, где один-клиент - один сервер.

     
     
  • 3.125, InuYasha (??), 12:05, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Учитывая, что матрица развивается "вот прямо сейчас", налету обрастая концепциями

    Понимаемое, конечно, предположение. Не у всех есть такая команда как у тгм. Ну и я не знаю, насколько сложно/громоздко писать на современных плюсах и тулкитах в сравнении с аналогичным на go/питоне.

     
     
  • 4.126, progserega (ok), 09:32, 24/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Учитывая, что матрица развивается "вот прямо сейчас", налету обрастая концепциями
    > Понимаемое, конечно, предположение. Не у всех есть такая команда как у тгм.
    > Ну и я не знаю, насколько сложно/громоздко писать на современных плюсах
    > и тулкитах в сравнении с аналогичным на go/питоне.

    На Go особо не писал (мелкие патчи не в счёт), а вот сравнивая питон и Си/C++  - питон конечно более быстрый язык разработки с точки зрения времени программиста.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру