LINUX.ORG.RU

Прототип P2P-версии клиента Matrix поверх новой overlay-сети Pinecone

 , , , ,


0

2

Эксперименты с децентрализацией продолжаются!

Ранее разработчики Matrix предложили бессерверный вариант веб-клиента Element с использованием библиотеки libp2p (использующуюся в IPFS). Параллельно с этим шло тестирование iOS-клиента Element поверх overlay-сети Yggdrasil. Изучив доступные инструменты, был привлечён Neil Alexander (разработчик Yggdrasil и Dendrite) для создания дизайна и разработки новой P2P overlay-сети, оптимизированной специально для Matrix — Pinecone (видеопрезентация для FOSDEM 2021).

Пользователям предлагаются для тестирования мобильные клиенты, работающие поверх Pinecone в условиях локальной mesh-сети и глобального Интернета.

Matrix

Протокол Matrix построен на основе линейной истории событий (events) в формате JSON внутри ациклического графа событий (DAG): простыми словами, является распределённой базой данных, хранящей полную историю отправленных сообщений и данные участвующих пользователей, реплицируя эту информацию между участвующими серверами — ближайшей аналогичной по работе технологией может быть Git и блокчейн.

Основной реализацией этой сети является мессенджер с поддержкой сквозного шифрования и VoIP (аудио- и видеозвонков, групповых конференций). Эталонные реализации клиентов и серверов разрабатываются коммерческой компанией Element, сотрудники которой также возглавляют некоммерческую организацию Matrix.org Foundation, курирующую разработку спецификации протокола Matrix.

Dendrite — сервер сети Matrix нового поколения, основанный на микросервисной архитектуре, написанный на Go.

Yggdrasil — зашифрованная (с поддержкой TLS), одноранговая (P2P), IPv6, overlay-сеть, написанная на Go.

Pinecone

Дизайн Pinecone вдохновлён Yggdrasil и создан для решения проблемы создания маршрутов между пирами сети, используя source routing или virtual ring routing вместо greedy routing. Введение overlay-сети решает только часть проблем, сам протокол Matrix всё ещё остаётся full-mesh. В дальнейшем могут быть введены оптимизации, вроде механизма gossip или store-and-forward. Больше подробностей во всё той же видеопрезентации для FOSDEM 2021 от Neil Alexander.

В текущем виде на телефонах пользователей запускается полноценный Matrix-сервер на Go — Dendrite, встроенный прямо в клиенте Element и работающий в фоне. Всё ещё не предусмотрено никакого механизма для использования одного пользовательского идентификатора на нескольких устройствах, но это может измениться после принятия правки в протокол под номером MSC2787: Portable Identities. Она позволит отвязать идентификатор пользователя от конкретного сервера, используя вместо этого публичный ключ и привязку внешних идентификаторов к этому публичному ключу. Подразумевается, что после этого пользователь сможет привязать к своему публичному ключу произвольное количество человекочитаемых алиасов вида @username:domain.tld, настроив синхронизацию своего профиля с избранными публично доступными серверами. Пользователь сможет дать и забрать разрешение серверу отправлять сообщения от своего имени.

Matrix потенциально может стать самой крупной и эффективной mesh-сетью: европейские правительства и учебные заведения уже используют федерацию серверов этой сети в публичном секторе. После появления P2P-опции, сотни и тысячи госслужащих и студентов, сосредоточенные в одном месте, смогут коммуницировать друг с другом, минуя серверы. Точно так же и вся остальная имеющаяся пользовательская база сети Matrix может быть конвертирована в бессерверный вариант.

P2P и создание маршрутов не единственные нововведение, также стоит ожидать появление нового транспортного протокола вместо текущего JSON over HTTPS.

