Първият RELEASE на клиент за безплатна мрежа Matrix

Състоя се пускането на експериментален клиент 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 все още е на ранен етап на разработка, но това е достатъчно за простa федерация:

Client-Server APIs: 34% (227/672 теста) — повишение от 33%
Federation APIs: 34% (35/103 теста) — повишение от 27%

Това не е първият опит за реализация на P2P. По-рано имаше инициатива за създаване на CoAP прокси в мрежата Yggdrasil за Synapse.


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


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

Съществува също вариант Riot P2P за Android, основан на кода на старото приложение. В бъдеще се планира да бъде прехвърлен на актуалния RiotX.

Освен това

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

  • В проекта Conduit (разработван от общността сървър на езика Rust) сега реализирано е криптиране и вложения.

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

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster