LINUX.ORG.RU

Librevault 0.1.15 — программа децентрализованной синхронизации данных.

 , , , ,


8

7

Состоялся тестовый выпуск Librevault — открытой кроссплатформенной программы для децентрализованной синхронизации данных. Эта программа является альтернативой BitTorrent Sync и Syncthing: файлы синхронизируются напрямую между узлами без участия сервера (peer-to-peer).

Возможности программы:

  • Децентрализованная синхронизация директорий через Интернет или в пределах локальной сети.
  • Добавление синхронизируемой директории по ключу (подобно BitTorrent Sync).
  • Создание ключа только для чтения, используя который, другие узлы смогут синхронизироваться с данной директорией, но не смогут изменять её содержимое.
  • Создание зашифрованного ключа, по которому можно скачивать, раздавать, но нельзя расшифровать данные.
  • Поддержка инкрементальной синхронизации на уровне блоков (при малом изменении файла будет передано только изменение, но не весь файл). Версионирование и архив удалённых файлов пока отсутствуют.
  • Поддержка API inotify, fsevents, kqueue и ReadDirectoryChangesW для отслеживания изменений файлов.
  • Поддержка синхронизации символических ссылок (экспериментально, отключаемо).
  • Поддержка синхронизации Unix- и Windows-атрибутов: mode, uid, gid, атрибуты Windows (экспериментально, отключаемо).
  • Кроссплатформенность. Поддерживаются операционные системы Linux, Mac OS X и Windows. Код переносимый, в будущем можно будет портировать на другие системы.
  • Приватность. Все данные хранятся на клиентах, передаются только в зашифрованном виде и расшифровываются на клиентской стороне.
  • Обнаружение узлов через UDP-мультикаст и открытые BitTorrent-трекеры (openbittorrent и другие).
  • Поддержка автоматического перенаправления портов через NAT-PMP. UPnP и PCP в планах.

Демон синхронизации использует библиотеки Boost 1.58, Crypto++ 5.6.2 и Protocol Buffers 3.0 (минимальные версии). Графический интерфейс использует Qt 5.3.

Пока доступны готовые сборки под Ubuntu 15.10 и 16.04, Mac OS X и Windows. В скором времени появятся сборки для Debian Jessie и других дистрибутивов.

Внимание: это экспериментальный выпуск. Он может работать нестабильно и предназначен для тех, кто хочет первым «пощупать» новую программу синхронизации файлов.

>>> Форум

>>> Сайт проекта

Хотелорсь бы увидеть где-нибудь развернутое сравнение программ этого класса (включая и свободные и проприетарные). А то все выбрать не могу, а вдумываться и сравнивать времени нет.

RiseOfDeath ★★★★ ()

Будет торт, если понаклепают пакетов для NAS - DSM, хени от Qnap и т.д. Таки держать чужой хлам на ноутах смысла особого нет, а вот NAS всегда включен.

ptarh ★★★★★ ()
Ответ на: комментарий от RiseOfDeath

Я пользовался Syncthing, для синхронизации документов между компьютером и Android. Был полностью доволен, пользоваться перестал только с исчезновением необходимости.

Norong ★★ ()

Жду под андроид. Надоело уже возиться с rsync.

Недавно пробовал Syncthing. Оказалось, он не может писать на внешнюю сдкарту (по крайней мере на пятом). На гитхабе разработчики ноют что это всё гугл виноват, что их гугловский языкык на гугловской платформе не умеет писать на сд карту.

yekm ()
Ответ на: комментарий от Anakros

Выбирай syncthing, не ошибёшься.

Он сильно отличается от BTSync по функционалу и идеологии.

В ряде случаев BTSync оказывается лучше. Например, когда надо отдавать данные посторонним по публикуемому ключу (Syncthing так вообще не умеет) или при работе на Android (Syncthing жрёт очень много ресурсов). Также часто Syncthing не может работать нормально с серыми машинами. Требует установки отдельного syncthing-inotify.

KRoN73 ★★★★★ ()
Ответ на: комментарий от yekm

На гитхабе разработчики ноют что это всё гугл виноват

Они под Linux даже inotify использовать не могут, какой уж тут Android :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от yekm

Вообще, это действительно ограничение Android. В версии 4.4 Google запретила сторонним приложениям писать на внешнюю карту памяти.

В 7.0 это, наконец-то, исправят, флеш-массив смартфона и SD-карта будут выглядеть, как единое целое пространство.

anonymous ()
Ответ на: комментарий от anonymous

Да те же яндекскарты отлично пишут кеш на сдкарту. Вроде стороннее приложение, точно также ставил из маркета.

У Syncthing проблемы именно с go. Он не умеет в какие то ихние андроидо технологии, баг висит уже 2 года. А вот комент по поводу go https://github.com/syncthing/syncthing-android/issues/29#issuecomment-215024941

yekm ()
Ответ на: комментарий от Norong