Для тестирования достаточно установить клиент на свой смартфон. После запуска программы вам будет доступна связь между клиентами с помощью локальной mesh-сети. Для подключения к глобальной Интернет-сети зайдите в настройки, раздел «Peer-to-Peer», и включите опцию «Connect to static peer». После этого вы можете зайти в тестовую комнату, предлагаемую самими разработчиками, по адресу #beachparty:3bf0258d23c60952639cc4c69c71d1508a7d43a0475d9000ff900a1848411ec7 или создать свою, оставив её адрес в комментариях! После входа в комнату должна загрузиться история предыдущих отправленных сообщений и картинок.

>>> Прототип для Android (10+)

>>> Прототип для iOS

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Вот с одной стороны это даже не бета, это вообще PoC, но с другой новость-то шикарно оформлена, да и событие вполне себе нетривиальное: попытки создать децентрализованные чатики были уже не раз, но вот чего-то столь же масштабного как Matrix я не припомню.

Если ещё и с шифрованием всё грамотно будет сделано, то роскомпозор с китайцами тут же побегут запрещать по аналогии с ESNI.

zabbal ★★★★ ()

А где прототип для pinephone?

anonymous ()
Ответ на: комментарий от zabbal

роскомпозор с китайцами тут же побегут запрещать по аналогии с ESNI.

А как это запретить-то? Оно ж распределённое, максимум из магазина приложений заставят удалить.

cocucka ★★★★★ ()

А вообще, эта штука просто бомба, если оно будет работать так как описывается. Выкидывайте вашу телегу, пора всем в матрицу!

cocucka ★★★★★ ()
Ответ на: комментарий от cocucka

А как это запретить-то?

Как Telegram: ловить рандомных людей и досматривать личные устройства, по обнаружению — в отделение.

В Китае вон уже давно запрещено мобильники без правительственного зонда пользовать, даже иностранцы приезжие обязаны его ставить.

mertvoprog ()
Последнее исправление: mertvoprog (всего исправлений: 1)
Ответ на: комментарий от cocucka

Так удаление из магазина это минус 90% юзеров, куда эффективнее всяких приседаний с блокировками по ип и т.п.

ya-betmen ★★★★★ ()

Годно, нужно.

P2P и создание маршрутов не единственные нововведение, также стоит ожидать появление нового транспортного протокола вместо текущего JSON over HTTPS.

Ну а с фуллмешем собираются что-то делать?

intelfx ★★★★★ ()

Это такой план, что бы разгрузить оф. сервер matrix.org? Ведь сейчас это дефолтный сервер для всех, кто не может/не хочет поднимать свой сервер. В перспективе каждый такой пользователь будет держать у себя в телефоне эдакий мини-сервер. Главное, что бы не получилось глючнее, чем, например «сбербанк» на андроиде :D

fingolfin ()
Ответ на: комментарий от intelfx

https://youtu.be/a7rHtQwpuus?t=861

Neil говорит:

… today’s Matrix federation is full-mesh … secondary goal of Pinecone is to assist in building per room topologies, so we can effectively gossip events to other online servers in the room, and to identify when servers are offline for the purposes of storing and forwarding.

commagray ★★★★★ ()
Последнее исправление: commagray (всего исправлений: 2)
Ответ на: комментарий от fingolfin

Это такой план, что бы разгрузить оф. сервер matrix.org?

В том числе, да.

Конечной целью является перевод пользователей на другие серверы и P2P, после чего matrix.org будет отключен за ненадобностью.

commagray ★★★★★ ()
Ответ на: комментарий от zabbal

Если ещё и с шифрованием всё грамотно будет сделано

В процессе эксперименты с переводом шифрования с Olm/Megolm (Matrix-специфичные протоколы) на стандартизированный IETF MLS (поддержанный Mozilla, Facebook, Wire, Google, Twitter, University of Oxford, INRIA). https://gitlab.matrix.org/matrix-org/mls-ts

commagray ★★★★★ ()

Если бы у этой поделки были гейты в Телеграм, WhatsApp, Viber то может быть оно и набрало бы немного пользователей. Но гейтов нет, разговаривать там не с кем, убеждать своих знакомых сменить понятный мессенджер на это - провал сразу.

