Dendrite 0.1.0 ning chiqarilishi, Matrix protokoli amalga oshirilgan aloqa serveri

nashr etilgan Matritsa serverining chiqarilishi Dendrit 0.1.0, bu rivojlanishning beta-sinov bosqichiga o'tishini belgilab berdi. Dendrite Matrix markazlashtirilmagan aloqa platformasini ishlab chiquvchilarning asosiy jamoasi tomonidan ishlab chiqilmoqda va Matrix server komponentlarining ikkinchi avlodini amalga oshirish sifatida joylashtirilgan. Malumot serveridan farqli o'laroq Sinaps, Python-da yozilgan, Dendrite kodi rivojlanmoqda Go tilida. Ikkala rasmiy dastur ham Apache 2.0 litsenziyasi ostida litsenziyalangan. Loyiha chegaralarida Ruma Matrix serverining Rust tilidagi versiyasi alohida ishlab chiqilmoqda, bu esa tarqaladi MIT litsenziyasi ostida.

Yangi server yuqori samaradorlik, ishonchlilik va masshtablilikka erishishga qaratilgan. Dendrite Synapse-dan ustun turadi, ishlashi uchun sezilarli darajada kamroq xotira talab qilinadi va bir nechta tugunlar bo'ylab yukni muvozanatlash orqali masshtablasha oladi. Dendrite arxitekturasi gorizontal masshtablashni qo'llab-quvvatlaydi va mikroservislar ko'rinishida ishlov beruvchilarni ajratishga asoslangan, bu erda har bir mikroservis namunasi ma'lumotlar bazasida o'z jadvallariga ega. Yuk balanslagichi mikroservislarga qo'ng'iroqlarni jo'natadi. Koddagi operatsiyalarni parallellashtirish uchun barcha protsessor yadrolarining resurslarini alohida jarayonlarga bo'lmasdan ishlatishga imkon beruvchi ish zarralari (routines) qo'llaniladi.

Dendrite 0.1.0 ning chiqarilishi, Matrix protokoli amalga oshirilgan aloqa serveri

Dendrite ikkita rejimni qo'llab-quvvatlaydi: monolit va polilit. Monolit rejimda barcha mikroservislar bitta bajariladigan faylga to'planadi, bitta jarayonda bajariladi va bir-biri bilan bevosita o'zaro ta'sir qiladi. Ko'p komponentli (klaster) rejimida mikroservislar alohida ishga tushirilishi mumkin, shu jumladan turli tugunlar bo'ylab taqsimlanadi. Komponentlarning o'zaro ta'siri
ko'p komponentli rejim ichki HTTP API va platformasi yordamida amalga oshiriladi Apache Kafka.

Rivojlanish Matritsa protokoli spetsifikatsiyalari asosida va ikkita test to'plami - Synapse uchun umumiy testlar yordamida amalga oshiriladi. tizim testi va yangi to'plam To'ldiruvchi. Rivojlanishning hozirgi bosqichida Dendrite Client-Server API testlarining 56% va Federatsiya API testlarining 77% dan oβ€˜tadi, real funksionallik qamrovi esa Client-Server API uchun 70% va Federatsiya API uchun 95% deb baholanadi.

Beta-sinov bosqichi Dendritening dastlabki joriy etish va yangi relizlarning davriy shakllanishi bilan rivojlanishga o'tishga tayyor ekanligini ko'rsatadi. Relizlar o'rtasida ma'lumotlar bazasida ma'lumotlarni saqlash sxemasi endi yangilanadi (ombordan bo'laklarni o'rnatishdan farqli o'laroq, yangilanishdan keyin ma'lumotlar bazasi tarkibi yo'qolmaydi). Orqaga qarab muvofiqlikni buzadigan, ma'lumotlar bazasi tuzilmasini o'zgartiradigan yoki konfiguratsiyani o'zgartirishni talab qiladigan o'zgarishlar faqat asosiy nashrlarda taqdim etiladi. Hozirgi vaqtda dendritdan kichik homeserverlar va P2P tugunlarini yaratish uchun PostgreSQL DBMS bilan birgalikda monolit rejimda foydalanish tavsiya etiladi. Bir vaqtning o'zida operatsiyalarni bajarish bilan bog'liq hal qilinmagan muammolar tufayli SQLite-dan foydalanish hali tavsiya etilmaydi.