Будет, но позже. Демон можно портировать без проблем, но гуй сделан на QtWidgets, поэтому лучше будет наваять его заново под android (благо, он очень тонкий и вся логика находится в демоне).

GamePad64 ()
Ответ на: комментарий от KRoN73

Да, за основу идеологии я брал именно BTSync.
И добавление по ключу и поддержка inotify были идейно взяты из BTSync'а. Имхо, Syncthing — достаточно странное приложение, единственный плюс которого — открытый код (и протокол).
И на него уходят как раз от безнадёги, ведь другого ничего нет, а также из-за того, что менеджмент BitTorrent Inc. решил монетизировать Sync 2.0, урезая функциональность. (А в uTorrent встроил биткоин-майнер, но это совсем другая история).

GamePad64 ()
Ответ на: комментарий от zuzzas

Я никак не могу понять, почему они не вольют это в основную ветку Syncthing. Уже два года мурыжат это в виде отдельного плагина, зачем?

GamePad64 ()

Ну вот, а я только пару дней syncthing настроил. Теперь придётся ещё и это пробовать.

Nao ★★★★★ ()
Ответ на: комментарий от zuzzas

А это не оно?

Оно. И тоже активно использую. Но это не от разработчиков Syncthing :) А упоминались именно они.

KRoN73 ★★★★★ ()
Ответ на: комментарий от GamePad64

Имхо, Syncthing — достаточно странное приложение, единственный плюс которого — открытый код (и протокол).

Не только. Его железобетоннейший плюс, который не позволяет от него отказаться — это версионный бэкап. Правда, омрачённый тем, что Syncthing не отлавливает перемещение и переименование файлов. Приходится регулярно чистить версионный бэкап от неизменённых файлов через fdupes

также из-за того, что менеджмент BitTorrent Inc. решил монетизировать Sync 2.0, урезая функциональность

Ну, главный свой минус, введённые однажды лимит по числу каталогов они убрали. А то именно это введение в своё время и отвратило от них массу пользователей (и меня тоже — вернулся только после снятия подобных ограничений).

KRoN73 ★★★★★ ()
Ответ на: комментарий от GamePad64

Я никак не могу понять, почему они не вольют это в основную ветку Syncthing.

Так был же уже официальный ответ, вроде. Автор не может сделать inotify кроссплатформенным :) (syncthing-inotify просто использует стороннюю Go-библиотеку, которая обеспечивает нужный функционал на Win/Lin/Mac)

KRoN73 ★★★★★ ()

https://librevault.com/blog/basic-threat-model/

And even if the attacker compromises our servers (and that’s unlikely), it will get only a sequence of random bytes.

Хотелось бы больше узнать о том как именно используются «ваши сервера», что на них хранится и доступен ли исходный код серверной части.

Вообще эта страница вызывает подозрения. Куча восклицательных знаков и пафосных слов про безопасность.

Nao ★★★★★ ()
Последнее исправление: Nao (всего исправлений: 1)
Ответ на: комментарий от Norong

Документы довольно маленькая вещь, легкая. Мне надо довольно много файлов синхронизировать, причем довольно большого объема (речь идет о фонотеке). Справится?

RiseOfDeath ★★★★ ()
Ответ на: комментарий от Nao

Этих серверов нет. Всё очень просто. Я писал эту страницу ещё в прошлом году, на самом деле. Тогда задумывалось использовать дополнительные релей-сервера (которые, в теории, можно скомпрометировать и слушать трафик). И эта фраза обозначает, что при взломе таких серверов злоумышленник не получит ничего.
Сейчас релеев нет, софта для них нет, и в планах их тоже нет.

GamePad64 ()
Ответ на: комментарий от GamePad64

Дополню: не только злоумышленник, но и владелец релея (который в моём понимании является злоумышленником по умолчанию).

GamePad64 ()
Ответ на: комментарий от GamePad64

Наверное всё таки потенциальным злоумышленником, но в любом случае вы молодец :)
А не хотите добавить readme с хотя бы кратким описанием?

LiBer ★★★ ()
Ответ на: комментарий от RiseOfDeath

По идее, должен.

Но пока алгоритмы скачивания не оптимизированы, зашифрованные блоки файлов качаются в случайном порядке, и файлы из этих блоков соберутся ближе к концу синхронизации (хеши блоков псевдорандомные, а скачиваются по-порядку) (то есть, если что-то качается, а файлов нет — это пока нормально, просто нужно подождать).

И ещё: все скачивающиеся блоки mmap'ятся, поэтому большие директории могут не поместиться в виртуальной памяти на 32-битных платформах (issue #15). Будет исправлено в ближайших релизах.

GamePad64 ()
Ответ на: комментарий от LiBer

Да, сегодня вечером. Весь день получился в разъездах.

