LINUX.ORG.RU

Первый выпуск Peer-to-Peer клиента федеративной сети Matrix

 dendrite, , , ,


1

3

Состоялся выпуск экспериментального клиента Riot P2P.

Riot — изначально клиент для федеративной сети Matrix. P2P-модификация добавляет в клиент реализацию сервера и федерацию без использования централизованного DNS посредством интеграции libp2p, которая также используется в IPFS. Это первая версия клиента, которая сохраняет сессию после перезагрузки страницы, но в следующих мажорных обновлениях (например, 0.2.0) данные всё равно будут удалены. Поэтому использовать клиент для чего-то важного не рекомендуется.

В клиенте реализована федерация, создание комнат и отображение глобального (бессерверного!) каталога комнат.

При этом основная сеть Matrix, использующая DNS, и сеть Matrix на libp2p пока что не могут федерироваться и взаимодействовать друг с другом.

Для использования клиента достаточно нажать кнопку входа, после чего вы получите сгенерированный ID в сети. Экспорт данных пока не поддерживается.

Так как это нестабильная презентация возможной концепции, вы можете столкнуться с неприятностями:

  • Вы не сможете зайти в свой аккаунт или взаимодействовать с другими клиентами, если сервер, запущенный в виде Service Worker, будет убит браузером по истечении времени ожидания. Такая проблема замечена у Firefox, который делает это спустя 30 секунд бездействия].
  • На уровне сети libp2p действуют ограничения на количество выполняемых действий по времени, что может вызвать проблемы с федерацией.

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

Реализация серверного API достигается благодаря компиляции сервера Dendrite в код WebAssembly, который запускается одновременно с клиентом в виде Service Worker, использующий IndexedDB и SQLite для хранения данных локально, в случае с веб-версией и Electron-обёрткой. Dendrite — это разрабатываемый «сервер второго поколения» Matrix на языке Go, ориентированный на полную модульность, который также возможно использовать в монолитном виде. В модульном виде для взаимодействия микросервисов используется Apache Kafka, а в монолитном — Naffka. Документацию по сборке P2P-версии Dendrite можно найти на GitHub.

Dendrite изначально задумывался как сервер общего назначения, который должен был быть прямой заменой Synapse, написанного на Python, имеющего проблемы с производительностью и масштабируемостью. Но из-за необходимости в поддержке и серьёзном рефакторинге Synapse, разработка Dendrite отошла на второй план. В конечном итоге разработка возобновилась, однако уже существующую кодовую базу решили развивать не в контексте общего назначения, а сфокусироваться на адаптации для встраивания в портативные и маломощные клиентские устройства, вроде браузеров и телефонов.

Текущая реализация Dendrite находится ещё на ранней стадии разработки, но этого уже достаточно для простой федерации:

Client-Server APIs: 34% (227/672 tests) - up from 33%
Federation APIs: 34% (35/103 tests) - up from 27%

Это не первая попытка реализации P2P. Ранее появлялась инициатива по созданию CoAP-прокси в сеть Yggdrasil для Synapse.

Разработчики протокола Matrix не зацикливаются на одной только федерации и экспериментируют с инструментами для ещё большей децентрализации. Например, был проведён эксперимент для сокращения издержек на транспортном уровне. Развивается демон Pantalaimon — прокси, к которому может подключиться любой клиент без поддержки шифрования и взаимодействовать с зашифрованными сообщениями. Все проведённые инициативы нацелены на то, чтобы в будущем избавиться от привязки логина к серверу, упразднив MXID, взаимодействуя с сетью с помощью публичного ключа, что уже частично реализовано в Riot P2P.

Найти более подробную информацию по концепциям планируемых реализаций можно в презентации FOSDEM 2020 на YouTube и недавно вышедшем блог-посте.

Существует также вариант Riot P2P для Android, основанный на коде старого приложения. В будущем планируется перевести его на актуальный RiotX.