Dendrite-da hali tatbiq etilmagan xususiyatlarga xabarlarni qabul qilishni tasdiqlash, o'qish belgilari, push-bildirishnomalar, OpenID, elektron pochta orqali bog'lash, server tomonida qidirish, foydalanuvchi katalogi, foydalanuvchi e'tibor bermaslik ro'yxati, guruhlar va hamjamiyatlarni yaratish, foydalanuvchining onlayn mavjudligini baholash, mehmonlar kirishlari, uchinchi tomon tarmoqlari bilan o'zaro aloqa.

Suhbat xonalari uchun asosiy funksiyalar (yaratish, taklif qilish, autentifikatsiya qilish qoidalari), xonalarda ishtirokchilarni birlashtirish vositalari, oflayn rejimdan qaytgandan keyin voqealarni sinxronlashtirish, hisoblar, profillar, terish ko'rsatkichi, fayllarni yuklab olish va yuklash (Media API), foydalanish mumkin. xabarlarni tahrirlash, ACLlar, teglarni bog'lash va qurilmalar ro'yxati va oxirigacha shifrlash uchun kalitlar bilan ishlash.

Eslatib o'tamiz, markazlashtirilmagan aloqalarni tashkil qilish platformasi Matrix HTTPS+JSON-dan WebSockets yoki protokolga asoslangan protokoldan foydalanish qobiliyatiga ega transport sifatida foydalanadi. CoAP+shovqin. Tizim bir-biri bilan o'zaro aloqada bo'lishi mumkin bo'lgan va umumiy markazlashtirilmagan tarmoqqa birlashtirilgan serverlar jamoasi sifatida shakllangan. Xabarlar xabarlar ishtirokchilari ulangan barcha serverlarda takrorlanadi. Xabarlar serverlar bo'ylab tarqaladi, xuddi Git repozitoriylari o'rtasida tarqatiladi. Vaqtinchalik server uzilib qolgan taqdirda, xabarlar yo'qolmaydi, lekin server ishini qayta boshlaganidan keyin foydalanuvchilarga uzatiladi. E-pochta, telefon raqami, Facebook hisob qaydnomasi va boshqalarni o'z ichiga olgan turli xil foydalanuvchi identifikatorlari imkoniyatlari qo'llab-quvvatlanadi.

Tarmoqdagi xatolik yoki xabarni boshqarishning yagona nuqtasi yo'q. Muhokama bilan qamrab olingan barcha serverlar bir-biriga teng.
Har qanday foydalanuvchi o'z serverini ishga tushirishi va uni umumiy tarmoqqa ulashi mumkin. Yaratish mumkin shlyuzlar Matritsaning boshqa protokollarga asoslangan tizimlar bilan o'zaro ta'siri uchun, masalan, tayyorlangan IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp va Slack-ga xabarlarni ikki tomonlama yuborish xizmatlari. Tezkor matnli xabarlar va chatlardan tashqari, tizim fayllarni uzatish, bildirishnomalar yuborish,
telekonferentsiyalarni tashkil qilish, ovozli va video qo'ng'iroqlarni amalga oshirish. Shuningdek, u matn terish haqida xabar berish, foydalanuvchining onlayn mavjudligini baholash, o'qishni tasdiqlash, push-bildirishnomalar, server tomonida qidirish, tarix va mijoz holatini sinxronlashtirish kabi ilg'or xususiyatlarni qo'llab-quvvatlaydi.

Manba: opennet.ru

a Izoh qo'shish