В readme нужно короткое описание, инструкция по сборке и список зависимостей. Ещё надо COPYING добавить (его нет, оказывается). Это у нас issue #21, #22.

GamePad64 ()

файлы синхронизируются напрямую между узлами без участия сервера (peer-to-peer).

А как оно это делает, если оба, например, за натом?

anonymous ()
Ответ на: комментарий от anonymous

Оно попробует пробить NAT через NAT-PMP, UPnP IGD и PCP (пока есть только NAT-PMP). То есть, аналогично обычному BitTorrent (не sync). Если хотя бы с одной стороны пробьётся, то хорошо.

GamePad64 ()

Для Debian Jessie пакеты будут? А то репозиторий есть, а пакета там нет.

В инструкции на странице https://librevault.com/download/ ошибка

sudo apt update && sudo apt install -y librevault
Нужно apt-get

Ещё на Debian Jessie мне потребовалось выполнить команду
sudo apt-get install apt-transport-https
перед apt-get update , т.к. иначе транспорт https не работал.

Nao ★★★★★ ()
Ответ на: комментарий от GamePad64

Запили демон с веб мордой, и тогда стану твоим личным тестером.

anonymous ()
Ответ на: комментарий от Nao

apt всё-таки пошустрее apt-get, ИМХО. И, да, это не ошибка.

Deleted ()
Ответ на: комментарий от yekm

ЕМНИП они могут писать только в sdcard/Android/<app-id> и больше никуда.

Radjah ★★★★★ ()
Ответ на: комментарий от Deleted

O_o Ещё и какой-то apt теперь есть. Никогда не использовал.
Судя по ману - какой-то упрощённый интерфейс для команд apt-* , ничего интересного.

Nao ★★★★★ ()

Демоном удалённо как рулить?

Скрипты/юниты/etc для разных систем инициализации будут?

Radjah ★★★★★ ()
Ответ на: комментарий от Nao

Все они вокруг dpkg скачат. Мне в нем прогресс-бар нравится и подсказки всякие по наличию обновлений.

Radjah ★★★★★ ()

А что будет если поверх запустить EncFS? :)

anonymous ()
Ответ на: комментарий от Radjah

То есть никаких сторонних файловых менеджеров?

KivApple ★★★★★ ()
Ответ на: комментарий от anonymous

А что будет если поверх запустить EncFS? :)

А какая разница? Я использую EncFS и в Syncthing, и в Dropbox даже :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от Nao

Судя по ману - какой-то упрощённый интерфейс для команд apt-* , ничего интересного.

Он прогрессбар выдаёт. Цветной. Приятно :) Ну и писать меньше.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

А какая разница? Я использую EncFS и в Syncthing, и в Dropbox даже :)

Интересно. А для каких целей EncFS+Syncthing ? Бекап на недоверенную машину?

Я для этого использую duplicity/duplicati, но подыскиваю что-нибудь другое.

Nao ★★★★★ ()
Ответ на: комментарий от Nao

А для каких целей EncFS+Syncthing ? Бекап на недоверенную машину?

Чем больше машин, тем выше вероятность, что до них кто-то доберётся. Так что у меня самые важные данные и на локальной машине в EncFS :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Понятно. Ну я как-то больше доверю LUKS в таких вещах.

Nao ★★★★★ ()
Ответ на: комментарий от Nao

Ну и как ты его привяжешь к клауд сториджам?! Или хранить локально - зашифровано, а в облаке - РАСШИФРОВАНО? Твой аватар очень точно отображает кто ты есть - тупое жЫвотное :-)

anonymous ()
Ответ на: комментарий от Radjah

1. Будет CLI, которым можно будет рулить удалённо. Сейчас можно гуем, он поддерживает отцию --attach=«ws://ip:port». Порт по-умолчанию: 42346.
2. Да. Для systemd будет точно (у меня Ubuntu), для остального — появится вместе с пакетами под другие дистрибутивы.

GamePad64 ()

О, весьма кошерно выглядит. Буду пробовать как замену btsync.

mike666 ()
Ответ на: комментарий от anonymous

Ну и как ты его привяжешь к клауд сториджам?!

Никак(*), я не пользуюсь проприетарными клауд стораджами, мне на них пофигу.
Речь о подконтрольных мне машинах, а на них уже мы никак не ограничены и можем поднять хоть LUKS, хоть EncFS.


* Можно копировать файл или содержимое блочного устройства с LUKS целиком в облако.

Nao ★★★★★ ()

Пока юзаю Syncthing. Но как только ребята допилят поддержку UPnP и NAT-PMP - попробую и Librevault, выглядит интересно.

lucentcode ★★★★★ ()
Ответ на: комментарий от RiseOfDeath

На первой Raspberry Pi Syncthing ворочается вполне сносно, BitTorrent Sync жутко тормозит, практически нерабочее состояние.

fridaycat ()

А почему сайт на домене com? Планируется в дальнейшем монетизация?

nlykl ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.