Хотя жаббер даже это не спасло.

Alve ★★★★★ ()
Ответ на: комментарий от Alve

Если бы у этой поделки были гейты

WUT?!

https://matrix.org/bridges (список неполный)

commagray ★★★★★ ()
Последнее исправление: commagray (всего исправлений: 1)
Ответ на: комментарий от commagray

Вот это поворот.

А есть какое-то сравнение самих протоколов? Olm/Megolm сам по себе очень технически элегантный (хотя, если я правильно понимаю, главная фича со сменным периодом rekeying так и осталась невостребованной и трещотка проворачивается тупо после каждого события).

intelfx ★★★★★ ()
Ответ на: комментарий от mertvoprog

Как Telegram: ловить рандомных людей и досматривать личные устройства, по обнаружению — в отделение.

Нужна просто кнопочка «добавить сотрудника в чат».

kostyarin_ ★★ ()
Ответ на: комментарий от commagray

Гейты то есть, но тот же вацап через одно место. Нужен либо мобильник с вацапом в тумбочке, либо виртуальная машина с ним же. Пытался я так жить месяца 3, как эксперимент, ни кому не рекомендую. В телегу гейт работает нормально. А так матрикс топчик, юзаю больше года на своём сервере, со слака перевёл организацию свою.

achilles_85 ()
Ответ на: комментарий от achilles_85

тот же вацап через одно место

Потому что WhatsApp не предусматривает никакого API для взаимодействия в принципе и мост является добровольным MITM.

Это не проблема Matrix, пользоваться WhatsApp вне официального клиента без использования реверс-инжиниринга нельзя.

commagray ★★★★★ ()
Последнее исправление: commagray (всего исправлений: 1)
Ответ на: комментарий от intelfx

Ну так.

  • ОЛОЛО, мы сделали очередную децентрализованную парашу

  • А она работает хоть?

  • А кто обещал работу?

LikeABoss ()
Ответ на: комментарий от intelfx

А есть какое-то сравнение самих протоколов?

Пока нет, видимо. Скорее всего, Matthew Hodgson или разработчик прототипа Hubert Chathi когда-то говорили об этом в какой-то видеопрезентации, но оно не гуглится. Есть только презентация работы клиента с использованием MLS — на этом вся публичная информация кончается.

Единственная выжимка из блогов:

DMLS - with the first MLS messages flowing over Matrix, we want to at least provide MLS as an option alongside Megolm for encryption. It should be radically more performant in larger rooms (logarithmic rather than linear complexity), but lacks deniability (the assurance that you cannot prove a user said something in retrospect, in order to blackmail them or similar), and is still unproven technology. We’ll aim to prove it in 2021.

commagray ★★★★★ ()

Неужели свободный децентрализованный шифрованный IM с (видео)звонками свершился?
Слишком монументально и хорошо, чтобы быть правдой.

Напомню, что tox умер именно на этом этапе:

Всё ещё не предусмотрено никакого механизма для использования одного пользовательского идентификатора на нескольких устройствах

aidaho ★★★★★ ()
Ответ на: комментарий от intelfx

Ну как бы если на базе Yggdrasil, то там full mesh и возможность работать не поверх инета из коробки

anonymous ()
Ответ на: комментарий от cocucka

А как это запретить-то? Оно ж распределённое

Ты как-то по-своему этот термин понимаешь что-ли? Каким образом распределённость может помешать запрету? Это ведь не магическое заклинание, позволяющее обойти DPI с помощью дружбы-магии.

zabbal ★★★★ ()
Ответ на: комментарий от commagray

на стандартизированный IETF MLS

Пока нет насколько я понимаю: https://messaginglayersecurity.rocks/mls-architecture/draft-ietf-mls-architecture.html

Хотя идея всё-равно хорошая. Интересно, что они по поводу non-repudiation будут делать, насколько я понимаю MLS позволяет и аналог OTR изобразить, и эквивалент GPG.

zabbal ★★★★ ()

