Выпуск децентрализованной коммуникационной платформы Matrix 1.0
Представлен первый стабильный релиз протокола для организации децентрализованных коммуникаций Matrix 1.0 и связанных с ним библиотек, API (Server-Server) и спецификаций. Сообщается, что не все задуманные возможности Matrix описаны и реализованы, но основной протокол полностью стабилизирован и достиг состояния, пригодного для использования в качестве основы для разработки независимых реализаций клиентов, серверов, ботов и шлюзов. Наработки проекта распространяются под лицензией Apache 2.0.
Одновременно, опубликован сервер для обмена сообщениями Synapse 1.0.0 с эталонной реализацией протокола Matrix 1.0. Отмечается, что основное внимание при подготовке Synapse 1.0 было уделено корректности реализации протокола, безопасности и надёжности. Synapse теперь вышел из стадии бета-тестирования и готов для повсеместного использования. Код Synapse написан на языке Python и может использовать для хранения данных СУБД SQLite или PostgreSQL. Synapse 1.0 является последним выпуском с поддержкой Python 2.x.
По умолчанию для создания новых чатов применяется 4 версия протокола Room, но опционально доступна и пятая версия с поддержкой ограничения времени жизни серверных ключей. При переходе с прошлых выпусков следует иметь в виду, что для подключения к общей децентрализованной сети теперь требуется получение корректного TLS-сертификата.
В качестве клиентов можно использовать Riot (доступен для Linux, Windows, macOS, Web, Android и iOS), Weechat (CLI на Lua), nheko (С++/Qt), Quaternion (С++/Qt) и Fractal (Rust/GTK).
Из ещё не стабилизированных в Matrix 1.0 возможностей упоминаются редактирование отправленных сообщений (поддерживается в Synapse 1.0 и Riot, но не включено по умолчанию), реакции, нитевидные обсуждения, перекрёстная верификация пользователей, Live-статистика по чатам. Из предстоящих работ в реализации сервера планируется провести оптимизацию производительности и снизить потребление памяти. Помимо эталонного сервера на языке Python также развиваются экспериментальные реализации Ruma (Rust) и Dendrite (Go).
Платформа для организации децентрализованных коммуникаций Matrix развивается как проект, использующий открытые стандарты и уделяющий большое внимание обеспечению безопасности и приватности пользователей. Matrix обеспечивает сквозное (end-to-end) шифрование на базе собственного протокола, использующего в том числе алгоритм Double Ratchet (часть протокола Signal). Оконечное шифрование применяется как при прямом обмене сообщениями, так и в чатах (применяется механизм Megolm). Реализация методов шифрования прошла аудит в организации NCC Group. В качестве транспорта применяется HTTPS+JSON с возможностью использования WebSockets или протокола на базе CoAP+Noise.
Система формируется как содружество серверов, которые могут взаимодействовать между собой и объединяются в общую децентрализованную сеть. Сообщения реплицируются по всем серверам, к которым подключены участники обмена сообщениями. Сообщения распространяются по серверам по аналогии с тем как коммиты распространяются между Git-репозиториями. В случае временного отключения сервера сообщения не теряются, а передаются пользователям после возобновления работы сервера. Поддерживаются различные варианты идентификаторов пользователя, включая email, номер телефона, учётную запись в Facebook и т.п.
В сети отсутствует единая точка отказа или контроля за сообщениями. Все серверы, которые охватывает обсуждение, равноправны между собой.
Любой пользователь может запустить собственный сервер и подключить его к общей сети. Возможно создание шлюзов для взаимодействия Matrix с системами на базе других протоколов, например, подготовлены сервисы для двусторонней отправки сообщений в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp и Slack.
Помимо мгновенного обмена текстовыми сообщениями и организации чатов, система может использоваться для передачи файлов, отправки уведомлений,
организации телеконференций, совершения голосовых и видео звонков.
Matrix позволяет использовать поиск и неограниченный просмотр истории переписки. Поддерживаются также такие расширенные возможности как уведомление о наборе текста, оценка присутствия пользователя в online, подтверждение прочтения, push-уведомления, поиск на стороне сервера, синхронизация истории и состояния клиентов.
Для координирования разработки проекта на днях создана некоммерческая организация Matrix.org Foundation, которая будет гарантировать независимость проекта, развивать связанные с Matrix стандарты и выступать в роли нейтральной площадки для совместного принятия решений. Во главе Matrix.org Foundation поставлен совет из пяти директоров, не связанных с коммерческой экосистемой, пользующихся авторитетом в сообществе и призванных отстаивать миссию проекта.
В число директоров вошли Джон Кроукрофт (Jon Crowcroft, один из пионеров децентрализованных коммуникаций), Мэтью Ходжсон (Matthew Hodgson, сооснователь Matrix), Амандина Ле Папе (Amandine Le Pape, сооснователь Matrix), Росс Шульман (Ross Schulman, юрист из Open Technology Institute, специализирующийся на интернете и децентрализованных ситемах), Юта Штайнер (Jutta Steiner, сооснователь компании Parity Technologies, занимающейся технологиями на базе блокчейна).