Релиз открытой P2P-системы синхронизации файлов Syncthing 0.13

Состоялся релиз системы Syncthing 0.13, которая позволяет организовать автоматическую синхронизацию файлов пользователя на нескольких устройствах, решая задачи сходные с проприетарной системой BitTorrent Sync. Синхронизированные данные не загружаются облачные хранилища, а напрямую реплицируются между системами пользователя при их одновременном появлении в online, используя развиваемый проектом протокол BEP (Block Exchange Protocol).

При синхронизации файл логически разбивается на блоки, которые являются неделимой частью при передаче данных между системами пользователя. При наличии идентичных блоков на нескольких устройствах, при синхронизации на новое устройство копирование осуществляется с распределением отдачи трафика по узлам, по аналогии с работой системы BitTorrent. Чем больше устройств участвуют в синхронизации, тем быстрее будет проходить репликация новых данных за счёт распараллеливания.

При изменении синхронизируемых файлов по сети передаются только изменившиеся блоки данных, а при переименовании или изменении прав доступа синхронизируются только метаданные. Возможно создание больших сетей совместно используемых данных, в которых принимают участие разные пользователи. Предоставляются гибкие средства контроля доступа и создания исключений для синхронизации. Каналы передачи данных формируются при помощи TLS, все узлы аутентифицируют друг друга по сертификатам и идентификаторам устройств, для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств.

Код Syncthing написан на языке Go и распространяется под свободной лицензией MPL. Поддерживается работа в Linux, Android, Windows, OS X, FreeBSD и Solaris. Для настройки системы и мониторинга предусмотрен встроенный web-интерфейс, CLI-клиент и GUI Syncthing-GTK, в котором дополнительно предоставляются средства управления узлами синхронизации и репозиториями. Для упрощения поиска узлов Syncthing развивается сервер координации обнаружения узлов, для которого также имеется готовый образ для запуска в Docker.

Основные изменения в Syncthing 0.13:

  • Временные индексы, позволяющие начать репликацию на другие устройства уже полученной части файла, не дожидаясь получения на текущем устройстве полной копии обновлённого файла;
  • Представлены метки папок (Folder Labels), которые отделены от идентификаторов папок (Folder ID): Folder Labels позиционируются как читаемые человеком метки, в то время как Folder ID используются как разбираемые машиной, уникальные, генерируемые случайно идентификаторы.
  • При попытке соединения от неизвестных устройств (Unknown Devices) теперь выводится не только идентификатор устройства, но и его имя.
  • В дополнение к UPnP реализована поддержка технологии NAT-PMP для автоматической настройки проброса входящего соединения на систему за транслятором адресов;
  • Исключённые из процесса синхронизации файлы (подпадающие под маски игнорирования) теперь помечаются специальным префиксом »? d», указывающим на то, что в случае удаления директории данный файл будет потерян;
  • Возможность ограничения протокола приёма соединений только IPv4 или IPv6 (по умолчанию соединения принимаются по обоим протоколам);
  • Переработан диалог настройки параметров папки;
  • Добавлена переменная окружения ALL_PROXY_NO_FALLBACK, запрещающая установку прямого соединения в случае недоступности рабочего прокси;
  • Изменён формат БД и нарушена обратная совместимость протокола (пользователи версии 0.12 не могут взаимодействовать с пользователями версии 0.13).

© OpenNet