Не кормите Костяна, это туповатый тролль. Он во всех темах постит свою хрень про мамкиных борцов. На деле скорее всего мелкий чекист, очень волнуется, что будет хороший мессенджер с шифрованием, а товарища майора в чатик не пустят. ;)

anonymous ()

На honor 9s не установилось. Не совместимость cpu_abi

xmikex ★★★★ ()
Ответ на: комментарий от anonymous

Не кормите Костяна, это туповатый тролль. Он во всех темах постит свою хрень про мамкиных борцов. На деле скорее всего мелкий чекист, очень волнуется, что будет хороший мессенджер с шифрованием, а товарища майора в чатик не пустят. ;)

Ты не понимаешь. Есть в Матриксе будут закрыты группы террористов, всякие синие киты, торговцы травкой и прочее – никто от этого не пострадает.

И если сообщество Матрикса этого делать не будет – а интрумента такого у него нету – он не заложен – то и сам Матрикс не боле чем детская поделка хайпующая на теме шифрования, секретности и прочего модного и молодёжного.

Речь ведь идёт только о публичных группах, куда может попасть случайный страждущий. И не о сдаче их властям с открытием переписки. А о переводе их из публичный в непубличные. Чтобы никто их не видел и не мог найти, без спец инфы/действий.

Если б в Матриксе был бы такой механизм. Типа выборов супер-модераторов, например. Которые уже могут решать такие вопросы для домена. Был бы другой разговор. И если можер тупит, просто кикаешь его. В чём проблема? Есть какая-то пробелма в этом? Stackoverfow со всеми своим репликами работает по такой схеме. И никого это не парит.

Иначе я просто не вижу будущего для Матрикс кроме как маргинальной поделки. На, внимание, основе логических выводов, которые я уже привёл. Пиу-пиу. Корми не корми. Говори не говори об этом – это просто так и всё. The foken reality.

kostyarin_ ★★ ()
Ответ на: комментарий от kostyarin_

Иначе я просто не вижу будущего для Матрикс кроме как маргинальной поделки. На, внимание, основе логических выводов, которые я уже привёл. Пиу-пиу. Корми не корми. Говори не говори об этом – это просто так и всё. The foken reality.

Это было весьма entertaining, хотелось бы ещё этих безапелляционных булок и стакан аналитики.
Только просьба подружить сказанное с докладом EU Agency for Cybersecurity, и последовавшим за этим контрактом с Бундесвером.

aidaho ★★★★★ ()
Ответ на: комментарий от aidaho

Только просьба подружить сказанное с докладом EU Agency for Cybersecurity, и последовавшим за этим контрактом с Бундесвером.

Можно подробнее, что за контракт и доклад?

anonymous ()
Ответ на: комментарий от anonymous

В 2019 рекомендательный орган EU по информационной безопасности упомянул Matrix как один из инструментов для безопасных коммуникаций.
По-моему, этот доклад: https://www.enisa.europa.eu/publications/secure-group-communications/at_download/fullReport

В 2020 Бундесвер получил на вооружение свой стек Matrix/Element под названием BwMessenger: https://esut.de/en/2020/11/meldungen/24138/matrix-messenger-fuer-die-bundeswehr/

aidaho ★★★★★ ()
Ответ на: комментарий от aidaho

Только просьба подружить сказанное с докладом EU Agency for Cybersecurity, и последовавшим за этим контрактом с Бундесвером.

Ну так серетность Матрикс, особенно после той утечки после того коммита, как раз под стать Бундесверу, особенно после той истории с прослушиванием фрау Меркель. Два эталона слились в экстазе.

Вот только я говрил не про секретность. А про блокировку. Пс, если что.

kostyarin_ ★★ ()
Ответ на: комментарий от kostyarin_

Вот только я говрил

Ты обо всём успел поговорить, интересующихся приглашаю в удалённые.

aidaho ★★★★★ ()

«Зарегистрируйтесь, чтобы сообщить свой адрес электронной почты разработчику приложения P2P Demo и получить доступ.»