Кроме того

  • Представлен проект TARDIS (Time Agnostic Room DAG Inspection Service) — отладчик линейного графа событий (DAG) для Matrix-комнат на основе Riot P2P.

  • В проекте Conduit (разрабатываемом сообществом сервере на языке Rust) теперь реализованы шифрование и вложения.

  • Появился экспериментальный сервер на Scala — Mascarene.

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

★★★★★

Проверено: alpha ()
Последнее исправление: alpha (всего исправлений: 30)

Ответ на: комментарий от bernd

А где нельзя-то? Даже SMS-ками можно ссылки на картинки слать.

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

без какой-либо поддержки скрытосетей

Про Yggdrasil не слышали, да? Там настоящие IPv6, без необходимости заворачивать трафик из программ через прокси и прочие костыли.

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

если протерять сервер вместе с бэкапами (ТС знает!)

Тогда она будет восстановлена с серверов других участников переписки.

или если пользователь сессию грохнет/протеряет вместе с ключами?

То он пойдёт к себе в сейф, достанет оттуда recovery passphrase и получит свои ключи обратно. Как вариант, подгрузит их с других устройств, если они у него есть. Ну и в любом случае история всё равно останется на месте, а то, что пользователь не может её прочитать — это уже его личные половые проблемы.

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

могли танцевать IPFS без рисков

Всё так. Мы на днях базарили с одним молодым бизнесменом из Финляндии — оказывается, в сознании широких масс уже сформировался пласт технологий: этот самый IPFS, биткоин, кефириум, Opera/Brave — которые предоставляют в целом то же самое, что классические криптосети да торренты, только не зашкварены стереотипами про террористов, киллеров и цопэ. Посему I2P массовый пользователь-сноуденопараноик не схавает, а вот если сделать такое же и обозвать P2I, то охотно положит в рот. Такие пирожки: никакого технического бэкграунда, решает сугупо маркетинг и хайп.

Технически ничто не мешает террористам класть в IPFS всякую муть, но пока это массово не делается, то можно его задвигать. А когда зашкварится — драть когти, ага.

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

говнохромоподобные браузеры на 1 страничку по гигу запросто могут выделить

И виноваты в этом браузеры, а не страничка, да? ;) Дайте угадаем, под другими браузерами эта же страничка не фурычит или еле ползает?

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

но дипломированный полит агитатор

Чего ж у этого агитатора аудиторая такая скудная, на фоне Facebook/WhatsApp/WeChat/Viber/LINE?

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

С чего Вы взяли, что оно только под десктоп? И что
делать мессенджер только под десктоп или преимущественно
под десктоп кому-то упёрлось в 2#20-м?

Кому в P2P-сети нужны дебилы с телефонами и планшетами?
Какую ценность для сообщества они представляют?

Они будут делать контент? Нет.
Они будут держать и раздавать контент? Нет.

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

Запомни: здоровая P2P-сеть может функционировать только за счет созидательных участников и на базе полноценных десктопных компьютеров - с нормальными дисками и со стабильными каналами.

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

не смуззихлебных лет

Смузихлёбству все возрасты покорны! И несмузихлёбству тоже. Что за эйджизм?

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

С чего Вы взяли, что оно только под десктоп? И что делать мессенджер только под десктоп или преимущественно под десктоп кому-то упёрлось в 2#20-м?

Плюсую.

Это разве не относится к категории ПО, которое Их Величество делать не собираются?

Нужно дождаться определенного солнцестояния, чтобы планеты выстроились в ряд, Его Сиятельство проспалось, тогда и с челобитной подойти. Сотрясая дарами :)

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

с серверов других участников переписки

А если все полтора участника сидели на этом же сервере?

достанет оттуда recovery passphrase

Которые зафорсили только недавно, когда уже «гром грянул», ну да.

а то, что пользователь не может её прочитать — это уже его личные половые проблемы

