Matrix (протокол)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Matrix — це відкритий протокол для спілкування у реальному часі. Основною метою створення є досягнення високої інтероперабельності, подібної до стандартних протоколів типу SMTP. З технічної точки зору — це протокол прикладного рівня, федеративного типу, що дозволяє обмінюватися повідомленнями у реальному часі між окремими серверами.[1][2]

Повідомлення у JSON форматі поширюються серед федерації публічних серверів. Протокол також інтегрується з вебсервісами за допомогою WebRTC та забезпечує можливість здійснення відео-дзвінка, VoIP та онлайн чату.

Подібними ініціативами є протоколи XMPP та IRCv3.[3]

Історія[ред. | ред. код]

Початковий проект був створений в Amdocs під час створення інструменту чату під назвою «Amdocs Unified Communications»[4] Метью Ходжсоном і Амандін Ле Пап. Потім Amdocs фінансував більшу частину розробки з 2014 по жовтень 2017[5]. Матрікс виграв нагороду Innovation award at WebRTC 2014 Conference & Expo[6] та нагороди «Best in Show» на WebRTC World in 2015[7]. Після того як протокол був запущений у 2014 році, від рецензентів він отримав похвалу разом з деякими застереженнями. Було відзначено, що інші спроби створення відкритого протоколу обміну миттєвими повідомленнями або мультимедійні протоколи такого типу мали труднощі з набуттям широкого поширення — наприклад, XMPP та IRCv3. У 2015 році Amdocs було створено дочірню компанію «Vector Creations Limited», куди перейшли співробітники Matrix.

У лютому 2019 року спільнота KDE оголосила про плани застосувати Matrix для своїх внутрішніх комунікаційних потреб як децентралізовану альтернативу іншим серверам обміну миттєвими повідомленнями, таким як Telegram, Slack і Discord, і керувати власним екземпляром сервера[8].

У грудні 2019 року міністерство оборони Німеччини оголосило про пілотний проект під назвою BwMessenger для безпечного інструменту обміну миттєвими повідомленнями на основі протоколу Matrix, сервера Synapse та програми Riot. Це змодельовано за французьким проектом Tchap. Довгостроковою метою федерального уряду є безпечне використання служб обміну повідомленнями, що охоплює всі міністерства та підпорядковані органи[9].

У грудні 2019 року Mozilla оголосила, що почне використовувати Matrix як заміну IRC . В оголошенні вони сказали, що завершать переміщення наприкінці січня 2020 року. Сервер Mozilla IRC, irc.mozilla.org, буде видалено «не пізніше березня наступного року [2020]»[10]. У березні 2020 року IRC-сервер було вимкнено, і користувачам було запропоновано приєднатися до chat.mozilla.org, екземпляру Mozilla Element[11].

У травні 2020 року Matrix увімкнув наскрізне шифрування за замовчуванням для приватних розмов[12].

У жовтні 2020 року Element придбав Gitter у GitLab[13]. Це означало, що всі користувачі Gitter будуть переведені на Matrix[14].

У березні 2021 року matrix.org оголосив, що у всьому світі існує 28 мільйонів видимих ​​облікових записів[15].

У червні 2021 року Fourth Estate оголосила про розробку Ceriph, пілотного проекту, який створює службу безпечного обміну повідомленнями та комунікації для новинних організацій і журналістів на основі протоколу Matrix[16].

Розробка[ред. | ред. код]

Основне коло розробників працює у неприбутковій організації Matrix.org, що базується у Великій Британії.[17] Метою організації є створення відкритого, децентралізованого, стійкого протоколу з високою інтероперабельністю для комунікації у інтернеті. Типове застосування: відеотелефонія, VoIP, швидкий обмін повідомленнями, IoT, синхронізація даних.

Огляд[ред. | ред. код]

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

У мережі відсутня єдина точка відмови або контролю за повідомленнями. Всі сервери, які охоплює обговорення, рівноправні між собою. Будь-який користувач може запустити власний сервер і підключити його до загальної мережі. Можливе створення шлюзів для взаємодії Matrix з системами на базі інших протоколів, наприклад, підготовлені сервіси для двосторонньої відправки повідомлень в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp і Slack.

