Została zaprezentowana nowa wersja zdecentralizowanej platformy komunikacyjnej Jami, nosząca kryptonim „Világfa”. Projekt ma na celu stworzenie systemu komunikacji działającego w trybie P2P, który umożliwia zarówno rozmowy dużych grup, jak i realizację indywidualnych połączeń z zapewnieniem wysokiego poziomu prywatności i bezpieczeństwa. Jami, wcześniej znany jako Ring i SFLphone, jest jednym z projektów GNU i jest dystrybuowany na licencji GPLv3. Binarne wersje są przygotowane dla GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL itd.), Windows, macOS, iOS, Android oraz Android TV.
W przeciwieństwie do tradycyjnych klientów komunikacyjnych, Jami jest w stanie przesyłać wiadomości bez użycia zewnętrznych serwerów, organizując bezpośrednie połączenie między użytkownikami przy użyciu szyfrowania end-to-end (klucze są przechowywane tylko po stronie klienta) oraz uwierzytelniania opartego na certyfikatach X.509. Oprócz bezpiecznej wymiany wiadomości, program pozwala na prowadzenie rozmów głosowych i wideo, organizowanie telekonferencji, wymianę plików oraz współdzielenie dostępu do plików i zawartości ekranu. Dla wideokonferencji na serwerze procesorze Intel Core i7-7700K 4,20 GHz, 32 GB RAM oraz połączeniu sieciowym 100 Mbit/s uzyskuje się najlepszą jakość przy połączeniu nie więcej niż 25 uczestników. Na każdego uczestnika wideokonferencji potrzebna jest przepustowość wynosząca około 2 Mbit/s.
Początkowo projekt rozwijał się jako programowy telefon oparty na protokole SIP, ale od dawna wykracza poza te ramy na rzecz modelu P2P, zachowując jednocześnie zgodność z SIP i możliwość wykonywania połączeń przy użyciu tego protokołu. Program obsługuje różne kodeki (G711u, G711a, GSM, Speex, Opus, G.722) oraz protokoły (ICE, SIP, TLS), zapewniając niezawodne szyfrowanie wideo, głosu i wiadomości. Do funkcji serwisowych można zaliczyć przekierowywanie i wstrzymywanie połączeń, nagrywanie rozmów, historię połączeń z wyszukiwarką, automatyczną kontrolę głośności oraz integrację z książkami adresowymi GNOME i KDE.
Do identyfikacji użytkownika w Jami stosowany jest zdecentralizowany globalny mechanizm uwierzytelniania kont, oparty na realizacji książki adresowej w formie blockchaina (wykorzystywano osiągnięcia projektu Ethereum). Jeden identyfikator użytkownika (RingID) może być używany jednocześnie na kilku urządzeniach i umożliwia kontakt z użytkownikiem niezależnie od tego, które z urządzeń jest aktywne, bez potrzeby utrzymywania różnych identyfikatorów na smartfonie i PC. Książka adresowa, odpowiadająca za translację nazw w RingID, jest przechowywana na grupie węzłów, wspieranych przez różnych uczestników, istnieje również możliwość uruchomienia własnego węzła w celu utrzymania lokalnej kopii globalnej książki adresowej (Jami wdraża także oddzielną, wewnętrzną książkę adresową, wspieraną przez klienta).
Aby adresować użytkowników w Jami, zastosowano protokół OpenDHT (rozproszona tabela haszująca), który nie wymaga użycia scentralizowanych rejestrów z informacjami o użytkownikach. Podstawą Jami jest proces działający w tle, jami-daemon, odpowiedzialny za obsługę połączeń, organizację komunikacji oraz pracę z wideo i dźwiękiem. Interakcja z jami-daemon odbywa się za pomocą biblioteki LibRingClient, która stanowi podstawę budowy oprogramowania klienckiego i zapewnia całkowitą funkcjonalność niezwiązaną z interfejsem użytkownika i platformami. Na bazie LibRingClient tworzone są bezpośrednio aplikacje klienckie, co pozwala na stosunkowo łatwe tworzenie i utrzymanie różnych interfejsów. Główny klient dla PC został napisany z wykorzystaniem biblioteki Qt, a dodatkowo rozwijane są klienci oparte na GTK i Electron.
Główne nowości:
- Kontynuowane jest rozwijanie systemu komunikacji grupowej „roj” (Swarms), który umożliwia tworzenie całkowicie rozproszonych czatów P2P, gdzie historia rozmów jest współdzielona na wszystkich urządzeniach użytkownika w zsynchronizowanej formie. Jeśli wcześniej w roj można było rozmawiać tylko z dwoma uczestnikami, to w nowej wersji w trybie roju można teraz tworzyć małe czaty grupowe, liczące do 8 osób (w przyszłych wersjach planowane jest zwiększenie dozwolonej liczby uczestników oraz dodanie wsparcia dla czatów publicznych).

Dodano nowy przycisk do tworzenia czatów grupowych i udostępniono możliwość ustawienia parametrów czatu.

Po utworzeniu czatu grupowego można dodawać nowych uczestników i usuwać istniejących. Są trzy kategorie uczestników: zaproszony (dodany do grupy, ale jeszcze nie połączył się z czatem), połączony oraz administrator. Każdy uczestnik może wysyłać zaproszenia do innych osób, ale tylko administrator ma możliwość usunięcia z grupy (na razie może być tylko jeden administrator, ale w przyszłych wersjach pojawi się elastyczny system uprawnień i możliwość przypisania kilku administratorów).

- Dodano nowy panel z informacjami o czacie, takim jak lista uczestników, lista wysłanych dokumentów i ustawienia.

- Dodano kilka rodzajów wskaźników o przeczytaniu wiadomości i pisaniu tekstu.

- Wprowadzono możliwość wysyłania plików na czacie, przy czym uczestnicy czatu mogą otrzymać plik, nawet jeśli nadawca nie jest online.
- Dodano interfejs do przeszukiwania wiadomości w czatach.
- Dodano wsparcie dla reakcji przy użyciu symboli emoji.
- Dodano opcję wyświetlania informacji o bieżącej lokalizacji.
- Do klienta desktopowego dodano eksperymentalne wsparcie dla czatu grupowego podczas prowadzenia wideokonferencji.
Źródło: opennet.ru





