is presented Release system of automatic synchronization of files Syncthing 1.6 , in which synchronized data is not loaded into cloud storage facilities, and directly replicated between user systems when they are simultaneously appearing in Online using the BEP protocol developed by the project (BLOCK Exchange Protocol) . Syncthing code is written in GO and distributed under the free license MPL. Ready build Prepared for Linux, Android, Windows, MacOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD and Solaris.
In addition to solving data synchronization tasks between multiple devices of one user, using Syncthing, it is possible to create large decentralized networks for storing shared data that are distributed through participating systems. Flexible access controls and exceptions for synchronization are provided. It is possible to define hosts that will only receive data, i.e. Changing the data on these hosts will not be reflected on data instances stored on other systems. Supported Several modes versioning of files in which past versions of changing data are saved.
When synchronization, the file is logically divided into blocks that are an indivisible part when transmitting data between user systems. When synchronizing to a new device, in the case of identical blocks on multiple devices, copying blocks is made from different nodes, by analogy with the work of the BitTorrent system.
The more devices participate in sync, the faster the replication of new data will be held at the expense of parallelization. During the synchronization process of changed files, only the changed data blocks are transmitted over the network, and only metadata are synchronized when renaming or changing access rights.
Data Transmission Channels are formed using TLS, all nodes authenticate each other by certificates and device identifiers, SHA-256 applies to control integrity. To determine the synchronization nodes, the UPNP protocol can be used in the local network, which does not require manual entry of IP addresses of synchronized devices. To configure the system and monitoring, a built-in web-interface is provided, CLI client and gui Syncthing-GTK , in which the synchronization node management and repositories are additionally provided. To simplify the search for Syncthing develops Nodes detection coordination server.