È stato rilasciato il sistema di sincronizzazione automatica dei file Syncthing 1.16, in cui i dati sincronizzati non vengono caricati su archivi cloud, ma vengono replicati direttamente tra i sistemi degli utenti quando questi sono online contemporaneamente, utilizzando il protocollo BEP (Block Exchange Protocol) sviluppato dal progetto. Il codice di Syncthing è scritto in Go e distribuito sotto licenza libera MPL. Le versioni pronte sono disponibili per Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD e Solaris.
Oltre a risolvere le problematiche legate alla sincronizzazione dei dati tra più dispositivi di un unico utente, Syncthing consente anche di creare ampie reti decentralizzate per la memorizzazione di dati condivisi, che sono distribuiti tra i sistemi dei partecipanti. Sono forniti strumenti flessibili per il controllo degli accessi e per la creazione di eccezioni per la sincronizzazione. È possibile definire host che riceveranno solo dati, cioè le modifiche a questi host non influenzeranno le istanze dei dati memorizzate su altri sistemi. Sono supportati diversi modelli di versioning dei file, in cui vengono conservate le versioni precedenti dei dati modificati.
Durante la sincronizzazione, il file viene logicamente suddiviso in blocchi, che rappresentano una parte indivisibile durante il trasferimento dei dati tra i sistemi dell'utente. Durante la sincronizzazione su un nuovo dispositivo, se ci sono blocchi identici su più dispositivi, la copia dei blocchi avviene da nodi diversi, simile al funzionamento del sistema BitTorrent. Più dispositivi partecipano alla sincronizzazione, più velocemente avverrà la replicazione dei nuovi dati grazie al parallelismo. Durante la sincronizzazione dei file modificati, tramite la rete vengono trasferiti solo i blocchi di dati cambiati, e in caso di rinomina o modifica dei diritti di accesso, vengono sincronizzati solo i metadati.
I canali di trasmissione dei dati sono formati tramite TLS, tutti i nodi si autenticano tra loro tramite certificati e identificatori dei dispositivi, per il controllo dell'integrità viene utilizzato SHA-256. Per determinare i nodi di sincronizzazione nella rete locale può essere utilizzato il protocollo UPnP, che non richiede l'immissione manuale. indirizzi IP dispositivi sincronizzati. Per configurare il sistema e monitorarlo, è disponibile un'interfaccia web integrata, un client CLI e GUI Syncthing-GTK, che fornisce anche strumenti di gestione per i nodi di sincronizzazione e i repository. Per semplificare la ricerca dei nodi, Syncthing sviluppa un server di coordinamento per la scoperta dei nodi.
La nuova versione offre supporto sperimentale per la crittografia dei file, permettendo di utilizzare Syncthing con server sistemi non affidabili, ad esempio per sincronizzare i propri dati non solo con i propri dispositivi, ma anche con server esterni non controllati dall'utente. Inoltre, nella nuova versione è stato implementato un dialogo per richiedere conferma prima di annullare le modifiche o sovrascrivere una cartella. Sono stati risolti problemi di eccessivo utilizzo delle risorse CPU nei dialoghi con indicatori di progresso animati. Subito dopo, è stata rilasciata un'aggiornamento 1.16.1, che ha risolto un problema nel pacchetto per Debian.


Fonte: opennet.ru
