Die Version 1.16 des Dateisynchronisierungssystems Syncthing wurde vorgestellt, bei dem die synchronisierten Daten nicht in Cloud-Speicher hochgeladen, sondern direkt zwischen den Benutzer-Systemen repliziert werden, wenn diese gleichzeitig online sind, unter Verwendung des vom Projekt entwickelten BEP (Block Exchange Protocol) Protokolls. Der Code von Syncthing ist in Go geschrieben und wird unter der freien MPL-Lizenz verbreitet. Fertige Builds sind für Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD und Solaris verfügbar.
Neben der Lösung der Aufgaben zur Datensynchronisierung zwischen mehreren Geräten eines Benutzers ermöglicht es Syncthing auch, große dezentralisierte Netzwerke zum Speichern gemeinsam genutzter Daten zu schaffen, die über die Systeme der Teilnehmer verteilt sind. Flexible Mittel zur Zugriffskontrolle und zum Erstellen von Ausnahmen für die Synchronisierung werden bereitgestellt. Es ist möglich, Hosts festzulegen, die nur Daten empfangen, d. h. Datenänderungen auf diesen Hosts spiegeln sich nicht in den auf anderen Systemen gespeicherten Dateninstanzen wider. Es werden mehrere Dateiversionierungsmodi unterstützt, in denen frühere Versionen geänderter Daten gespeichert werden.
Bei der Synchronisierung wird die Datei logisch in Blöcke aufgeteilt, die beim Datentransfer zwischen den Benutzer-Systemen unteilbare Teile sind. Bei der Synchronisierung auf ein neues Gerät werden, falls identische Blöcke auf mehreren Geräten vorhanden sind, die Blöcke von verschiedenen Knoten kopiert, ähnlich wie beim Betrieb des BitTorrent-Systems. Je mehr Geräte an der Synchronisierung beteiligt sind, desto schneller erfolgt die Replikation neuer Daten aufgrund der Parallelisierung. Während des Synchronisierungsprozesses geänderter Dateien werden nur die geänderten Datenblöcke über das Netzwerk übertragen, und bei Umbenennung oder Änderung der Zugriffsrechte werden nur die Metadaten synchronisiert.
Die Datenübertragungskanäle werden mithilfe von TLS gebildet, alle Knoten authentifizieren sich gegenseitig anhand von Zertifikaten und Geräteseriennummern, zur Integritätskontrolle wird SHA-256 eingesetzt. Zur Erkennung von Synchronisierungsknoten im lokalen Netzwerk kann das UPnP-Protokoll verwendet werden, bei dem keine manuelle Eingabe erforderlich ist. IP-Adressen synchronisierbaren Geräte. Für die Konfiguration des Systems und die Überwachung gibt es eine integrierte Web-Oberfläche, einen CLI-Client und die GUI Syncthing-GTK, die zusätzlich Verwaltungsmöglichkeiten für Synchronisierungsknoten und Repositories bietet. Um die Suche nach Knoten zu erleichtern, wird ein Koordinationsserver zur Entdeckung von Knoten in Syncthing entwickelt.
In der neuen Version wurde experimentelle Unterstützung für die Verschlüsselung von Dateien implementiert, was die Verwendung von Syncthing mit Servern nicht vertrauenswürdig, beispielsweise zur Synchronisierung ihrer Daten nicht nur mit ihren Geräten, sondern auch mit externen, vom Benutzer nicht kontrollierbaren Servern. Darüber hinaus wurde im neuen Update ein Dialog zur Bestätigung vor der Rücknahme von Änderungen oder dem Überschreiben des Verzeichnisses implementiert. Probleme mit übermäßigem CPU-Ressourcenverbrauch in Dialogen mit animierten Fortschrittsanzeigen wurden gelöst. Unmittelbar danach wurde das Update 1.16.1 veröffentlicht, das ein Problem im Paket für Debian behob.


Quelle: opennet.ru
