إصدار Dendrite 0.1.0 ، خادم اتصالات مع تنفيذ بروتوكول Matrix

نشرت إصدار خادم المصفوفة التغصنات 0.1.0، والذي يمثل انتقال التطوير إلى مرحلة اختبار بيتا. يتم تطوير Dendrite بواسطة الفريق الأساسي من مطوري منصة الاتصالات اللامركزية Matrix ويتم وضعه كتطبيق للجيل الثاني من مكونات خادم Matrix. على عكس الخادم المرجعي المشبك، مكتوب بلغة بايثون، كود Dendrite هذا تطوير في لغة الذهاب. كلا التطبيقين الرسميين مرخصان بموجب ترخيص Apache 2.0. في حدود المشروع RUMA ويجري تطوير نسخة من خادم Matrix بلغة Rust بشكل منفصل، والتي وزعت من خلال بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

ويهدف الخادم الجديد إلى تحقيق الكفاءة العالية والموثوقية وقابلية التوسع. يتفوق Dendrite على Synapse، ويتطلب ذاكرة أقل بكثير لتشغيله، ويمكن التوسع من خلال موازنة التحميل عبر عقد متعددة. تدعم بنية Dendrite القياس الأفقي وتعتمد على فصل المعالجات في شكل خدمات صغيرة، حيث يكون لكل مثيل خدمة صغيرة جداول خاصة به في قاعدة البيانات. يقوم موازن التحميل بإرسال المكالمات إلى الخدمات الصغيرة. لموازاة العمليات في التعليمات البرمجية، يتم استخدام مؤشرات الترابط (إجراءات الذهاب)، والتي تتيح لك استخدام موارد جميع مراكز وحدة المعالجة المركزية دون تقسيمها إلى عمليات منفصلة.

إصدار Dendrite 0.1.0 ، خادم اتصالات مع تنفيذ بروتوكول Matrix

Dendrite يدعم وضعين: متجانسة ومتعددة الليث. في الوضع المتجانس، يتم تجميع جميع الخدمات الصغيرة في ملف واحد قابل للتنفيذ، ويتم تنفيذها في عملية واحدة، وتتفاعل مباشرة مع بعضها البعض. في الوضع متعدد المكونات (الكتلة)، يمكن إطلاق الخدمات الصغيرة بشكل منفصل، بما في ذلك توزيعها عبر العقد المختلفة. تفاعل المكونات في
يتم تنفيذ الوضع متعدد المكونات باستخدام واجهة برمجة تطبيقات HTTP الداخلية والنظام الأساسي اباتشي كافكا.

يتم التطوير بناءً على مواصفات بروتوكول Matrix وباستخدام مجموعتي اختبار - اختبارات مشتركة في Synapse sytest ومجموعة جديدة تكملة. في المرحلة الحالية من التطوير، اجتاز Dendrite 56% من اختبارات واجهة برمجة تطبيقات العميل والخادم و77% من اختبارات واجهة برمجة تطبيقات الاتحاد، في حين تقدر تغطية الوظائف الفعلية بـ 70% لواجهة برمجة تطبيقات العميل والخادم و95% من واجهة برمجة تطبيقات الاتحاد.

تشير مرحلة الاختبار التجريبي إلى أن Dendrite جاهز للتنفيذ الأولي والانتقال إلى التطوير مع إصدار إصدارات جديدة بشكل دوري. بين الإصدارات، سيتم الآن تحديث نظام تخزين البيانات في قاعدة البيانات (على عكس تثبيت الشرائح من المستودع، لن يتم فقدان محتويات قاعدة البيانات بعد التحديث). لن يتم تقديم التغييرات التي تؤدي إلى كسر التوافق مع الإصدارات السابقة أو تغيير بنية قاعدة البيانات أو تتطلب تغييرات في التكوين إلا في الإصدارات الرئيسية. يوصى حاليًا باستخدام Dendrite في الوضع المتجانس جنبًا إلى جنب مع PostgreSQL DBMS لإنشاء خوادم منزلية صغيرة وعقد P2P. لا يُنصح باستخدام SQLite بعد بسبب المشكلات التي لم يتم حلها في التعامل مع العمليات المتزامنة.

تشمل الميزات التي لم يتم تنفيذها بعد في Dendrite تأكيدات استلام الرسائل، وعلامات القراءة، وإشعارات الدفع، وOpenID، وربط البريد الإلكتروني، والبحث من جانب الخادم، ودليل المستخدم، وقوائم تجاهل المستخدم، وإنشاء مجموعات ومجتمعات، وتقييم تواجد المستخدم عبر الإنترنت، ومدخلات الضيف، التفاعل مع شبكات الطرف الثالث.

تتوفر للاستخدام الوظائف الأساسية لغرف الدردشة (الإنشاء، والدعوات، وقواعد المصادقة)، ووسائل اتحاد المشاركين في الغرف، ومزامنة الأحداث بعد العودة من وضع عدم الاتصال، والحسابات، والملفات الشخصية، وإشارة الاتصال، وتنزيل الملفات وتحميلها (Media API)، تحرير الرسائل وقوائم ACL وربط العلامات والعمل مع قوائم الأجهزة والمفاتيح للتشفير الشامل.

دعونا نتذكر أن النظام الأساسي لتنظيم الاتصالات اللامركزية Matrix يستخدم HTTPS+JSON كوسيلة نقل مع إمكانية استخدام WebSockets أو بروتوكول يعتمد على CoAP+ضجيج. يتم تشكيل النظام كمجتمع من الخوادم التي يمكنها التفاعل مع بعضها البعض ومتحدة في شبكة لا مركزية مشتركة. يتم نسخ الرسائل عبر كافة الخوادم التي يتصل بها المشاركون في المراسلة. يتم نشر الرسائل عبر الخوادم بنفس الطريقة التي يتم بها نشر الالتزامات بين مستودعات Git. في حالة انقطاع الخادم مؤقتًا، لا يتم فقدان الرسائل، ولكن يتم نقلها إلى المستخدمين بعد استئناف الخادم للعمل. يتم دعم خيارات معرف المستخدم المختلفة، بما في ذلك البريد الإلكتروني ورقم الهاتف وحساب Facebook وما إلى ذلك.

لا توجد نقطة فشل واحدة أو التحكم في الرسائل عبر الشبكة. جميع الخوادم التي تغطيها المناقشة متساوية مع بعضها البعض.
يمكن لأي مستخدم تشغيل الخادم الخاص به وتوصيله بشبكة مشتركة. من الممكن إنشاء بوابات لتفاعل المصفوفة مع الأنظمة القائمة على بروتوكولات أخرى، على سبيل المثال، معد خدمات إرسال الرسائل في الاتجاهين إلى IRC وFacebook وTelegram وSkype وHangouts والبريد الإلكتروني وWhatsApp وSlack. بالإضافة إلى الرسائل النصية الفورية والمحادثات، يمكن استخدام النظام لنقل الملفات وإرسال الإشعارات،
تنظيم المؤتمرات عن بعد، وإجراء المكالمات الصوتية والمرئية. كما أنه يدعم ميزات متقدمة مثل إشعار الكتابة وتقييم تواجد المستخدم عبر الإنترنت وتأكيد القراءة ودفع الإشعارات والبحث من جانب الخادم ومزامنة السجل وحالة العميل.

المصدر: opennet.ru

إضافة تعليق