Крім миттєвого обміну текстовими повідомленнями і організації чатів, система може використовуватися для передачі файлів, відправки повідомлень, організації телеконференцій, здійснення голосових і відео-дзвінків. Matrix дозволяє використовувати пошук і необмежений перегляд історії листування. Підтримуються також такі розширені можливості як повідомлення про набір тексту, оцінка присутності користувача в онлайн, підтвердження прочитання, push-повідомлення, пошук на стороні сервера, синхронізація історії та стану клієнтів.

Протокол[ред. | ред. код]

Специфікація Matrix окреслює RESTful HTTP APIs для захищеної передачі та реплікації даних формату JSON між сумісними серверами, клієнтами та сервісами. Дані підписані у стилі git для усунення можливості підміни. Механізм реплікації відповідає моделі узгодженості в кінцевому рахунку, що дозволяє відновити повідомлення через повторну синхронізацію з інших серверів.

Клієнти[ред. | ред. код]

Для протоколу Matrix існує багато клієнтів в web, стільниковій та мобільній реалізації:

Сервери[ред. | ред. код]

SDK[ред. | ред. код]

Боти[ред. | ред. код]

Існує окремий публічний сервер з ботами і мостами Matrix, що використовуються у багатьох спільнотах[18].

Крім того офіційно підтримуються наступні боти, які можуть бути запущені на власному сервері:

  • finzzz / bucktrix
  • FAQBot
  • Go-NEB
  • Hemppa — універсальний модульний бот Matrix, надзвичайно проста платформа для написання функцій бота Matrix на Python
  • hwittenborn / matrix-faq
  • ivar2 Matrix/IRC Bot
  • matrix-email-bot
  • matrix-eno-bot — особистий помічник і інструмент адміністратора
  • matrix-feeder — це матричний бот, який відстежує медіафайли на певних каналах і розміщує їх на іншому каналі
  • Matrix-Grep-Bot — бот Matrix, який використовує grep для пошуку у великих повідомленнях
  • matrix-monitor-bot
  • Matrix-remind-me-bot
  • Matrix Registration Bot
  • Matrix Stats
  • matrix-trello-bot — взаємодія з Trello в матриці
  • matrix-voyager-bot — створює карту виявлених кімнат мережі Matrix
  • Matrix Webhook — публікує повідомлення в кімнаті Matrix за допомогою простого HTTP POST
  • matterbridge — бот для з'єднання Matrix і Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat (через xmpp), Steam
  • maubot
    • maubot / CommitStrip — плагін maubot для перегляду CommitStrips
    • maubot / dice — плагін maubot, який кидає кубики
    • maubot / echo — простий плагін maubot, який виконує ping та інші команди
    • maubot / github — клієнт GitHub, що приймає вебхуки для maubot
    • maubot / gitlab — клієнт GitLab, що приймає вебхуки для maubot
    • maubot / karma — плагін maubot, який відстежує карму користувачів
    • maubot / reminder — плагін maubot, щоб нагадувати вам про щось
    • maubot / rss — RSS плагін для maubot
    • maubot / xkcd — плагін maubot для перегляду коміксів xkcd
  • opsdroid
  • poll-bot
  • silvy-matrix
  • tiny-matrix-bot
  • Vøgg
  • GoHubsBot
  • Matrix Zulip Bridgebot

Мости[ред. | ред. код]

Matrix підтримує передачу повідомлень з інших програм обміну повідомленнями в кімнати Matrix. Це мости — це програми, які працюють на сервері та обмінюються даними з серверами, які не в мережі Matrix. Мости можуть діяти як маріонетки або ретранслятори, де в першому чаті обліковий запис окремого користувача видимо публікує повідомлення, а в другому чаті бот розміщує це повідомлення для облікових записів користувачів, які відсутні в першому чаті.

На даний момент офіційно підтримуються мости з:

Спільнотою підтримуються мости з:

Українські сервери у мережі matrix[ред. | ред. код]

Сервери dComms[ред. | ред. код]

В зв'язку з початком бойових дій і пов'язаних з цим ризиків аварій або відключення українських провайдерів від глобальної мережі, канадською організацією eQualitie[en][30] в Україні було запущено сервіси децентралізованого зв'язку, серед яких сервери matrix у великих містах. Реєстрація на локальному сервері дозволить користувачам спілкуватися між собою без підключення до зовнішньої мережі інтернет.