Особенно когда пользователя внезапно от интернетов отрезало, ага. Приличные IM хранят историю или копию истории на локахосте. У шматричных клиентов с этим поголовно проблемы, кстати. Nheko/Quaternion хранят только кэш, и тот в велосипедном формате. purple-matrix неюзабелен, ибо открывает при каждом реконнекте все чаты. Riot и некоторые прочие и вовсе чисто облачные… Благо, хоть matrix-archive есть, и тот приходится допиливать.

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

Чего ж у этого агитатора аудиторая такая скудная

Как по мне, так непозволительно широкая.

Смузихлёбству все возрасты покорны! И несмузихлёбству тоже. Что за эйджизм?

Да. Но в лично моих контрольных группах, процентов Y поколения, заметно выше, чем олдов. Хотя и олды таки есть да, непосредственно в данном топике такой экземпляр встречался. Но из того поколения - это, к счастью, меньшинство. А вот из Yков…скорее большинство.

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

дебилы с телефонами и планшетами?

Корона череп не жмёт, Ваше Величество?

Они будут держать и раздавать контент?

Ну дак в попсовом ваззапе держат же. Всю историю переписки (а другого конь-тента в данном конь-тексте и нет). Почему тут не будут?

только за счет созидательных участников и на базе полноценных десктопных компьютеров - с нормальными дисками и со стабильными каналами

Которые безвылазно сидят в своей конуре, ясно ;) (btw, опять подколка в сторону ТС). Нормальные люди таки куда-то вылезают. И IM им нужны для связи, в том числе (скорее даже особенно!) в процессе вылазок. И там вполне таки можно созидать конь-тент. Основная масса фоточек где делается? правильно, на вылазках, дома-то кроме своей сраной кошки и ковра фоткать толком нечего. И если ноут с мощным десктопным железом найти ещё реально (если имплаить, что такую дорогую машинку будут таскать где попало), то вот требование к стабильному каналу явно отпадает.

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

непозволительно широкая

С аудиторией поуже есть другие продукты.

А вот из Yков

Пхех, уже Z подрастает и начинает понемногу набивать галеры, провозглашая свои порядки.

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

А что ЛОРовское сообщество может предложить в дар Их Величеству? Лулзы разве что.

За написание синапса на крестах, готов донатить щедро.:) Думаю и коллеги подтянутся. Ради такого то дела!!!

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

Пхех, уже Z подрастает и начинает понемногу набивать галеры, провозглашая свои порядки.

И в этом есть глубокая печаль.

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

А если Они и так зарабатывают 300k/сек.? Хватит ли донатов?

Тогда и донаты вестим не нужны. Возвернем лулзами)

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

Дедушка, Вы таблетки-то не забыли принять с утра?

Запамятовал назначение.

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

А если все полтора участника сидели на этом же сервере?

То они ССЗБ.

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

Которые зафорсили только недавно, когда уже «гром грянул», ну да.

Это когда конкретно? Тебе знакомо такое слово как «бета» (из которой шифрование вышло максимум месяц назад, в то время как резервное копирование сессионных ключей есть уже как минимум год)?

Особенно когда пользователя внезапно от интернетов отрезало, ага.

Проблемы клиентов, не технологии.

Riot и некоторые прочие и вовсе чисто облачные…

Что значит «чисто облачные»? Ты вообще в курсе, что Riot — это кусок жс, который при желании можно хоть локально скачать и локально же пользоваться? И историю он хранит вполне себе в IndexedDB.

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

историю переписки
масса фоточек

Ты не знаешь, что такое контент.
Тыканье пальцами в тачпад и кривляние перед камерой - это не контент. Это именно «конь-тент» для дебилов, паразитов и дегенератов - это бесполезное мясо в P2P-сетях не нужно.

в процессе вылазок. И там вполне таки можно созидать конь-тент.

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

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

Ты не знаешь, что такое контент. Тыканье пальцами в тачпад и кривляние перед камерой - это не контент. Это именно «конь-тент» для дебилов, паразитов и дегенератов - это бесполезное мясо в P2P-сетях не нужно.

