È stato presentato il rilascio del 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 dell'utente quando appaiono contemporaneamente online, utilizzando il protocollo BEP (Block Exchange Protocol) sviluppato dal progetto. Il codice di Syncthing è scritto in Go e distribuito sotto licenza MPL. Le versioni pronte sono disponibili per Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD e Solaris.
Oltre a risolvere i problemi di sincronizzazione dei dati tra più dispositivi di un singolo utente, Syncthing consente la creazione di grandi reti decentralizzate per l'archiviazione di dati condivisi, distribuiti tra i sistemi dei partecipanti. Offre strumenti flessibili per il controllo degli accessi e la creazione di eccezioni per la sincronizzazione. È possibile definire host che riceveranno solo dati, ovvero le modifiche apportate a questi host non si rifletteranno sulle istanze di dati conservate su altri sistemi. Sono supportati diversi modalità 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. Quando si sincronizza su un nuovo dispositivo, in caso di blocchi identici su più dispositivi, la copia dei blocchi avviene da nodi diversi, in modo simile al funzionamento del sistema BitTorrent. Maggiore è il numero di dispositivi coinvolti nella sincronizzazione, più velocemente avverrà la replica dei nuovi dati grazie alla parallelizzazione. Durante il processo di sincronizzazione dei file modificati, vengono trasmessi in rete solo i blocchi di dati che hanno subito modifiche, mentre per la modifica del nome o dei diritti di accesso vengono sincronizzati solo i metadati.
I canali di trasferimento dei dati vengono creati tramite TLS; tutti i nodi si autenticano tra loro tramite certificati e identificatori di dispositivo, mentre per il controllo dell'integrità viene utilizzato SHA-256. Per identificare i nodi di sincronizzazione nella rete locale può essere utilizzato il protocollo UPnP, che non richiede l'immissione manuale. IP addresses dispositivi sincronizzati. Per la configurazione del sistema e il monitoraggio sono forniti un'interfaccia web integrata, un client CLI e Syncthing-GTK, che offre anche strumenti per gestire i nodi di sincronizzazione e i repository. Per semplificare la ricerca dei nodi, Syncthing sta sviluppando un server di coordinazione per la scoperta dei nodi.
Nella nuova versione è stata implementata la supporto sperimentale alla crittografia dei file, che consente di utilizzare Syncthing con server fonti inaffidabili, 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 introdotto un dialogo per richiedere conferma prima di annullare modifiche o sovrascrivere una directory. Risolti problemi relativi all'eccessivo consumo di CPU nei dialoghi con indicatori di progresso animati. Seguendo, è stato rilasciato immediatamente un aggiornamento 1.16.1, che ha risolto un problema nel pacchetto per Debian.


Fonte: opennet.ru
