Zaprezentowano wersję automatycznego systemu synchronizacji plików Syncthing 1.16, w którym synchronizowane dane nie są przesyłane do pamięci masowej w chmurze, lecz są bezpośrednio replikowane między systemami użytkowników w momencie ich jednoczesnego pojawienia się w trybie online, przy użyciu protokołu BEP (Block Exchange Protocol) opracowanego w ramach projektu. Kod Syncthing został napisany w języku Go i rozpowszechniany na podstawie bezpłatnej licencji MPL. Gotowe kompilacje są dostępne dla systemów Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD i Solaris.
Syncthing rozwiązuje nie tylko problem synchronizacji danych pomiędzy wieloma urządzeniami jednego użytkownika, ale także pozwala tworzyć duże zdecentralizowane sieci do przechowywania współdzielonych danych rozproszonych po systemach uczestników. Dostępna jest elastyczna kontrola dostępu i tworzenie wyjątków na potrzeby synchronizacji. Można zdefiniować hosty, które będą wyłącznie odbierać dane, tzn. zmiany danych na tych hostach nie będą odzwierciedlane w wystąpieniach danych przechowywanych w innych systemach. Obsługiwanych jest kilka trybów wersjonowania plików, które zachowują poprzednie wersje zmienionych danych.
Podczas synchronizacji plik zostaje logicznie podzielony na bloki, które stanowią niepodzielną część podczas przesyłania danych pomiędzy systemami użytkowników. Podczas synchronizacji z nowym urządzeniem, jeśli na kilku urządzeniach znajdują się identyczne bloki, bloki te są kopiowane z różnych węzłów, podobnie jak w przypadku systemu BitTorrent. Im większa liczba urządzeń uczestniczy w synchronizacji, tym szybciej nastąpi replikacja nowych danych dzięki paralelizacji. Podczas procesu synchronizacji zmodyfikowanych plików, przez sieć przesyłane są wyłącznie zmodyfikowane bloki danych, a podczas zmiany nazwy lub uprawnień dostępu synchronizowane są wyłącznie metadane.
Kanały transmisji danych są nawiązywane z wykorzystaniem protokołu TLS, wszystkie węzły uwierzytelniają się wzajemnie za pomocą certyfikatów i identyfikatorów urządzeń, a do kontroli integralności używany jest algorytm SHA-256. Protokół UPnP umożliwia identyfikację węzłów synchronizacji w sieci lokalnej, eliminując konieczność ręcznego wprowadzania danych. Adresy IP Urządzenia Syncthing. Do konfiguracji i monitorowania systemu dostępny jest wbudowany interfejs webowy, klient CLI oraz graficzny interfejs użytkownika Syncthing-GTK, który udostępnia również narzędzia do zarządzania węzłami synchronizacji i repozytoriami. Aby uprościć wyszukiwanie węzłów Syncthing, opracowywany jest serwer koordynacji wykrywania węzłów.
Nowa wersja wprowadza eksperymentalną obsługę szyfrowania plików, umożliwiając korzystanie z Syncthing z serwery Na przykład niezaufani użytkownicy mogą synchronizować swoje dane nie tylko z własnymi urządzeniami, ale także z serwerami zewnętrznymi, nad którymi nie mają kontroli. Co więcej, nowa wersja wprowadza okno dialogowe z potwierdzeniem przed odrzuceniem zmian lub nadpisaniem katalogu. Rozwiązano problemy z nadmiernym obciążeniem procesora w oknach dialogowych z animowanymi wskaźnikami postępu. Aktualizacja 1.16.1 została wydana natychmiast po tym, rozwiązując problem w pakiecie Debian.


Źródło: opennet.ru
