Matrix federatsiya tarmog'i uchun Peer-to-Peer mijozining birinchi versiyasi

Eksperimental mijoz chiqarildi Riot P2P.


Riot - dastlab federatsiyalangan tarmoq uchun mijoz Matrix. P2P modifikatsiyasi integratsiya orqali markazlashtirilgan DNS-dan foydalanmasdan mijozga serverni amalga oshirish va federatsiyani qo'shadi. libp2p, bu ham ishlatiladi IPFS. Bu sahifani qayta yuklashdan keyin seansni saqlaydigan mijozning birinchi versiyasidir, ammo keyingi asosiy yangilanishlarda (masalan, 0.2.0) ma'lumotlar hali ham o'chiriladi. Shuning uchun mijozdan muhim narsa uchun foydalanish tavsiya etilmaydi.

Mijoz federatsiya, xona yaratish va global (serversiz!) xonalar katalogini ko'rsatishni amalga oshiradi.

Biroq, DNS-dan foydalanadigan asosiy Matrix tarmog'i va libp2p-dagi Matrix tarmog'i hali birlasha olmaydi va bir-biri bilan o'zaro ta'sir qila olmaydi.

Mijozdan foydalanish uchun tizimga kirish tugmasini bosing, shundan so'ng siz tarmoqda yaratilgan identifikatorni olasiz. Maʼlumotlarni eksport qilish hali qoʻllab-quvvatlanmaydi.

Bu mumkin bo'lgan kontseptsiyaning beqaror taqdimoti bo'lgani uchun siz muammoga duch kelishingiz mumkin:

  • Agar xizmat ko'rsatuvchi ishchi sifatida ishlayotgan server vaqt tugashi bilan brauzer tomonidan o'ldirilgan bo'lsa, siz hisobingizga kira olmaysiz yoki boshqa mijozlar bilan muloqot qila olmaysiz. Bunday muammo Firefox-da aniqlangan, bu buni 30 soniya harakatsizlikdan keyin bajaradi].
  • libp2p tarmog'i darajasida federatsiya bilan bog'liq muammolarni keltirib chiqarishi mumkin bo'lgan harakatlar soni bo'yicha vaqt cheklovlari mavjud.

Matrixning P2P versiyasi ustida ish boshlanishi ishlab chiquvchilarning o'z foydalanuvchilariga ko'proq erkinlik berish istagi bilan bog'liq edi. Markaziy serverdan ajratish mahalliy va tarmoq tarmoqlari ichida va umuman, tashqi tarmoqqa kirish cheklangan yoki mavjud bo'lmagan sharoitlarda aloqani osonlashtirishga imkon beradi. Bu, shuningdek, ushbu stsenariyda faqat yozishmalar ishtirokchilari tomonidan saqlanadigan uzatiladigan metama'lumotlarning minimallashtirilishi tufayli maxfiylikka ijobiy ta'sir ko'rsatadi. Oxir oqibat, bu ko'proq portativlik va xavfsizlikka erishish uchun joriy Matritsa kontseptsiyalarini qayta ko'rib chiqishga olib keladi.

Server API-ni amalga oshirish server kompilyatsiyasi orqali amalga oshiriladi Dendrit WebAssembly kodiga kiriting, u mijoz bilan bir vaqtning o'zida xizmat ko'rsatish xodimi shaklida ishlaydi, veb-versiya va elektron o'ramida ma'lumotlarni mahalliy saqlash uchun IndexedDB va SQLite-dan foydalanadi.
Dendrite Go'dagi "ikkinchi avlod" Matrix serveri bo'lib, u ishlab chiqilmoqda va to'liq modulli bo'lishga mo'ljallangan va monolit holda ham foydalanish mumkin. Modulli shaklda Apache Kafka mikroservislar o'rtasidagi o'zaro ta'sir qilish uchun ishlatiladi va monolit shaklda - Naffka. Dendritening P2P versiyasini yaratish uchun hujjatlarni topish mumkin GitHub-da.

Dendrite dastlab to'g'ridan-to'g'ri almashtirish uchun mo'ljallangan umumiy maqsadli server bo'lishi kerak edi Sinaps, Python-da yozilgan, unumdorlik va miqyoslash muammolari mavjud. Ammo Synapse-ni qo'llab-quvvatlash va katta refaktoring zarurati tufayli Dendrite rivojlanishi yo'l chetiga tushib qoldi. Oxir-oqibat, rivojlanish qayta boshlandi, lekin ular mavjud kod bazasini umumiy maqsadli kontekstda emas, balki brauzerlar va telefonlar kabi portativ va kam quvvatli mijoz qurilmalariga joylashtirish uchun moslashishga e'tibor qaratishga qaror qilishdi.

Hozirgi Dendrite dasturi hali rivojlanishning dastlabki bosqichida, ammo bu oddiy federatsiya uchun etarli:

Client-Server API'lari: 34% (227/672 test) - 33% dan yuqori
Federatsiya API'lari: 34% (35/103 test) - 27% dan

Bu P2Pni amalga oshirishga birinchi urinish emas. Ilgari yaratish tashabbusi bor edi Synapse uchun Yggdrasil tarmog'iga CoAP proksi-server.


Matrix protokolini ishlab chiquvchilar faqat federatsiyaga e'tibor qaratmaydilar va yanada katta markazsizlashtirish vositalari bilan tajriba o'tkazmoqdalar. Masalan, tajriba o'tkazildi transport darajasida xarajatlarni kamaytirish. Jin rivojlanadi Pantalaimon - shifrlashni qo'llab-quvvatlamaydigan har qanday mijoz ulanishi va shifrlangan xabarlar bilan o'zaro aloqada bo'lishi mumkin bo'lgan proksi-server. Ko‘rilayotgan barcha tashabbuslar kelajakda buni ta’minlashga qaratilgan serverga kirishni bog'lashdan xalos bo'ling, MXID-ni yo'q qilish, Riot P2P-da qisman amalga oshirilgan ochiq kalit yordamida tarmoq bilan o'zaro ishlash.


Rejalashtirilgan amalga oshirish tushunchalari haqida batafsil ma'lumotni topishingiz mumkin YouTube'dagi FOSDEM 2020 taqdimotida и so'nggi blog posti.

Shuningdek, Riot P2P opsiyasi ham mavjud Android, eski ilova kodiga asoslangan. Kelajakda uni hozirgisiga ko'chirish rejalashtirilgan. RiotX.

Bundan tashqari

  • Loyiha taqdim etildi TARDIS (Time Agnostic Room DAG Inspection Service) Riot P2P asosidagi Matrix xonalari uchun chiziqli hodisalar grafigi (DAG) tuzatuvchisi.

  • Loyihada quvur (Rustda hamjamiyat tomonidan ishlab chiqilgan server) hozir shifrlash va qo'shimchalar amalga oshirildi.

  • Scala-da eksperimental server paydo bo'ldi - Maskaren.

Manba: linux.org.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster