Opublikowano wersję otwartego systemu synchronizacji plików P2P Syncthing 2.0

Zaprezentowano wydanie systemu automatycznej synchronizacji plików Syncthing 2.0, w którym synchronizowane dane nie są przesyłane do chmur, lecz bezpośrednio replikowane między systemami użytkownika, kiedy te są jednocześnie online, z użyciem rozwijanego przez projekt protokołu BEP (Block Exchange Protocol). Kod Syncthing jest napisany w języku Go i udostępniany na licencji MPL. Przygotowane wersje dostępne są dla Linux, Windows, macOS i FreeBSD.

Oprócz rozwiązywania problemów z synchronizacją danych między wieloma urządzeniami jednego użytkownika, Syncthing umożliwia tworzenie dużych zdecentralizowanych sieci do przechowywania wspólnie używanych danych, które są rozproszone po systemach uczestników. Udostępniane są narzędzia do kontroli dostępu i tworzenia wyjątków dla synchronizacji. Można określić hosty, które będą jedynie odbierać dane, tzn. zmiany danych na tych hostach nie będą odzwierciedlane w instancjach danych przechowywanych na innych systemach. Obsługiwanych jest kilka trybów wersjonowania plików, w ramach których zachowywane są poprzednie wersje zmienionych danych.

Podczas synchronizacji plik jest logicznie dzielony na bloki, które są niepodzielne podczas przesyłania danych między systemami użytkownika. Przy synchronizacji na nowe urządzenie, w przypadku identycznych bloków na kilku urządzeniach, kopiowanie bloków odbywa się z różnych węzłów, analogicznie do działania systemu BitTorrent. Im więcej urządzeń uczestniczy w synchronizacji, tym szybciej przebiega replikacja nowych danych dzięki równoległemu działaniu. W trakcie synchronizacji zmienionych plików, przez sieć przesyłane są tylko zmienione bloki danych, a przy zmianie nazwy lub praw dostępu synchronizowane są jedynie metadane.

Kanały przesyłania danych są formowane przy użyciu TLS, wszystkie węzły wzajemnie się uwierzytelniają za pomocą certyfikatów i identyfikatorów urządzeń, a dla kontroli integralności stosowany jest SHA-256. Do określenia węzłów synchronizacji w lokalnej sieci może być wykorzystany protokół UPnP, który nie wymaga ręcznego wprowadzania. adresów IP synchronizowanych urządzeń. Do konfiguracji systemu i monitorowania przewidziano wbudowany interfejs webowy, klienta CLI oraz GUI oparty na bibliotece GTK, w którym dodatkowo udostępniono narzędzia do zarządzania węzłami synchronizacji i repozytoriami.

Kluczowe zmiany w nowej wersji:

  • Backend przechowywania został przeniesiony z bazy LevelDB na SQLite. Migracja danych jest przeprowadzana automatycznie przy pierwszym uruchomieniu po aktualizacji. Zakłada się, że użycie SQLite uprości utrzymanie i analizę danych, a także zmniejszy liczbę błędów.
  • Zmieniono format prowadzenia logów, które teraz są generowane w postaci strukturalnej (komunikat + parametry w formacie klucz-wartość). Dodano nowy poziom logów — WARNING, który jest mniej szczegółowy niż INFO, ale obejmuje więcej informacji w porównaniu do poziomu ERROR. Umożliwiono przypisywanie różnych poziomów logów różnym pakietom.
  • Zakończono wieczne przechowywanie usuniętych elementów w bazie danych, takie elementy są teraz usuwane po 6 miesiącach (czas można zmienić za pomocą opcji „—db-delete-retention-interval”).
  • Ulepszono kod do analizy opcji wiersza poleceń i zakończono wsparcie dla przestarzałego formatu z pojedynczym myślnikiem (tj. zamiast „-home” należy używać „—home”). Niektóre opcje zostały przemianowane lub przekształcone w podkomendy.
  • Zaprzestano tworzenia katalogu domyślnego przy pierwszym uruchomieniu.
  • Wprowadzono możliwość ustanowienia kilku połączeń sieciowych między urządzeniami korzystającymi z Syncthing 2.x. Domyślnie tworzone są trzy połączenia — jedno dla metadanych indeksu oraz dwa dla wymiany danych.
  • Zmieniono algorytm rozwiązywania konfliktów w sytuacji usuwania plików.
  • Z powodu trudności z cross-kompilacją SQLite zaprzestano budowy gotowych plików wykonywalnych dla platform dragonfly/amd64, illumos/amd64, solaris/amd64, linux/ppc64, netbsd/*, openbsd/386, openbsd/arm oraz windows/arm.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster