rilascio del sistema di sincronizzazione automatica dei file , in cui i dati sincronizzati non vengono caricati su archivi cloud, ma vengono replicati direttamente tra i sistemi dell'utente quando si collegano contemporaneamente online, utilizzando il protocollo BEP (Block Exchange Protocol) sviluppato dal progetto. Il codice di Syncthing è scritto in Go e è sotto licenza MPL. Le versioni pronte per Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD e Solaris.
Oltre a risolvere 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 sui sistemi dei partecipanti. Sono forniti strumenti flessibili di controllo degli accessi e creazione di eccezioni per la sincronizzazione. È possibile definire host che riceveranno solo i dati, cioè le modifiche sui dati su questi host non si rifletteranno nelle istanze di dati memorizzate su altri sistemi. Sono supportati di versioning dei file, in cui vengono mantenute versioni precedenti dei dati modificati.
Durante la sincronizzazione, il file viene logicamente suddiviso in blocchi, che sono 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, in modo simile al funzionamento del sistema BitTorrent.
Più dispositivi partecipano alla sincronizzazione, più velocemente avverrà la replica dei nuovi dati grazie alla parallelizzazione. Durante la sincronizzazione di file modificati, vengono trasmessi solo i blocchi di dati cambiati, mentre in caso di rinominazione o modifica dei diritti di accesso vengono sincronizzati solo i metadati.
I canali di trasmissione dei dati sono creati tramite TLS, tutti i nodi si autenticano reciprocamente tramite certificati e identificatori dei dispositivi, 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'inserimento manuale degli indirizzi IP dei dispositivi da sincronizzare. Per la configurazione del sistema e il monitoraggio è previsto un'interfaccia web integrata, e GUI , nel quale vengono forniti anche strumenti per la gestione dei nodi di sincronizzazione e dei repository. Per facilitare la ricerca dei nodi Syncthing server di coordinamento per la scoperta dei nodi, per il quale avviare
un'immagine Docker pronta.
Nel nuovo rilascio:
- nuovo protocollo di trasporto basato su (Quick UDP Internet Connections) con aggiunte per il passaggio attraverso i traduttori di indirizzi (NAT). Come protocollo preferito per stabilire connessioni, si raccomanda ancora TCP;
- Migliorata la gestione degli errori fatali e aggiunti per inviare automaticamente ai programmatori rapporti di problemi. L'invio dei rapporti è abilitato per impostazione predefinita, per disabilitarlo nelle impostazioni è disponibile un'opzione speciale. Si segnala che i dati nel rapporto sul crash non includono nomi di file, dati dai log, identificatori dei dispositivi, statistiche e altre informazioni personali;
- L'uso di blocchi piccoli e fissi (128 KiB) è stato dichiarato obsoleto, durante l'indicizzazione e il trasferimento dei contenuti dei file ora sono solo blocchi grandi di dimensione variabile;
- Nell'interfaccia è fornita la visualizzazione dell'ultimo errore di connessione per ciascuno degli indirizzi specificati;
- Nella WebUI il layout delle colonne delle tabelle è ottimizzato per una visualizzazione corretta su schermi stretti;
- Sono state apportate modifiche che interrompono la compatibilità. La nuova versione non è compatibile con gli host basati su Syncthing 0.14.45 e versioni precedenti.
Fonte: opennet.ru
