Выпуск открытой P2P-системы синхронизации файлов Syncthing 0.12
5 ноября 2015 года
Анонсирован релиз системы синхронизации файлов Syncthing 0.12, решающей задачи, сходные с проприетарной системой BitTorrent Sync. Syncthing позволяет организовать автоматическую синхронизацию файлов пользователя на нескольких устройствах. Синхронизированные данные не загружаются на транзитные облачные хранилища, а напрямую реплицируются между системами пользователя при их одновременном появлении в online.
Код Syncthing написан на языке Go и распространяется под свободной лицензией MPL. Поддерживается работа в Linux, Android, Windows, OS X, FreeBSD и Solaris. Для настройки системы и мониторинга предусмотрен встроенный web-интерфейс, CLI-клиент и GUI Syncthing-GTK, в котором дополнительно предоставляются средства управления узлами синхронизации и репозиториями. Для упрощения поиска узлов Syncthing развивается сервер координации обнаружения узлов, для которого также имеется готовый образ для запуска в Docker.
Для обмена данными применяется развиваемый проектом протокол BEP (Block Exchange Protocol). При синхронизации файл логически разбивается на блоки, которые являются неделимой частью при передаче данных между системами пользователя. При наличии идентичных блоков на нескольких устройствах, при синхронизации на новое устройство копирование осуществляется с распределением отдачи трафика по узлам, по аналогии с работой системы BitTorrent. Чем больше устройств участвуют в синхронизации, тем быстрее будет проходить репликация новых данных за счёт распараллеливания. Возможно создание больших сетей совместно используемых данных, в которых принимают участие разные пользователи. Предоставляются гибкие средства контроля доступа и создания исключений для синхронизации.
Синхронизируется содержимое файлов, время модификации и, в зависимости от операционной системы, права доступа и символические ссылки. Не переносятся между системами информация о владельце/группе, специализированные файлы (fifo, сокеты), расширенные атрибуты и ACL. Такие операции как переименование или изменение прав доступа синхронизируются на уровне обновления метаданных, без необходимости повторной передачи содержимого. Похожим способом синхронизируются изменения файлов - по сети передаются только изменившиеся блоки данных. Каналы передачи данных формируются при помощи TLS, все узлы аутентифицируют друг друга по сертификатам и идентификаторам устройств, для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств.
Основные изменения в Syncthing 0.12:
- Изменены протоколы синхронизации и обнаружения участников. Система Syncthing 0.12 не совместима с прошлыми выпусками и не сможет соединиться с устройствами, работающими на базе прошлой ветки 0.11, или старыми координационными серверами. При этом, так как новые реализации протокола используют иные сетевые порты серверы, Syncthing 0.12 и 0.11 могут сосуществовать не мешая друг другу.
- Возможность соединения через промежуточные шлюзы. Когда между двумя узлами невозможно организовать прямое соединение, например, из-за нахождения обоих узлов за межсетевыми экранами, соединение может быть организовано через дополнительное звено - relay. В конфигурации по умолчанию указаны адреса нескольких публичных релеев. При желании можно запустить собственный релей или запретить использование релеев. Так как все данные внутри соединения шифруются и через релей проходит уже зашифрованный трафик, владелец релея не может вклинится или проанализировать поток данных.
- Средства поиска доступных узлов при помощи HTTPS. Протокол обнаружения устройств переписан и теперь использует HTTPS и штатный сетевой порт 443. В Сети запущено несколько географически распределённых общедоступных серверов координации обнаружения участников.
- В пользовательский интерфейс внесена серия улучшений, таких как индикация прогресса сканирования файлов, возможность временной приостановки работы узла и расширенные генераторы отчётов;
- Реализована система автоматически устанавливаемых обновлений, достоверность которых заверена цифровой подписью. Без проверки цифровой подписи обновление можно установить вручную при помощи команды "syncthing -upgrade-from http://.../syncthing.tar.gz(недоступная ссылка)". Для создания и проверки цифровых подписей представлена новая утилита stsigtool;
- Поддержка соединения через прокси SOCKS5.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.