Дендрит, сервер зв'язку з реалізацією протоколу Matrix

Дендріт - це сервер зв'язку тобто буття розроблена командою Matrix і він позиціонується як реалізація другого покоління серверних компонентів Matrix.

На відміну від довідкового сервера Synapse, написаного на Python, код Dendrite розроблений у Go. Обидві офіційні реалізації розповсюджуються під ліцензією Apache 2.0.

В рамках проекту Ruma розробляється окрема версія сервера Matrix на мові Rust, яка поширюється за ліцензією MIT.

Новий сервер має на меті досягнення високої ефективності, надійності та масштабованості.

Про дендрит

Дендрит випереджає Synapse з точки зору продуктивності, для роботи потрібно набагато менше пам’яті і може масштабуватися за рахунок балансування навантаження по кількох вузлах.

Дендритна архітектура підтримує горизонтальне масштабування і базується на розділенні контролерів у вигляді мікросервісів, де кожен екземпляр мікросервісу має власні таблиці в базі даних.

Балансир навантаження відповідає за відправлення дзвінків на мікросервіси. Потоки (підпрограми go) використовуються для розпаралелювання операцій у коді, що дозволяє використовувати ресурси всіх ядер ЦП, не розділяючи їх на окремі процеси.

Дендрит підтримує роботу в двох режимах: монолітний і багатокомпонентний (поліліт).

  • У монолітному режимі Усі мікросервіси пов’язані у виконуваний файл, запускаються в процесі та взаємодіють безпосередньо між собою.
  • У багатокомпонентному режимі (кластер), мікросервіси можуть запускатися окремо, навіть із різноманітністю на різних вузлах. Взаємодія компонентів у багатокомпонентному режимі здійснюється за допомогою внутрішнього API HTTP та платформи Apache Kafka.

Розробка проводиться на основі специфікацій протоколу Matrix та з використанням двох наборів тестів: загальних тестів тестів із Synapse та нового комплекту Complement.

На сучасному етапі розробки Дендрит успішно проходить 56% тестів API клієнт-сервер і 77% тестів API федерації, тоді як фактичний охоплення функціональних можливостей оцінюється в 70% для API клієнт-сервер і 95% для API федерації.

Бета-стадія вказує на те, що Дендріт готовий до початкового розгортання і перехід на розробку з регулярними новинками. Між випусками схема зберігання бази даних тепер буде оновлена ​​(на відміну від встановлення фрагментів зі сховища, після оновлення вміст бази даних не буде втрачено).

Зміни, що порушують зворотну сумісність, змінюють структуру бази даних або вимагають змін конфігурації, будуть запропоновані лише у основних випусках.

На даний момент, рекомендується використовувати дендрит в монолітному режимі разом із СУБД PostgreSQL для створення невеликих домашніх серверів та вузлів P2P. Використання SQLite поки не рекомендується через невирішені проблеми з обробкою одночасних операцій.

Функції ще не реалізовані в дендриті включати: підтвердження повідомлень, закладки, push-сповіщення, OpenID, посилання по електронній пошті, пошук на стороні сервера, каталог користувачів, списки ігнорування користувачів, створення груп та спільнот, оцінка присутності користувача в мережі, гостьові дані, взаємодія зі сторонніми мережами.

Основні функціональні можливості для роботи в чатах (створення, запрошення, правила автентифікації), засоби об'єднання учасників у кімнатах, синхронізація подій після повернення з автономного режиму, облікові записи, профілі, індикація набору номера, завантаження та завантаження файлів редагування (Media API) доступні для використання повідомлень, списків ACL, позначення та наскрізного пристрою шифрування та списків ключів.

Пам'ятайте про це платформа для організації децентралізованих комунікацій Matrix використовує HTTPS + JSON як транспорт з можливістю використання WebSockets або протоколу на основі CoAP + Noise. Система формується як спільнота серверів, які можуть взаємодіяти між собою та об'єднані в загальну децентралізовану мережу.

Повідомлення копіюються на всіх серверах до якого підключені учасники обміну повідомленнями. Повідомлення розповсюджуються між серверами способом, подібним до того, як розповсюджуються коміти між сховищами Git.

Фуенте: https://matrix.org


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.