Я дичайше приношу пардоны, что встреваю в диалог столь высоких господ, но скажите пожалуйста, если в рамках корпоративных коммуникаций, я использую сабж, как альтернативу шлаку тыкая пальцы, я дебил, паразит и дегенерат? Ведь обсуждение простых моментов в команде не стоит выносить в жиру и прочие ютреки и даже православные редмайны. Да?

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

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

Ну то есть если она осталась у кого-то на локалхосте, то это тоже считается? Ну тогда любой IM подойдёт, который достаточно неогорожен, чтобы подключить его к libpurple, а также некоторые другие.

Тебе знакомо такое слово как «бета»

Google ВиО до скончания дней своих красовался плашкой «beta». Да, @fornlr?

Проблемы клиентов, не технологии.

Здрасьтеприехали, а технология для кого?

И историю он хранит вполне себе в IndexedDB

И браузер её гарантированно не протеряет внезапно, да? :3

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

Когла 300к сек, деньги теряют первоначальное значение. Меняется восприятие. И тогда да, за хороший лулз не жалко :)

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

Ну то есть если она осталась у кого-то на локалхосте, то это тоже считается?

Нет, пока что считается только история в полноценном виде (в виде графа), то есть на серверах. Но сабж как раз в общем про то, чтобы история на локалхостах тоже считалась.

И браузер её гарантированно не протеряет внезапно, да? :3

Не гарантированно, но и не протеряет.

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

Ты не знаешь, что такое контент.

Нет, это Вы илитка с завышенными требованиями ;) Ещё раз повторяем: корона череп не жмёт?

это бесполезное мясо в P2P-сетях не нужно

А почему Вы решаете, что там нужно, а что нет? Вы вообще кто?

На пальцетык-гаджетах кроме «конь-тента» ничего и не создашь

Вы просто не осилили. На iPad вон даже Photoshop уже портируют.

специализированных десктопных программах

А CLI в пролёте?!

с помощью клавиатуры и мыши

И в чём проблема подключить их к «пальцетыкалке», раз уж палец к мышке прирос? Клавиатура в приличных мобильниках и вовсе из коробки.

создания музыки

SunVox первоначально под КПК и делался, например.

и фильмов

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

и кончая написанием статей, программ и составлением документов

А уж сред программирования и текстовых процессоров и вовсе навалом.

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

я использую сабж, как альтернативу шлаку тыкая пальцы, я дебил, паразит и дегенерат?

Да, ведь можно голосовать рублём за вымирающие смартфоны и фичерфоны с клавиатурой, а Вы вместо этого тыкаете сосиской в экран, как обезьяна.

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

(в виде графа), то есть на серверах

А клиент её так схоронить не может, что ли?

Не гарантированно

То есть сами себе противоречите, понятно :3

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

А клиент её так схоронить не может, что ли?

Нет, не может, это слишком накладно.

То есть сами себе противоречите, понятно :3

Где противоречу? Я нигде не говорил, что конкретный клиент Riot ни при каких условиях не теряет свой кэш.

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

Вы просто не осилили. На iPad вон даже Photoshop уже портируют.

Да, г-ди! Сиди и тыкай пальцем в браузер на телефоне!
На Земле 6,5 млрд. дураков и рабов корпораций - одним больше, одним меньше.

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

Щито? Юзал ежевику до слива бб х. На ведроиде оно не нужно. Сосиской тыкаю не в экран, лол.

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

это слишком накладно

Почему это?

Я нигде не говорил, что конкретный клиент Riot ни при каких условиях не теряет свой кэш

Так толку с истории, которая осталась только на сервере и недоступна клиентам? И какой вообще сервер в контексте треда?

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

6,5 млрд.

Какая-то скромная оценка.

одним больше, одним меньше

Желаете повторить судьбу Хасана Сарбани?

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

Юзал ежевику до слива бб х

Ну и почему свалили с неё на ведроид, а не на KaiOS?

