Выпуск открытой P2P-системы синхронизации файлов Syncthing 1.2.0
10 июля 2019 года
Представлен релиз системы автоматической синхронизации файлов Syncthing 1.2.0, в которой синхронизированные данные не загружаются в облачные хранилища, а напрямую реплицируются между системами пользователя при их одновременном появлении в online, используя развиваемый проектом протокол BEP (Block Exchange Protocol). Код Syncthing написан на языке Go и распространяется под свободной лицензией MPL. Готовые сборки подготовлены для Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD и Solaris.
Кроме решения задач по синхронизации данных между несколькими устройствами одного пользователя, при помощи Syncthing возможно создание больших децентрализованных сетей для хранения совместно используемых данных, которые распределены по системам участников. Предоставляются гибкие средства контроля доступа и создания исключений для синхронизации. Возможно определение хостов, которые будут только получать данные, т.е. изменение данных на этих хостах не будет отражаться на экземплярах данных, хранимых на других системах. Поддерживается несколько режимов версионирования файлов, при которых сохраняются прошлые версии изменившихся данных.
При синхронизации файл логически разбивается на блоки, которые являются неделимой частью при передаче данных между системами пользователя. При синхронизации на новое устройство, в случае наличия идентичных блоков на нескольких устройствах, копирование блоков производится с разных узлов, по аналогии с работой системы BitTorrent. Чем больше устройств участвуют в синхронизации, тем быстрее будет проходить репликация новых данных за счёт распараллеливания. В процессе синхронизации изменённых файлов, по сети передаются только изменившиеся блоки данных, а при переименовании или изменении прав доступа синхронизируются только метаданные.
Каналы передачи данных формируются при помощи TLS, все узлы аутентифицируют друг друга по сертификатам и идентификаторам устройств, для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств. Для настройки системы и мониторинга предусмотрен встроенный web-интерфейс, CLI-клиент и GUI Syncthing-GTK, в котором дополнительно предоставляются средства управления узлами синхронизации и репозиториями. Для упрощения поиска узлов Syncthing развивается сервер координации обнаружения узлов, для запуска которого подготовлен готовый образ Docker.
В новом выпуске:
- Представлен новый транспортный протокол, основанный на QUIC (Quick UDP Internet Connections) с дополнениями для проброса через трансляторы адресов (NAT). В качестве предпочтительного протокола для установки соединений по-прежнему рекомендуется TCP;
- Улучшена обработка фатальных ошибок и добавлены средства для автоматической отправки разработчикам отчётов о проблемах. Отправка отчётов включена по умолчанию, для её отключения в настройки добавлена специальная опция. Отмечается, что данные в отчёте о крахе не включают имена файлов, данные из лога, идентификаторы устройств, статистику и другие персональные данные;
- Использование мелких и фиксированных блоков (128 KiB) объявлено устаревшим, при индексации и передаче содержимого файлов теперь применяются только крупные блоки переменного размера;
- В интерфейсе обеспечен показ последней ошибки соединения для каждого из определённых адресов;
- В WebUI компоновка столбцов таблиц оптимизирована для корректного отображения на узких экранах;
- Внесены изменения, нарушающие совместимость. Новый выпуск не совместим с хостами на базе Syncthing 0.14.45 и более старыми версиями.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.