Comments 86
Мне кажется, этот комикс можно переделать в стиле: «у нас есть сто статей про необходимость создания единого стандарта мессенджеров, это недопустимо»… и т. д.
Дальнейшее нарастающее технологическое отставание, про которое вы написали (опять же, на мой взгляд), было уже следствием массовой миграции личной переписки в другие мессенджеры и угасшего из-за этого интереса к XMPP. Более того, сама идеология XMPP-сети не позволяет разбить камень, который утащил её на дно.
Как мне кажется, первоначально XMPP похоронило появление WhatsApp
При этом WhatsApp сам сделан на XMPP
Концепция XMPP как сети разрозненных слабо совместимых друг с другом серверов была в любом случае обречена: невозможно двигать вперёд технологию, когда она реализована в виде сети гетерогенных серверов без общего владельца; она рано или поздно застывает в своём развитии, как застыла телефонная связь, электронная почта, и т. п.
Отдельный контакт-лист тоже не имеет смысла при интеграции со смартфоном, там уже есть адресная книга. Если бы не WhatsApp, рано или поздно тот же Гугл бы добил свой вариант единого обособленного мегасервера с учётками по номерам телефонов, и мы бы получили то же самое.
Понятное дело, что разработка ведётся, и это весьма неплохо. Но реальные пользователи этого не видят и ещё долго не увидят. А каждое обновление монолитных решений приносит новые функции всем и сразу.
Если не взлетит — попробуйте сбоку зайти: создать клиент, который выглядит как мессенджер, но по сути почтовый клиент. У кого он установлен — те общаются как в мессенджере (видят только сообщение и от кого оно), у кого нет — те получают обычные емэйлы через обычные каналы, и отвечают обратным емэйлом. Параллельно, прога-клиент пусть сливает номер мобилы хозяина в общую базу с согласия пользователя, чтоб потом другие люди, дав клиенту доступ к телефонной книге, автоматом получили адреса чужиех емэйлов, на которые можно писать для общения (это будет как в Viber'e, который показывает у кого из вашей тел.книги есть вайбер).
Первое время можно ничего не шифровать, т.к. почта уже шифрована.
Во-первых не стоит разделять узлы сети на клиенты и серверы. Хотите чтобы ваша федерация расцвела — максимально снижайте порог входа: каждый клиент (по инициативе пользователя) должен уметь переключаться в режим сервера. Любой клиент на любой платформе в любое время. Например клиент запущенный на домашнем ПК в режиме сервера сможет предложить своему пользователю (или любому желающему) на мобильном клиенте сервисы авторизации, архивирования, транспортов и push-уведомлений. Без требования специальных навыков и необходимости разворачивания и поддержания выделенного сервера.
Во-вторых ни в коем случае нельзя делать обязательной представление никнейма (идентификатора) с привязкой к домену. Ваша сеть станет зависимой от существующей инфраструктуры регистрации и поддержки доменных имен — это точка отказа.
Если не привязываться к доменам — непонятно, как удобно производить адресацию к пользователю. Человек должен иметь возможность простым способом предоставить свои контакты, не только публикацией своего ключа.
А если использовать глобальные никнеймы — как уже писал, высока вероятность, что очень скоро эта база будет замусорена, и придётся либо очень-очень длинные никнеймы использовать, либо привязываться к номеру телефона, чего тоже не очень хочется.
scaro-daemon: комменты на русском, захардкоженные в cpp файлах пути к ключам, чтение из файла с ключом напрямую по имени файла (gpgme/qtcrypto?), пишете напрямую в string::c_str(), неуместные названия файлов (dalek, skaro… я сам люблю dr who, но лучше бы названия несли смысловую нагрузку). ИМХО стоило хоть чуть-чуть причесать код прежде чем выходить на хабр со статьёй.
У всех существующих мессенджеров есть свои плюсы и минусы, но каждый из них тянет одеяло на свою сторону из-за несовместимости с другими – и от этого страдают пользователи.
Эта проблема не нова и у неё давно есть решение — мультипротокольный клиент.
И на эту тему есть куча отличных программ для настольных систем.
А вот для мобильных — похоже, что ещё нет.
Если вы ищете свободную нишу, которая может выстрелить, то вот она.
Нравится, что разработчики учли опыт XMPP и разрабатывают единые спецификации вместо кучи независимых XEP-ов, но это лишь один из недостатков XMPP.
Если какому-либо мессенджеру понадобиться функция не включенная в общею спецификацию? Появиться несовместимый форк, поэтому в XMPP пошли по пути расширений.
HTTP Long Polling
В ХМPP есть BOSH. Это работает по http
В этом случае, может быть, вовсе отказаться от серверов? Существует некоторое количество мессенджеров, основанных на безсерверной технологии.
Вот сразу WhatsApp возмется и согласиться переходит на без серверные технологии. WhatsApp скорей засудится до последнего или уйдет на рынок другой страны, чем перейдет на без серверную технологию.
Потом без серверные технологии, страдают проблемами работы на мобильных устройствах.Мобильный становится этим сервером и начинает страшно поедать траффик и батарею, так же проблемой с доставкой сообщений в оффлайне.
Кстати, ХМПП сервера можно устанавливать и на домашних ПК пробрасивая домен в торе, получается та самая «безсерверность»
Есть и относительное добро, например, мессенджер Signal, который полностью открыт, но сервера не поддерживают федеративный режим,
В ХМПП шифрования сигнала (ОМЕМО), ХМПП это уже и есть образно открытый Сигнал
Здесь нет ничего нового, используются стандартные средства шифрования GPG.
Пока не решён вопрос с шифрованием в группах, но, вероятно, можно воспользоваться механизмом, используемым в Signal.
И то и другое есть в XMPP
Подключение к серверу осуществляется с использованием WebSockets, в котором данные по-умолчанию сериализуются в бинарный формат представления данных CBOR, но при установлении WebSockets соединения существует возможность запроса другого формата, скажем, protobuf.
И это тоже есть в ХМПП
Единственное чего нет в ХМПП это хорошего клиента под декстоп с звонками. Если бы Вы это сделали Вас бы все спасибо сказали. Сейчас Вы изобретаете просто очередной велосипед
Единственное чего нет в ХМПП это хорошего клиента под декстоп с звонками. Если бы Вы это сделали Вас бы все спасибо сказали.Разве под мобильники есть хороший клиент со звонками? Я припоминаю только встроенный в maemo os (на n900 даже видеозвонки через jabber работали!), но он уже неактуален. Авторы psi много лет назад начинали интеграцию jingle в свой клиент, но что-то никто спасибо им не сказал. Похоже, именно поэтому работа не была доведена до конца. Вместо спасибо в сообществе был запущен по сути форк psi-plus с плюшками типа жуйк-интерграции и тому подобной гиковой непотребщиной.
Кроме того, на деле выясняется, что для работы какого-либо расширения XEP (например, для звонков), это расширение должно поддерживаться:
1) клиентом отправителя,
2) сервером отправителя,
3) сервером получателя,
4) клиентом получателя.
По причинам, описанным выше Archon, выясняется, что достичь такой гармонии очень сложно. Одного десктопного клиента со звонками, которого, к слову, не смогли сделать за десятилетие, тут будет недостаточно. Вот и получается, что проще похоронить xmpp как протокол коммуникаций, несоответствующий современным потребностям общества.
Разве под мобильники есть хороший клиент со звонками?
Хороший клиент есть, со звонками нет. В Conversations есть аудио и видеосообщения, но это не совсем звонки.
Кроме того, на деле выясняется, что для работы какого-либо расширения XEP (например, для звонков), это расширение должно поддерживаться:
Для p2p звонков достаточна поддержка клиентом. Нет денег разработку
Одного десктопного клиента со звонками, которого, к слову, не смогли сделать за десятилетие, тут будет недостаточно
Почему же не сделали? Сделали и даже несколько, но звонки оказались (в то время) оказались невостребованными. Поддержку звонков забросили и сейчас старые библиотеки для звонков не совместимы с новым кодом. Это слышал неоднократно от разработчиков PSI и Gajim
А чем https://tox.chat/ не понравился? Можно точнее?
- Необходимость быть по сути полноценной нодой сети как компьютеру, так и мобильнику плохо сказывается на мобильных устройствах: подобная работа приводит к большому расходу трафика и большому расходу заряда аккумулятора.
- Поскольку каждое устройство представляется самостоятельным узлом сети, между несколькими устройствами одного пользователя сложнее организовать перенос идентификационного ключа, контактов, истории.
- Большинство пиринговых мессенджеров для передачи сообщения требуют, чтобы оба контакта одновременно находились в сети.
В любом случае e2e-шифрование требует от пользователя некоторого понимания происходящих процессов и дополнительных телодвижений, иначе страдает безопасность. Получается, tox ставит своего пользователя перед выбором «удобство или безопасность», совершенно игнорируя пользователей, для которых шифрование не является жизненно необходимым.
Спеки-то есть? Реализации можно сотню раз переписать, а протокол намного более важная вещь, дайте ссылку на почитать описание (в репозиториях сходу не видно)
Начальная версия здесь. Там пока без поддержки переносимости профилей, так как эта идея относительно недавно появилась
Например, тот же Matrix. Не буду говорить про HTTP Long Polling, плохую отказоустойчивость серверов и откровенную гиковость интерфейса клиентов – всё это решаемые задачи, пусть и не тривиальные. Другой проблемой является классическое устройство федеративной сети, когда мы вынуждены выбрать какой-то сервер и доверять его владельцу, что он будет обеспечивать работоспособность сервера и не будет его закрывать.Разрешите замолвить пару слов про Matrix. HTTP Long Polling там вряд ли в ближайшем будущем заменят, это минус. Плохую работу серверов авторы объясняют использованием Python и поэтому параллельно ведётся работа над сервером на Go. Что касается привязки аккаунтов к доменам и сложности перехода с одного домена на другой, то по этому вопросу высказывалось много идей и предложений. Внезапно некоторая помощь пришла от GDPR, для соответствия которому было решено в будущем отвязать учётки от mxid (это будет лишь ещё один идентификатор наравне с номером телефона и адресом e-mail). И вот тут появляется реальный шанс, что после перехода на новую (несовместимую с текущей) спецификацию учётную запись можно будет привязывать к нескольким mxid на разных серверах!
Интересно. Хотелось бы узнать подробнее об планах переносимости профилей в matrix.
Плохую работу серверов авторы объясняют использованием Python и поэтому параллельно ведётся работа над сервером на Go.
Могли бы просто использовать Ejabberd, но нет им же нужны инвестиции на разработку, а если это не «уникальный продукт» денег никто не даст. Это и огорчает, делают очередной несовместимый стандарт с меньшей функциональностью и на собственных велосипедах. Матрикс можно было создать используя фиксированный набор хепов (да, есть и такой хеп, объединяющей другие хепы) и написав клиент со звонками
Теперь представьте меня в 2016-м. Я с семьёй выезжаю на отдых, там выясняется, что для совместной коммуникации среди мобильных xmpp-клиентов не могу найти ни одного достойного кандидата, способного сравниться по функциональностью со среднестатистическим ватсапом: простого для приглашения новых участников в совместные чаты, со звонками, с обменом контентом. Уже после возвращения домой я узнаю про riot.im, в котором из коробки есть всё, что нужно: аудиозвонки, видеозвонки, видеоконференции, синхронизация истории сообщений между всеми твоими клиентами, плавная подгрузка истории чата хоть до самого начала комнаты, причём всё это вне зависимости, используете ли вы с собеседниками андроид-клиент и/или веб-клиент. Это вы называете «меньшей функциональностью»? Если б разработчики матрицы пилили xmpp, вряд ли бы мы получили такую же функциональность даже к сегодняшнему дню.
Что такого особенного имеется в xmpp, что ни в коем случае нельзя браться за другие свободные протоколы?
Не правильно поставлен вопрос. Различие между Matrix и XMPP идеалогические:
— В XMPP любой может добавить расширение
— В Matrix расширение могут добавить лишь после одобрения ограниченной группы людей, разработчиков
— В XMPP некоммерческое сообщество
— Matrix.org и Riot — коммерческая организация
— В XMPP слабые клиенты на декстопах и хорошие сервера
— В Матрикс паршивые сервера и хороший клиент Риот.им
— XMPP ставит цель объедение мессенджеров
— Matrix просто мессенджер
В остальном Matrix переписанный ХМPP и весьма плохо переписанный. Если бы не клиент Riot на Электроне и огромные вложение на рекламу и разработку Matrix бы загнулся.
Матрикс вообще бы не появился, если бы его разработчики знали что Ejabberd поддерживает вебсокеты. Они захотели написать простой клиент для XMPP сервера, но поняли как его настроить и приделать к нему Электрон)
Не правильно поставлен вопрос.Вы ведь сами сказали про меньшую функциональность, вот я и уточняю, какая полезная для современного общества функциональность реализована в xmpp и отсутствует в matrix.
В XMPP любой может добавить расширениеДобавить куда: на бумажку, на кладбище XEP'ов? Чтобы в итоге добавить расширение простым пользователям, надо получить одобрение неограниченного числа ограниченных групп лиц (разработчиков и админов многочисленных серверов и клиентов). Уж куда проще сделать pull request в git и убедить одну ограниченную группу адекватных людей в полезности своего дополнения.
Matrix.org и Riot — коммерческая организацияЕсли под словом «коммерческая» Вы понимаете получение прибыли, спешу огорчить: прибылей они не получают, живут за счёт спонсоров, в т.ч. донатов от сообщества. При этом сидят на крючке GPL: если скажут «хватит, теперь будем зарабатывать на всём подряд», то в этот момент желающие могут сделать форк.
В Матрикс паршивые сервера и хороший клиент Риот.имВы сами-то видели мир матрицы или судите исключительно по комментариям в этом треде?
XMPP ставит цель объедение мессенджеровПомимо установки цели важно уметь достигать её. Если за десятилетие цель не достигнута, а ушла ещё дальше, это либо недостижимая цель, либо выбран неправильный путь её достижения.
К слову, матрикс тоже объединяет, но только при условии, что другая сторона не против такого объединения и предоставляет какие-нибудь механизмы для этого. В одной комнате можно собрать пользователей matrix, irc, slack, telegram, но там не будет пользователей icq, whatsapp, viber, покуда эти сети заявляют о своей огороженности. К сожалению, работоспособного в обе стороны моста «matrix room <-> jabber conference» на сегодня нет, хотя нет и видимых препятствий для его реализации.
Вы ведь сами сказали про меньшую функциональность, вот я и уточняю, какая полезная для современного общества функциональность реализована в xmpp и отсутствует в matrix
Расширяемость. Отказоустойчивость. Независимость протокола
Если под словом «коммерческая» Вы понимаете получение прибыли, спешу огорчить: прибылей они не получают, живут за счёт спонсоров, в т.ч. донатов от сообщества.
Вы считаете, что жить за счет спонсоров не равно пололучать прибыль?)
Вы сами-то видели мир матрицы или судите исключительно по комментариям в этом треде?
Поставьте Matrix сервер, тогда поймете о чем я говорю. В XMPP многие пробовали ставить публичные сервера Matrix и возращались лишь с матерными словами.
100 человек в онлайне и занято 10 GB RAM вполне реальная ситуация для Matrix серверов из-за особенностей протокола. В XMPP тоже количество человек займет ~ 30Mb RAM
Расширяемость. Отказоустойчивость. Независимость протоколаДа, это будут, конечно же, убедительные аргументы в дискуссии FOSS vs Proprietary service, если таковая где-то возникнет. Это я к тому, что современному среднестатистическому пользователю мессенджеров подобная «функциональность» по боку.
К сожалению, работоспособного в обе стороны моста «matrix room <-> jabber conference» на сегодня нетПрошу прощения, был не совсем прав. После этой моей фразы мне указали на matterbridge, который соединяет много чего через присутствующего в чате бота. Буквально через час я на своём сервере организовал связь для комнаты и конференции UfaLUG, к примеру.
(Если отбросить маркетинговую пыль в глаза) В XMPP нет одного сервера, которого можно было бы назвать безусловным лидером по числу пользователей или абсолютного хмпп-клиента, которым все пользуются
Но раз уж возник вопрос по конкретной ссылке, отвечу на него. Если вдруг Вам или кому-то другому не нравятся домены matrix.org и riot.im или они заблокированы по приказу надзорных органов, вот вам ссылка на эту же самую комнату на моём личном сервере. Но я ж не буду тут свой сервер рекламировать, потому дал ссылку на тот, что более популярен. Да-да, важно обратить внимание, это абсолютно та же самая комната! Любой пользователь любого другого сервера при входе в комнату автоматически реплицирует её на свой сервер, именно так работает «хвалёная децентрализация». Если доступ к истории чата открыт для всех, тогда цепочка событий в комнате копируется целиком вплоть до самого основания комнаты. При желании пользователь может задать алиас на своём сервере, чьего-либо разрешения на это не требуется. В последнем случае комната продолжит жить и оставаться доступной для новых участников, даже если все исходные сервера помрут. MUC'ам далеко до такого, как Вы понимаете.
Мы уже выяснили, что matrix в настоящее время создаётся ограниченной группой лиц и что это хорошо.
Нет. Для мессенджера позиционирующего как децентрализованный, это просто отвратительно и плохо. Где здесь децентрализация, если абсолютное большинство на одном сервере или клиенте?
Так уж сложилось, что сервер они у себя держат только один (зачем им второй?) и все три своих клиента (web, android и ios — они разные по коду) они решили назвать одним именем riot для лучшей узнаваемости.
Это один клиент на электроне, но в сборках под разные ОС
Да-да, важно обратить внимание, это абсолютно та же самая комната! Любой пользователь любого другого сервера при входе в комнату автоматически реплицирует её на свой сервер, именно так работает «хвалёная децентрализация».
В ХМPP все сделано так же, но большие сервера не жрут гигабайты оперативной памяти и десятки ядер процессора.
Если доступ к истории чата открыт для всех, тогда цепочка событий в комнате копируется целиком вплоть до самого основания комнаты
Другими словами, в Матрикс нет шифрования в комнатах
Это один клиент на электроне
Глянуть андроид-версию риота вы даже не пытались?
В ХМPP все сделано так же
По запросу «ejabberd muc replication» ничего внятного не гуглится (а кластеры это не то), где я могу почитать про репликацию комнат в XMPP?
в Матрикс нет шифрования в комнатах
А нужно ли оно вообще?
Глянуть андроид-версию риота вы даже не пытались?
Электрон создает три версии программы под разные ОС. Одну под андроид. Другую по Linux. Третью под продукцию апле
По запросу «ejabberd muc replication» ничего внятного не гуглится (а кластеры это не то), где я могу почитать про репликацию комнат в XMPP?
Лично вам, я не чего обьяснять не буду. Вы просто тупо тролите. Я вам уже в раз в сотый говорю перейдите на 404. В этот раз воспользуйтесь там поисковиком комнат
А нужно ли оно вообще?
Если бы матрикс было, а в хмпп не было вы бы сказали нужно. Для чего оно нужно шифрование в чатах, сами погуглите
Электрон создает три версии программы под разные ОС. Одну под андроид. Другую по Linux. Третью под продукцию апле
Ещё раз: глянуть андроид-версию риота вы даже не пытались? Покажите нам всем в apk-файле риота хоть какой-нибудь след от Электрона?
говорю перейдите на 404
Репликация на другой сервер по определению означает означает, что я не должен переходить на 404. Если я куда-то там должен переходить — значит репликации нет.
Я не помню, чтобы я такого про поиск писал. Дайте ссылку на мой коммент, где я такое писал?
Про репликацию вы сами же заявили, что она есть в XMPP:
Если нет — это не репликация и вы в очередной раз соврали.
Если да — поделитесь ссылкой на расширение, которое обеспечивает такую функциональность.
А если сервера, на которых находятся эти 4 конфы, сдохнут — на 404.city в них всё ещё можно будет зайти и почитать историю сообщений?
Если закрытый сайт в интернете сдохнет, можно будет зайти почитать его? Репликация ненужна. Это в матрице 1 крупный, в хмпп их десятки тысяч. Если собрать все конфы со всех сервер, сервер станет помойкой.
Если сайт в интернете сдохнет, можно будет зайти почитать его?
Да. Слава Wayback Machine и его аналогам!
Репликация ненужна.
Возможно. Но вы же сами заявляли, что в XMPP она есть!
Ну вот и хорошо. А ещё вы подозрительно умолкли про андроидовый Riot. Тоже ошиблись или всё-таки покажете, где там Электрон?
Конфы существуют не только на жаббер.ру.
И вообще-то такие проблемы должен решать протокол, а не админы. Сами же мне тут про «криптографические подписи» рассказываете — вместо того, чтобы тут со мной бессмысленный и беспощадный срач вести, лучше бы уже XEP на эту тему изобрели
И вообще-то такие проблемы должен решать протокол, а не админы.
Это только ваша проблема, а не всех остальных. Никто не замарачивается с буквами ников в конфах
Создать аккаунт в XMPP намного проще, чем в почте. Вы может создать сколько угодно резервных Jid и пользоваться ими хоть одновременно. Экспорт контактов есть в клиентах
Вас бы вообще все с удовольствием забанили на Jabber.ru
Кончились аргументы — перешли на бомбёж? Слив засчитан.
(Если вы расскажете, как «криптографические подписи» автоматически перенесут мемберки в комнатах — может и не слив.)
Видимо, комментарий, на который вы ответили, вы вообще решили не читать.
С учётом чятиков я это должен буду написать несколько сотен ра
Физически невозможно читать одновременно 100 чатиков. Вы сознательно искажаете проблему, чтобы ее выставить более глобальной. Любой другой просто добавил бы авторизацию в чатиках, по мере захода. 10 любымых сразу, потом остальные потихоньку
А путь костылей как у sameroom.io чем не устраивает?
Единственный известный мне инструмент дающий возможность общаться с людьми в Скайпе и в icq из "одного" окна.
The Messenger of Everything