релий на системата за автоматична синхронизация на файлове , при която синхронизираните данни не се качват в облачни хранилища, а директно се репликират между системите на потребителя, когато те са онлайн едновременно, използвайки разработвания от проекта протокол BEP (Block Exchange Protocol). Кодът на Syncthing е написан на езика Go и е с отворен лиценз MPL. Готовите версии са налични за Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD и Solaris.
Освен решаването на задачи за синхронизация на данни между няколко устройства на един потребител, с помощта на Syncthing е възможно създаването на големи децентрализирани мрежи за съхранение на споделени данни, които са разпределени между системите на участниците. Предоставят се гъвкави средства за контрол на достъпа и създаване на изключения за синхронизация. Може да се определят хостове, които само ще получават данни, т.е. измененията на данните на тези хостове няма да се отразяват на инстанциите на данните, съхранявани на други системи. Поддържа на версиониране на файлове, при които се запазват предишни версии на променените данни.
При синхронизация файлът логически се разделя на блокове, които са неделима част при предаване на данни между системите на потребителя. При синхронизация на ново устройство, при наличие на идентични блокове на няколко устройства, копирането на блоковете се извършва от различни възли, по аналогия с работата на системата BitTorrent.
Колкото повече устройства участват в синхронизацията, толкова по-бързо ще протича репликацията на новите данни благодарение на паралелизацията. По време на синхронизацията на променени файлове, по мрежата се предават само променените блокове данни, а при преименуване или промяна на правата за достъп се синхронизират само метаданните.
Каналите за предаване на данни се формират с помощта на TLS, всички възли се аутентифицират взаимно чрез сертификати и идентификатори на устройства, за контрол на целостта се използва SHA-256. За определяне на възлите за синхронизация в локалната мрежа може да се използва протокол UPnP, при който не е необходимо ръчно въвеждане на IP адресите на синхронизираните устройства. За настройка на системата и мониторинг е предвиден вграден уеб интерфейс, и GUI , в който допълнително се предоставят средства за управление на възлите за синхронизиране и хранилищата. За улесняване на намирането на възлите Syncthing сървър за координация на откриването на възли, за който се стартира
подготвен Docker образ.
В новото издание:
- нов транспортен протокол, основан на (Quick UDP Internet Connections) с добавки за пробиване през адресни транслятори (NAT). Все още се препоръчва TCP като предпочитан протокол за установяване на връзки;
- Подобрена обработка на фатални грешки и добавени за автоматично изпращане на отчети за проблеми на разработчиците. Изпращането на отчети е включено по подразбиране, за да се деактивира в настройките специална опция. Забелязва се, че данните в отчета за срив не включват имена на файлове, данни от логове, идентификатори на устройства, статистика и друга лична информация;
- Използването на малки и фиксирани блокове (128 KiB) е обявено за остаряло, при индексиране и предаване на съдържанието на файловете сега само големи блокове с променлив размер;
- В интерфейса е осигурено показване на последната грешка за свързване за всеки от определените адреси;
- В WebUI е оптимизирана компоновката на колоните на таблиците за коректно показване на тесни екрани;
- Направени са промени, които нарушават съвместимостта. Новата версия не е съвместима с хостове на база Syncthing 0.14.45 и по-стари версии.
Източник: opennet.ru