На ведроиде оно не нужно

Положение дел ещё можно спасти. Хотя бы в опенсорсные приложения толковую поддержку клавиатуры добавлять. Многие из них, как оказалось, даже TalkBack зачитать не может, потому что графика выводится напрямую в буфер, а не декорированием системных виджетов. Либо некоторая функциональность завязана на свайпах, которые и виртуальным курсором-то нетривиально сделать, не говоря уж о чисто клавиатурном управлении.

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

Ну и почему свалили с неё на ведроид, а не на KaiOS?

Первоначально свалил на ифон. Утратил полимеры, когда пол годя спустя в разговорном динамике стал слышать чуть менее чем нихрена. Затем свалил на ведро в гнусе. Пока работает, но не впечатляет.

Вообще в красноглазых мечтах остался идеальный симбиоз: приличная трубка кнопочная звонилка+планшет дюймов 7 с возможностью заливки на него пинукса. Но этой мечте пока не суждено сбыться. Подобного планшета на рынке не нашел. Плюс линупсовые де для тыкания пальцем все еще не готовы. О чем Вы ниже и писали…

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

Почему не кайос? Тыкал ноклу слайдыр. Они никакое и люто тормозит.

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

Почему это?

Эти поля слишком маленькие, чтобы привести доказательство.

Так толку с истории, которая осталась только на сервере и недоступна клиентам?

Она может снова стать доступна.

И я не понял, у тебя претензии к локальному кэшу истории, что при определённых условиях он может инвалидироваться? Ну так это тебе лечиться нужно.

И какой вообще сервер в контексте треда?

Ты уж определись, мы разговариваем в контексте треда или в контексте текущей релизной версии. Потому что если мы разговариваем в контексте треда, то все твои предыдущие претензии в принципе ничтожны.

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

Эти поля слишком маленькие, чтобы привести доказательство.

Вы там ФП упоролись, да? :3

Она может снова стать доступна.

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

у тебя претензии к

Вашему утверждению космического масштаба и космической же глупости:

гарантированно не просирает историю

текущей релизной версии

А с какими текущими релизными версиями чего тогда сравнение? Там это, ждаббер-сервера тоже в MAM научились давно ;)

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

Если жаббер-сервер упадёт, то история за время его даунтайма просрётся. Если Matrix-сервер упадёт или сгорит нахер вместе с бэкапами, то история не просрётся и будет выкачана заново с других серверов.

На клиентов это не распространяется, потому что клиенты, строго говоря, хранят не всю историю, а её представление, достаточное для показа пользователю (но недостаточное для синхронизации). Поэтому, пока история полноценно существует на этом шарике хотя бы в одном экземпляре, Matrix её не потеряет. Если все полтора собеседника сидят на одном и том же сервере, то они ССЗБ.

Вашему утверждению космического масштаба и космической же глупости

Как бы там ни было, со шлангом космического масштаба в лице моего собеседника оно всё равно не сравнится.

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

почему не UMPC тогда? 

Мысль интересная! Погуглил, живого в продаже особо ничего нет. Да и достаточно громоздко…

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

разрабы пользуются тем, что предоставляют браузеры. пока их не обрубить до уровня 2002 года счастье не придет.

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

Ну да. Это как головную боль лечить гильотиной.

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

история не просрётся и будет выкачана заново с других серверов

Ещё раз повторяем: каких серверов, если клиенты на тех же? Вы предлагаете каждому свой сервер заводить?

хранят не всю историю, а её представление, достаточное для показа пользователю

Ну вот и надо реплицировать на клиентах, а пока нет хотя бы этого — полумеры за громкими заявлениями.

Если все полтора собеседника сидят на одном и том же сервере, то они ССЗБ

Ну с таким подходом и пишущие на лежащий сервер — ССЗБ ;)

В Delta.Chat такой проблемы явно нет, потому как в SMTP издревле заложена повторная отправка. Опять ничего инновационного.

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