Выпуск децентрализованного коммуникационного клиента Ring 1.0
Представлен стабильный выпуск децентрализованной коммуникационной платформы Ring 1.0, развиваемой в рамках проекта GNU. В отличие от традиционных коммуникационных клиентов Ring способен передавать сообщения без обращения к внешним серверам через организацию прямого соединения между пользователями с применением оконечного шифрования (End-to-end, ключи присутствуют только на стороне клиента) и аутентификации на основе сертификатов X.509. Код распространяется под лицензией GPLv3. Бинарные сборки подготовлены для GNU/Linux (Debian, Ubuntu, Fedora), Windows, macOS и Android.
Кроме защищенного обмена сообщениями, программа позволяет совершать голосовые и видео-звонки, создавать телеконференции, обмениваться файлами, организовывать совместный доступ к файлам и содержимому экрана. Программа поддерживает различные кодеки (G711u, G711a, GSM, Speex, Opus, G.722) и протоколы (ICE, SIP, TLS), обеспечивает надежное шифрование видео, голоса и сообщений. Имеется режим совместимости с программными телефонами на базе SIP, который может использоваться для совершения звонков при помощи SIP-аккаунта. Из сервисных функций можно отметить переадресацию и удержание вызовов, запись звонков, история вызовов с поиском, автоматический контроль громкости, интеграция с адресными книгами GNOME и KDE.
Для идентификации пользователя в Ring применяется децентрализованный глобальный механизм аутентификации учетных записей, основанный на реализации адресной книги в форме блокчейна (применяются наработки проекта Ethereum). Один идентификатор пользовтеля (RingID) может использоваться одновременно на нескольких устройствах и позволяет связываться с пользователем независимо от того, какое из устройств активно, без необходимости поддержания разных идентификаторов на смартфоне и ПК. Адресная книга, отвечающая за трансляцию имен в RingID, хранится на группе узлов, поддерживаемых разными участниками, в том числе можно запустить свой узел для поддержания локальной копии глобальной адресной книги (Ring также реализует отдельную внутреннюю адресную книгу, поддерживаемую клиентом).
Для адресации пользователей в Ring применяется протокол OpenDHT (распределенная хэш таблица), без применения централизованных реестров c информацией о пользователях. Основу Ring составляет фоновый процесс LibRing, который отвечает за обработку соединений, организацию связи, работу с видео и звуком. Взаимодействие с LibRing построено при помощи библиотеки LibRingClient, которая служит основой для построения клиентского ПО и предоставляет всю типовую функциональность, не привязанную к интерфейсу пользователя и платформам. Поверх LibRingClient создаются непосредственно клиентские приложения, что позволяет достаточно просто создавать и поддерживать различные интерфейсы.