release of automatic file synchronization system , in which synchronized data is not uploaded to cloud storage, but is directly replicated between user systems when they simultaneously appear online, using the BEP (Block Exchange Protocol) protocol developed by the project. The Syncthing code is written in Go and under the free MPL license. Ready-made assemblies for Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD and Solaris.
In addition to solving problems of synchronizing data between several devices of one user, using Syncthing it is possible to create large decentralized networks for storing shared data that is distributed across the systems of participants. Provides flexible access control and synchronization exceptions. It is possible to define hosts that will only receive data, i.e. changes to data on these hosts will not affect instances of data stored on other systems. Supported file versioning, which preserves previous versions of changed data.
When synchronizing, the file is logically divided into blocks, which are an indivisible part when transferring data between user systems. When synchronizing to a new device, if there are identical blocks on several devices, the blocks are copied from different nodes, similar to the operation of the BitTorrent system.
The more devices participate in synchronization, the faster the replication of new data will occur due to parallelization. During the synchronization of changed files, only changed data blocks are transferred over the network, and when renaming or changing access rights, only metadata is synchronized.
Data transmission channels are formed using TLS, all nodes authenticate each other using certificates and device identifiers, SHA-256 is used to control integrity. To determine synchronization nodes on a local network, the UPnP protocol can be used, which does not require manual entry of the IP addresses of synchronized devices. A built-in web interface is provided for system configuration and monitoring, and GUI , which additionally provides tools for managing synchronization nodes and repositories. To make it easier to find Syncthing nodes node discovery coordination server, to run which
ready Docker image.
In the new release:
- new transport protocol based on (Quick UDP Internet Connections) with additions for forwarding through address translators (NAT). TCP is still recommended as the preferred protocol for establishing connections;
- Improved handling of fatal errors and added to automatically send problem reports to developers. Sending reports is enabled by default, you can disable it in the settings special option. It is noted that the data in the crash report does not include file names, log data, device identifiers, statistics and other personal data;
- The use of small and fixed blocks (128 KiB) has been deprecated when indexing and transferring file contents only large blocks of variable size;
- The interface provides a display of the last connection error for each of the defined addresses;
- In WebUI, the layout of table columns is optimized for correct display on narrow screens;
- Changes have been made that break compatibility. The new release is not compatible with hosts based on Syncthing 0.14.45 and older versions.
Source: opennet.ru