Приватні сервери[ред. | ред. код]

  • opulus.space — український приватний проект по популяризації вільних засобів спілкування, що включає сервер matrix.
  • m0e.space — український приватний проект по популяризації вільних засобів спілкування та користування інтернет-сервісами, що включає сервер Matrix.
  • noleron.com — український приватний проект по популяризації вільних засобів комунікації та обміну інформації, що включає сервер matrix.

Примітки[ред. | ред. код]

  1. Matrix: a new specification for federated realtime chat [LWN.net]. lwn.net. Архів оригіналу за 5 травня 2018. Процитовано 27 травня 2018.
  2. Matrix.org Reloads Inside "Illusion of Control" Vortex. Dr. Dobb's. Архів оригіналу за 29 березня 2019. Процитовано 27 травня 2018.
  3. Weinberger, Matt. Matrix wants to smash the walled gardens of messaging. ITworld (англ.). Архів оригіналу за 5 травня 2018. Процитовано 27 травня 2018.
  4. Amdocs | Products | Unified Communications. web.archive.org. 3 жовтня 2014. Архів оригіналу за 3 жовтня 2014. Процитовано 14 липня 2022.
  5. Who is Matrix.org? | Matrix.org. web.archive.org. 29 березня 2019. Архів оригіналу за 29 березня 2019. Процитовано 14 липня 2022.
  6. Award Winners of the WebRTC 2014 Conference & Expo - Upperside Blog. web.archive.org. 15 березня 2015. Архів оригіналу за 15 березня 2015. Процитовано 14 липня 2022.
  7. WebRTC World Miami Wrap Up and Review. www.webrtcworld.com. Процитовано 14 липня 2022.
  8. KDE To Support Matrix Decentralized Instant Messaging. www.phoronix.com (англ.). Процитовано 14 липня 2022.
  9. online, heise. Open Source: Bundeswehr baut eigene verschlüsselte Messenger-App. heise online (нім.). Процитовано 14 липня 2022.
  10. Synchronous Messaging at Mozilla: The Decision. Mozilla Discourse (амер.). 19 грудня 2019. Процитовано 14 липня 2022.
  11. Moznet IRC is dead; long live Mozilla Matrix!. Matrix.org (англ.). Процитовано 14 липня 2022.
  12. Cross-signing and End-to-end Encryption by Default is HERE!!!. Matrix.org (англ.). Процитовано 14 липня 2022.
  13. Gitter is joining Element. Element Blog. 30 вересня 2020. Процитовано 14 липня 2022.
  14. Welcoming Gitter to Matrix!. Matrix.org (англ.). Процитовано 14 липня 2022.
  15. FOSDEM 2021: Building massive virtual communities in Matrix (uk-UA) , процитовано 14 липня 2022
  16. Fourth Estate® | Democratizing News | Official Site. https://www.fourthestate.org/ (амер.). Процитовано 14 липня 2022.
  17. Matrix | Crunchbase. Crunchbase (англ.). Архів оригіналу за 31 липня 2018. Процитовано 27 травня 2018.
  18. t2bot.io. t2bot.io. Процитовано 15 липня 2022.
  19. matrix-org/matrix-appservice-gitter, matrix.org, 22 квітня 2021, процитовано 14 липня 2022
  20. matrix-org/matrix-appservice-irc, matrix.org, 14 липня 2022, процитовано 14 липня 2022
  21. matrix-appservice-slack, matrix.org, 11 липня 2022, процитовано 14 липня 2022
  22. matrix-bifröst, matrix.org, 5 липня 2022, процитовано 14 липня 2022
  23. Matrix Discord Bridge, matrix.org, 13 липня 2022, процитовано 14 липня 2022
  24. mautrix-facebook, mautrix, 13 липня 2022, процитовано 14 липня 2022
  25. mautrix-signal, mautrix, 3 липня 2022, процитовано 14 липня 2022
  26. skype-bridge, matrix-hacks, 3 лютого 2022, процитовано 14 липня 2022
  27. mautrix-telegram, mautrix, 13 липня 2022, процитовано 14 липня 2022
  28. mautrix-whatsapp, mautrix, 12 липня 2022, процитовано 14 липня 2022
  29. Beeper / LinkedIn · GitLab. GitLab (англ.). Процитовано 14 липня 2022.
  30. dComms. dComms (ua) . Процитовано 5 червня 2022.

Посилання[ред. | ред. код]