È stato presentato un nuovo rilascio della piattaforma di comunicazione decentralizzata Jami, distribuita con il nome in codice «Világfa». Il progetto mira a creare un sistema di comunicazione che funziona in modalità P2P e consente sia la comunicazione di grandi gruppi sia l'esecuzione di chiamate individuali, garantendo un elevato livello di riservatezza e sicurezza. Jami, in precedenza noto come Ring e SFLphone, fa parte dei progetti GNU ed è distribuito con licenza GPLv3. Le versioni binarie sono disponibili per GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL, ecc.), Windows, macOS, iOS, Android e Android TV.
A differenza dei tradizionali client di comunicazione, Jami è in grado di inviare messaggi senza fare riferimento a server esterni, organizzando una connessione diretta tra gli utenti utilizzando la crittografia end-to-end (le chiavi sono disponibili solo sul lato client) e l'autenticazione basata su certificati X.509. Oltre allo scambio sicuro di messaggi, il programma consente di effettuare chiamate vocali e video, creare videoconferenze, condividere file, organizzare l'accesso collaborativo a file e contenuti dello schermo. Per le videoconferenze su server CPU Intel Core i7-7700K 4.20 GHz, 32 GB di RAM e connessione di rete 100 Mbit/s, la migliore qualità si ottiene con un massimo di 25 partecipanti. Ogni partecipante alla videoconferenza richiede una larghezza di banda di circa 2 Mbit/s.
Inizialmente, il progetto si è sviluppato come telefono software basato sul protocollo SIP, ma da tempo ha superato questi limiti a favore del modello P2P, mantenendo comunque la compatibilità con SIP e la possibilità di effettuare chiamate tramite questo protocollo. Il programma supporta vari codec (G711u, G711a, GSM, Speex, Opus, G.722) e protocolli (ICE, SIP, TLS), garantendo una crittografia sicura per video, voce e messaggi. Tra le funzionalità di servizio, si possono notare il trasferimento e la messa in attesa delle chiamate, la registrazione delle chiamate, la cronologia delle chiamate con ricerca, il controllo automatico del volume, e l'integrazione con le rubrica GNOME e KDE.
Per l'identificazione dell'utente in Jami viene utilizzato un meccanismo globale decentralizzato di autenticazione degli account, basato sull'implementazione di una rubrica in forma di blockchain (si utilizzano le scoperte del progetto Ethereum). Un identificatore utente (RingID) può essere utilizzato contemporaneamente su più dispositivi e consente di contattare l'utente indipendentemente dal dispositivo attivo, senza la necessità di mantenere identificatori diversi su smartphone e PC. La rubrica, responsabile della traduzione dei nomi in RingID, è memorizzata su un gruppo di nodi supportati da diversi partecipanti; è anche possibile avviare il proprio nodo per mantenere una copia locale della rubrica globale (Jami implementa anche una rubrica interna separata, mantenuta dal client).
Per l'indirizzamento degli utenti in Jami viene utilizzato il protocollo OpenDHT (tabella hash distribuita), che non richiede l'uso di registri centralizzati contenenti informazioni sugli utenti. Alla base di Jami c'è il processo in background jami-daemon, responsabile della gestione delle connessioni, dell'organizzazione delle comunicazioni e della gestione di video e audio. L'interazione con jami-daemon è organizzata tramite la libreria LibRingClient, che costituisce la base per lo sviluppo del software client e fornisce tutte le funzionalità standard, indipendenti dall'interfaccia utente e dalle piattaforme. Sulla libreria LibRingClient vengono sviluppate direttamente le applicazioni client, il che consente di creare e mantenere facilmente interfacce diverse. Il client principale per PC è scritto utilizzando la libreria Qt, e vengono ulteriormente sviluppati client basati su GTK ed Electron.
Novità principali:
- È proseguito lo sviluppo del sistema di comunicazione di gruppo "sciame" (Swarms), che consente di creare chat P2P completamente decentralizzate, la cui storia di comunicazione è conservata in modo sincronizzato su tutti i dispositivi dell'utente. Se in precedenza nel gruppo era possibile comunicare solo tra due partecipanti, nella nuova versione ora è possibile creare piccole chat di gruppo fino a 8 persone (nelle versioni future si prevede di aumentare il numero massimo di partecipanti e di aggiungere il supporto per chat pubbliche).

Per la creazione di chat di gruppo è stato aggiunto un nuovo pulsante e fornita la possibilità di configurare i parametri della chat.

Dopo la creazione di una chat di gruppo, è possibile aggiungere nuovi partecipanti e rimuovere quelli esistenti. Ci sono tre categorie di partecipanti: invitato (aggiunto al gruppo, ma non ancora connesso alla chat), connesso e amministratore. Ogni partecipante può inviare inviti ad altre persone, ma solo l'amministratore può rimuovere membri dal gruppo (per ora c'è solo un amministratore, ma nelle versioni future ci sarà un sistema flessibile di diritti di accesso e la possibilità di nominare più amministratori).

- È stata aggiunta una nuova barra con informazioni sulla chat, come l'elenco dei partecipanti, l'elenco dei documenti inviati e le impostazioni.

- Aggiunti diversi tipi di indicatori di lettura dei messaggi e di digitazione.

- È stata fornita la possibilità di inviare file nella chat, in modo che i partecipanti possano ricevere file anche se il mittente non è online.
- È stata aggiunta un'interfaccia per la ricerca di messaggi nelle chat.
- Aggiunta la funzionalità di reazioni tramite emoji.
- Aggiunta un'opzione per visualizzare informazioni sulla posizione attuale.
- Nel client desktop è stata aggiunta la supporto sperimentale per la chat di gruppo durante le videoconferenze.
Fonte: opennet.ru





