Matrix Federated Network Peer-to-Peer Client-in ilk buraxılışı

Eksperimental müştəri buraxılıb Riot P2P.


bunt - əvvəlcə federasiya şəbəkəsi üçün müştəri Matris. P2P modifikasiyası inteqrasiya vasitəsilə mərkəzləşdirilmiş DNS istifadə etmədən müştəriyə server tətbiqi və federasiya əlavə edir. libp2p, bu da istifadə olunur IPFS. Bu, səhifənin yenidən yüklənməsindən sonra sessiyanı saxlayan müştərinin ilk versiyasıdır, lakin növbəti əsas yeniləmələrdə (məsələn, 0.2.0) məlumatlar hələ də silinəcək. Buna görə də, vacib bir şey üçün müştəridən istifadə etmək tövsiyə edilmir.

Müştəri federasiya, otaq yaradılması və qlobal (serversiz!) otaqlar kataloqunun nümayişini həyata keçirir.

Bununla belə, DNS-dən istifadə edən əsas Matrix şəbəkəsi və libp2p-də Matrix şəbəkəsi hələ birləşə və bir-biri ilə qarşılıqlı əlaqədə ola bilməz.

Müştəridən istifadə etmək üçün giriş düyməsini sıxmağınız kifayətdir, bundan sonra şəbəkədə yaradılan identifikatoru alacaqsınız. Məlumat ixracı hələ dəstəklənmir.

Bu, mümkün konsepsiyanın qeyri-sabit təqdimatı olduğundan, problemlə üzləşə bilərsiniz:

  • Xidmət işçisi kimi işləyən server vaxt bitdikdə brauzer tərəfindən öldürülərsə, siz hesabınıza daxil ola bilməyəcək və ya digər müştərilərlə əlaqə saxlaya bilməyəcəksiniz. Belə bir problem Firefox-da aşkarlanıb, bunu 30 saniyə hərəkətsizlikdən sonra edir].
  • libp2p şəbəkə səviyyəsində, federasiya ilə bağlı problemlər yarada biləcək hərəkətlərin sayına dair vaxt məhdudiyyətləri var.

Matrix-in P2P versiyası üzərində işə başlaması tərtibatçıların öz istifadəçilərinə daha çox azadlıq vermək istəyi ilə bağlı idi. Mərkəzi serverdən ayrılma, yerli və mesh şəbəkələr daxilində və ümumiyyətlə, xarici şəbəkəyə çıxışın məhdud və ya olmadığı şəraitdə rabitəni asanlaşdırmağa imkan verir. Bu, həm də bu ssenaridə yalnız yazışmaların iştirakçıları tərəfindən saxlanılan ötürülən metadataların minimuma endirilməsi səbəbindən məxfiliyə müsbət təsir göstərir. Nəhayət, bu, daha çox daşınma və təhlükəsizliyə nail olmaq üçün cari Matrix konsepsiyalarını yenidən nəzərdən keçirməyə vadar edir.

Server API-nin tətbiqi server kompilyasiyası vasitəsilə həyata keçirilir Dendrit Veb versiyası və Elektron paketi vəziyyətində məlumatları yerli olaraq saxlamaq üçün IndexedDB və SQLite istifadə edərək, müştəri ilə eyni vaxtda Xidmət İşçisi şəklində işləyən WebAssembly koduna daxil edin.
Dendrite Go-da "ikinci nəsil" Matrix serverdir, o, hazırlanır və tam modul olmaq üçün nəzərdə tutulmuşdur və monolit şəkildə də istifadə edilə bilər. Modul formada Apache Kafka mikroservislər arasında qarşılıqlı əlaqə üçün istifadə olunur və monolit formada - Naffka. Dendrite-nin P2P versiyasını qurmaq üçün sənədləri tapa bilərsiniz GitHub-da.

Dendrite əvvəlcə birbaşa əvəzetmə üçün nəzərdə tutulmuş ümumi təyinatlı bir server olmaq üçün nəzərdə tutulmuşdu Synapse, performans və genişlənmə problemləri olan Python-da yazılmışdır. Lakin dəstək və Synapse-in əsas refaktorinqinə ehtiyac səbəbindən Dendrite inkişafı yol kənarına düşdü. Nəhayət, inkişaf yenidən başladı, lakin onlar mövcud kod bazasını ümumi təyinatlı kontekstdə deyil, brauzerlər və telefonlar kimi portativ və aşağı gücə malik müştəri qurğularına daxil etmək üçün uyğunlaşmaya diqqət yetirməyə qərar verdilər.

Hazırkı Dendrite tətbiqi hələ inkişafın ilk mərhələsindədir, lakin sadə federasiya üçün bu, artıq kifayətdir:

Müştəri-Server API-ləri: 34% (227/672 test) – 33%-dən yuxarı
Federasiya API-ləri: 34% (35/103 test) – 27%-dən yuxarı

Bu, P2P-ni həyata keçirmək üçün ilk cəhd deyil. Əvvəllər yaratmaq təşəbbüsü var idi Synapse üçün Yggdrasil şəbəkəsinə CoAP proxy.


Matrix protokolunun tərtibatçıları yalnız federasiyaya diqqət yetirmirlər və daha da mərkəzsizləşdirmə üçün alətlərlə sınaqdan keçirirlər. Məsələn, bir təcrübə aparıldı nəqliyyat səviyyəsində xərcləri azaltmaq. Bir şeytan inkişaf edir Pantalaimon - şifrələmə dəstəyi olmayan istənilən müştərinin şifrələnmiş mesajlarla əlaqə saxlaya və qarşılıqlı əlaqədə ola biləcəyi proxy. Görülən bütün təşəbbüslər gələcəkdə bunu təmin etmək məqsədi daşıyır serverə daxil olmaq məcburiyyətindən qurtulun, MXID-i aradan qaldırmaq, Riot P2P-də artıq qismən tətbiq olunan açıq açardan istifadə edərək şəbəkə ilə qarşılıqlı əlaqə.


Planlaşdırılan həyata keçirmə anlayışları haqqında daha ətraflı məlumat tapa bilərsiniz YouTube-da FOSDEM 2020 təqdimatında и son blog yazısı.

Köhnə proqramdakı kod əsasında Android üçün Riot P2P variantı da var. Gələcəkdə onun indiki vəziyyətə keçirilməsi planlaşdırılır. RiotX.

Üstəlik

  • Layihə təqdim olundu TARDİS (Time Agnostic Room DAG Inspection Service) Riot P2P əsasında Matrix otaqları üçün xətti hadisə qrafiki (DAG) sazlayıcısıdır.

  • Layihədə kəmər (Rust-da icma tərəfindən hazırlanmış server) indi şifrələmə və əlavələr həyata keçirilir.

  • Scala-da eksperimental server ortaya çıxdı - Maskaren.

Mənbə: linux.org.ru

Добавить комментарий