anonymous ()

на телефонах пользователей запускается полноценный Matrix-сервер

Матрикс - это не p2p, а федеративная сеть.

Novator ★★★★ ()

Теперь 64гб памяти нужно не только на сервере, но и на клиенте?

В текущем виде на телефонах пользователей запускается полноценный Matrix-сервер

Лол, угадал.

В дальнейшем могут быть введены оптимизации, вроде механизма gossip или store-and-forward.

Сначала отказываются от libp2p, где это все уже реализовано, потом снова героически переизобретают. Классические matrix-макаки.

derlafff ★★★★★ ()
Последнее исправление: derlafff (всего исправлений: 1)

является распределённой базой данных, хранящей полную историю отправленных сообщений и данные участвующих пользователей

то есть теперь совершенно официально все что ты сказал будет запомнено навсегда?

anonymous ()

Типичная хипстота, не доведя до ума одно, забрасывать и клепать новые альфы, всё на жручих уеб-технологиях, но главное конечно побольше баззвордов навалить и трубить, по американской привычке, как о пришествии Христа.

anonymous ()

Децентрализация сосёт

Децентрализованные мессенжены сосут. Там либо нет хранения сообщений для тех кто не в эфире, либо есть, но в какой-нибудь распределённой децентрализованной базе данных размазанной по всем участникам сети, а значит дисковые вампиры будут хранить там бекапы и пр0н. Proof me, как говорится, wrong.

Camel ★★★★★ ()
Ответ на: Децентрализация сосёт от Camel

Re: Децентрализация сосёт

«либо нет хранения сообщений для тех кто не в эфире» - я считаю, что хранение сообщения в твоём мессенджере для того кому ты написал это хороший компромисс.

anonymous ()
Ответ на: комментарий от zabbal

А причем тут DPI? Во-первых matrix использует обычный REST API и его надо ещё и отличить от других, во-вторых это будет mesh-сеть, которая не обязательно будет соединяться через заблокированные каналы.

cocucka ★★★★★ ()
Ответ на: комментарий от Behem0th

Chat storage

А что мешает хранить прон в чатах централизованных месенджеров?

Ничего не мешает, и скорее всего его там немало хранится. Но с централизованными месенжерами это не моя проблема.

На самом деле, конечно, моя, потому что владельцы централизованных месенжеров конечно же перекладывают эту проблему на меня, окупая хранение пр0на и бекапов другими людьми торгуя моими данными. Но, полагаю, они всё же ведут какую-то борьбу с дисковыми вампирам.

Camel ★★★★★ ()
Ответ на: комментарий от cocucka

А причем тут DPI?

Потому что именно им такое и блокируют.

обычный REST API и его надо ещё и отличить от других

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

во-вторых это будет mesh-сеть

Аналогично - без разницы: с точки зрения блокировки протокола совершенно не важно считает-ли тот с кем ты соединяешься себя выделенным сервером или равноправным узлом сети. Блокируют ведь определённый протокол, а не конкретный хост.

zabbal ★★★★ ()
Последнее исправление: zabbal (всего исправлений: 1)
Ответ на: комментарий от kostyarin_

Иначе я просто не вижу будущего для Матрикс кроме как маргинальной поделки.

Это нормально что ты не видишь - ты ведь ламер, путающий jq и jquery.

zabbal ★★★★ ()
Ответ на: Chat storage от Camel

Но с централизованными месенжерами это не моя проблема.

Я использую в матрице kde.org сервер. Это тоже не моя проблема. Не понимаю чем принципиально отличается ситуация для одного или многих серверов.

То что в матрикс сервере может не быть нужных инструментов для контроля я могу понять. Но чтоб были принципиальные различия.

Behem0th ★★★★★ ()
Ответ на: Децентрализация сосёт от Camel

Re: Децентрализация сосёт

а значит дисковые вампиры будут хранить там бекапы и пр0н. Proof me, как говорится, wrong.

ну и наздоровье

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.