انتشار Dendrite 0.1.0، یک سرور ارتباطی با اجرای پروتکل Matrix

منتشر شده انتشار سرور ماتریس دندریت 0.1.0، که انتقال توسعه به مرحله آزمایش بتا را نشان داد. Dendrite توسط تیم توسعه اصلی پلتفرم ارتباطی غیرمتمرکز Matrix در حال توسعه است و به عنوان اجرای نسل دوم اجزای سرور Matrix قرار گرفته است. برخلاف سرور مرجع محل تماس دو عصب، نوشته شده در پایتون، کد Dendrite در حال توسعه است به زبان Go هر دو پیاده سازی رسمی تحت مجوز Apache 2.0 مجوز دارند. در محدوده پروژه روما نسخه ای از سرور Matrix به زبان Rust به طور جداگانه در حال توسعه است که توزیع شده توسط تحت مجوز MIT

هدف سرور جدید دستیابی به راندمان، قابلیت اطمینان و مقیاس پذیری بالا است. دندریت از Synapse بهتر عمل می کند، برای کار به حافظه کمتری نیاز دارد و می تواند از طریق متعادل کردن بار در چندین گره مقیاس شود. معماری دندریت از مقیاس بندی افقی پشتیبانی می کند و بر اساس جداسازی کنترل کننده ها در قالب میکروسرویس ها است، جایی که هر نمونه میکروسرویس جداول خود را در پایگاه داده دارد. متعادل کننده بار تماس ها را به میکروسرویس ها ارسال می کند. برای موازی کردن عملیات در کد، از رشته ها (روال های رفتن) استفاده می شود که به شما امکان می دهد از منابع تمام هسته های CPU بدون تقسیم آنها به فرآیندهای جداگانه استفاده کنید.

انتشار Dendrite 0.1.0، یک سرور ارتباطی با اجرای پروتکل Matrix

دندریت از دو حالت پشتیبانی می کند: یکپارچه و چند سنگی. در حالت یکپارچه، همه میکروسرویس ها در یک فایل اجرایی بسته بندی می شوند، در یک فرآیند واحد اجرا می شوند و به طور مستقیم با یکدیگر تعامل دارند. در حالت چند جزئی (خوشه ای)، میکروسرویس ها می توانند به طور جداگانه راه اندازی شوند، از جمله در گره های مختلف توزیع شوند. تعامل اجزاء در
حالت چند جزء با استفاده از API و پلتفرم HTTP داخلی انجام می شود آپاچی کافکا.

توسعه بر اساس مشخصات پروتکل Matrix و با استفاده از دو مجموعه آزمایشی - آزمایش‌های مشترک برای Synapse انجام می‌شود. سیستم و یک مجموعه جدید متمم. در مرحله کنونی توسعه، Dendrite 56% از تست‌های Client-Server API و 77% از تست‌های Federation API را گذرانده است، در حالی که پوشش عملکرد واقعی 70% برای Client-Server API و 95% برای Federation API تخمین زده می‌شود.

مرحله آزمایش بتا نشان می دهد که دندریت برای اجرای اولیه و انتقال به توسعه با شکل گیری دوره ای نسخه های جدید آماده است. در بین نسخه ها، طرح ذخیره سازی داده ها در پایگاه داده اکنون به روز می شود (برخلاف نصب برش ها از مخزن، محتویات پایگاه داده پس از به روز رسانی از بین نمی روند). تغییراتی که سازگاری به عقب را از بین می‌برند، ساختار پایگاه داده را تغییر می‌دهند یا به تغییرات پیکربندی نیاز دارند، فقط در نسخه‌های اصلی ارائه می‌شوند. دندریت در حال حاضر توصیه می‌شود که در حالت یکپارچه همراه با PostgreSQL DBMS برای ایجاد سرورهای خانگی کوچک و گره‌های P2P استفاده شود. استفاده از SQLite به دلیل مشکلات حل نشده در مدیریت عملیات همزمان هنوز توصیه نمی شود.

ویژگی‌هایی که هنوز در Dendrite پیاده‌سازی نشده‌اند عبارتند از تأیید دریافت پیام، علامت‌های خواندن، اعلان‌های فشار، OpenID، اتصال ایمیل، جستجوی سمت سرور، فهرست کاربری، فهرست‌های نادیده‌گرفتن کاربر، ایجاد گروه‌ها و جوامع، ارزیابی حضور آنلاین کاربر، ورودی‌های مهمان، تعامل با شبکه های شخص ثالث

در دسترس برای استفاده، قابلیت های اساسی برای اتاق های چت (ایجاد، دعوت، قوانین احراز هویت)، ابزارهای اتحادیه شرکت کنندگان در اتاق ها، همگام سازی رویدادها پس از بازگشت از حالت آفلاین، حساب ها، نمایه ها، شماره گیری، دانلود و آپلود فایل ها (Media API)، ویرایش پیام ها، ACL ها، اتصال برچسب ها و کار با لیست دستگاه ها و کلیدها برای رمزگذاری سرتاسر.

به یاد بیاوریم که پلتفرم سازماندهی ارتباطات غیرمتمرکز ماتریس از HTTPS+JSON به عنوان یک انتقال با قابلیت استفاده از WebSockets یا یک پروتکل مبتنی بر CoAP+سر و صدا. این سیستم به عنوان جامعه ای از سرورها تشکیل شده است که می توانند با یکدیگر تعامل داشته باشند و در یک شبکه غیرمتمرکز مشترک متحد شوند. پیام ها در تمام سرورهایی که شرکت کنندگان پیام به آنها متصل هستند، تکرار می شود. پیام ها به همان روشی که commit ها بین مخازن Git منتشر می شوند، در سرورها منتشر می شوند. در صورت قطع موقت سرور، پیام ها از بین نمی روند، اما پس از از سرگیری کار سرور به کاربران منتقل می شوند. گزینه های مختلف شناسه کاربری، از جمله ایمیل، شماره تلفن، حساب فیس بوک و غیره پشتیبانی می شوند.

هیچ نقطه ای از شکست یا کنترل پیام در سراسر شبکه وجود ندارد. همه سرورهای تحت پوشش بحث با یکدیگر برابر هستند.
هر کاربر می تواند سرور خود را اجرا کرده و آن را به یک شبکه مشترک متصل کند. امکان ایجاد وجود دارد دروازه ها برای تعامل ماتریس با سیستم های مبتنی بر پروتکل های دیگر، به عنوان مثال، آماده شده خدمات ارسال دو طرفه پیام به IRC، فیس بوک، تلگرام، اسکایپ، Hangouts، ایمیل، واتس اپ و اسلک. علاوه بر پیام‌های متنی فوری و چت، از این سیستم می‌توان برای انتقال فایل‌ها، ارسال اعلان‌ها،
سازماندهی کنفرانس های تلفنی، برقراری تماس های صوتی و تصویری. همچنین از ویژگی‌های پیشرفته‌ای مانند اعلان تایپ، ارزیابی حضور آنلاین کاربر، تأیید خواندن، اعلان‌های فشاری، جستجوی سمت سرور، همگام‌سازی تاریخچه و وضعیت مشتری پشتیبانی می‌کند.

منبع: opennet.ru

اضافه کردن نظر