После пяти лет с момента формирования первого тестового выпуска подготовлен (https://forum.syncthing.net/t/syncthing-graduation-day/12617) первый стабильный релиз системы Syncthing 1.0.0 (https://syncthing.net/), которая позволяет организовать автоматическую синхронизацию файлов пользователя на нескольких устройствах, решая задачи сходные с проприетарной системой BitTorrent Sync. Синхронизированные данные не загружаются в облачные хранилища, а напрямую реплицируются между системами пользователя при их одновременном появлении в online, используя развиваемый проектом протокол BEP (Block Exchange Protocol). Код Syncthing написан на языке Go и распространяется (https://github.com/syncthing/syncthing) под свободной лицензией MPL. Готовые сборки подготовлены (https://github.com/syncthing/syncthing/releases/tag/v1.0.0) для Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD и Solaris.Кроме решения задач по синхронизации данных между несколькими устройствами одного пользователя, при помощи Syncthing возможно создание больших сетей для хранения совместно используемых данных, которые распределены по системам участников. Предоставляются гибкие средства контроля доступа и создания исключений для синхронизации. Возможно определение хостов, которые будут только получать данные, т.е. изменение данных на этих хостах не будет отражаться на экземплярах данных, хранимых на других системах. Поддерживается несколько режимов (https://docs.syncthing.net/users/versioning.html) версионирования файлов, при которых сохраняются прошлые версии изменившихся данных.
При синхронизации файл логически разбивается на блоки, которые являются неделимой частью при передаче данных между системами пользователя. При синхронизации на новое устройство, в случае наличия идентичных блоков на нескольких устройствах, копирование блоков производится с разных узлов, по аналогии с работой системы BitTorrent.
Чем больше устройств участвуют в синхронизации, тем быстрее будет проходить репликация новых данных за счёт распараллеливания. В процессе синхронизации изменённых файлов, по сети передаются только изменившиеся блоки данных, а при переименовании или изменении прав доступа синхронизируются только метаданные.Каналы передачи данных формируются при помощи TLS, все узлы аутентифицируют друг друга по сертификатам и идентификаторам устройств, для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств. Для настройки системы и мониторинга предусмотрен встроенный web-интерфейс, CLI-клиент (https://github.com/syncthing/syncthing-cli) и GUI Syncthing-GTK (https://github.com/syncthing/syncthing-gtk), в котором дополнительно предоставляются средства управления узлами синхронизации и репозиториями. Для упрощения поиска узлов Syncthing развивается (https://github.com/syncthing/discosrv) сервер координации обнаружения узлов, для запуска которого
подготовлен (https://github.com/syncthing/docker) готовый образ Docker.Выпуск ознаменовал (https://github.com/syncthing/syncthing/releases/tag/v1.0.0) готовность проекта для повсеместного использования и стабилизацию протоколов, в которые в рамках ветки 1.x.x не будут вноситься изменения, нарушающие обратную совместимость. Проект также перешёл на новую схему нумерации выпусков, соответствующую принципу семантического версионирования (x.y.z, где "x" меняется при нарушении обратной совместимости, "y" обозначает значительные функциональные изменения, а "z" - корректирующие обновления).
Из функциональных изменений, добавленных с момента последнего экспериментального выпуска, отмечается реализация возможности ограничения максимального числа одновременных операций сканирования данных, отображение в GUI настроенного лимита интенсивности передачи данных и возможность просмотра локально изменённых файлов для каталогов, синхронизируемых в режиме только для получения данных.
URL: https://forum.syncthing.net/t/syncthing-graduation-day/12617
Новость: https://www.opennet.dev/opennews/art.shtml?num=49887
Отличная штука. Чуть сложнее в настройке, чем Dropbox, но то, что все данные "под контролем" греет душу, да.
Неплохо. Единственное, что смущает - го.
Не смущайтесь, юзайте.
Чем Go смущает? Go отлично подходит для данный задачи.
Утилита распределённой синхронизации файлов, да ещё с привилегиями - это всё-таки не совсем клиентская свистоперделка, а скорее системный компонент потенциально. Системный компонент на го - это странненько.
Перепиши на расте или сишке, будь мужиком! Ещё варианты: кложура или скала (правда они в inotify умеют не).
это и должно писаться на memory-safe языке.
Язык со сборкой мусора на практике означает невозможность докопаться по причин утечки памяти.
омг... во первых - язык со сборкой мусора уменьшает вероятность этих самых утечек... или ты думаешь, что если вместо ручного удаления объекта его подчищает сборщик мусора - то это тоже утечка?во вторых - утечки в программах на таких языках - достаточно частое явление. и их отлично видно, и обычно нет никаких проблем их отловить и исправить.
Ну если речь идет о хеловорде в рамках языка, то скорей всего все заработает как и задуманно. А если куча биндингов либов на сишечке и у каждой свои потребности в куче, то случается всякое.
о_О С какими такими привилегиями? Она благим матом орёт "нужна обычная юзеровская учётка". И работает из-под такой учётки, что характерно. А если кто-то не умеет в настройку прав доступа - не жалко.
Какие еще клиентские свистоперделки? Go изначально спроектирован для написания i/o-bound демонов. Для данной задачи подходит прекрасно.
> изначально спроектирован для написания i/o-bound демоновЭто такое хитрое альтернативное написание "неэффективных по потреблению CPU"?
Это общеизвестный термин в computer science, вообще-то.
Почитайте хотя бы википедию: https://en.wikipedia.org/wiki/I/O_bound
Радуйся, что не на Электроне или php.
Оно точно работает?
Точно работает
Работает.
Запускаю под докером с оторваными правами, нужные разделы подсунуты через докеровские волюмы.
За почти год использования могу сказать примерно так: не пугайтесь конфликтов синхронизации (а они будут, если участников синхронизации больше 2х или один из участников синхронизации — андроидовский syncthing), а радуйтесь, что система не попыталась их «смержить»; не жалейте места под «версионирование» файлов; НЕ синхронизируйте целиком /home/$USER с мобилой (особо оцените, когда на мобилке понадобятся ~/Documents, но не ~/Video и Downloads); не забывайте про синхронизацию .dotfiles/.dotdirs; исключайте .cache.
Для андроида есть еще Syncthing Lite. Он не синхронизуирует все подряд, а только загружает нужные файлы.
5 лет ждал)
Все крутятся вокруг да около, но полноценную децентрализованную социальную сеть с неограниченным файлообменом пока никто не сделал.
Хочешь свои терабайты по моим бюджетникам распихать? :)
RetroShare ближе всего.
Это f2f система, там весьма туго с поиском. Не знаю хорошо это или плохо, но стартовать с нуля (просто запустив клиента) не получится - нужно искать в обычном инете сертификаты других юзеров.
С поиском там как раз мощно до гениальности.
Ну а порог вхождения имеется, да. Но придуман https://retroshare.ch
А что там просто до гениальности?
За эталон простоты можно брать контактик. Есть группы по интересам, можно их найти (по названию, и в идеале по ключевым словам, чего в VK нет) и присоединиться, и уже оттуда брать друзей и расшаривать с ними ресурсы. Здесь же все наоборот: присоединяйся к какому-то retroshare.ch с такими же левыми новичками как ты, и что дальше? Никаких анонсов внутренних ресурсов вроде как нет, ну я по крайней мере не вижу. Какой-то поиск есть, но как он работает? Я пытался найти что-то совсем простое, ничего не нашел. Чистый F2F.
Платить за хранение экзабайтов твоих китайских порномультиков будет конечно же, Будда или Аллах, да?
Платить будут те, кому интересно тоже что и мне (и я вместе с ними). В этом и смысл объединения p2p и социальности.
p2p не нужен для обычного_пользователя. Начиная с невозможности восстановить пароль при забывании оного - заканчивая проблемами с коннектом за натом (syncthing решает это дело сторонними серверами. Что уже, мягко говоря, идет вразрез с идеей). Федерации - тут да. Но, собственно, что мешает использовать связку из торрента (для данных) и activitypub-based социалочки? (для обмена магнетами)
Ещё раз посмотри, как это делает syncthing и не болтай ерундой.
>полноценную децентрализованную с неограниченным файлообменомipfs?
>социальную сетьзачем?
Затем что в клирнете есть Гугл с его мощнейшей системой поиска, ранжирования информации и т.п.
В p2p этого нет - но есть потенциальная армия пользователей, у которых есть какие-то свои интересы и которые потенциально готовы собирать и классифицировать информацию по интересующим их темам и делиться ей. А это и есть соцсеть. p2p без соцсети это все равно что интернет без поисковиков. Фактически эти две технологии идеально дополняют друг друга.
ну скажи ты уже прямым текстом, что хочешь супер-варезник
hubzilla
Пользуюсь с момента первого анонса тут. Хорошая штука.
Кто-нибудь знает аналогичную открытую систему, но для организации видеотрансляций?
https://www.opennet.dev/opennews/art.shtml?num=49873 или тебе чтобы стримминг-овер-торрент?
PeerTube?
Два чаю этому ретрошареру
https://jitsi.org/
Слежу за прогой с первых дней её появления как и за всеми топовыми проектами. GO до сих пор покоя не даёт )
C++/C/Python было бы замечательно.
Чем конкретно покоя не дает, вкусом фломастера?
Ну как же это, ведь на опеннете диванные спецы в комментах поливают го помоями!
Поэтому open source и загибается. Мало кто хочет работать бесплатно да ещё и для токсичной аудитории, которая только может только все хаять, хотя иногда лучше просто промолчать.
Не надо верить всем "hello, world" программистам... Это как про то, что написано на заборе и что та лежит. Тут банально глянуть, кто сейчас переходит на этот язык, и там такие бренды как Google, Facebook, Uber, Intel, Netflix, Twitter, Мыло.ru, Контур и т.д. Я думаю эти ребята уже пытались реализовать эти задачи на текущих попсовых языках, и результаты их не устраивали. А бабла у них хватает что бы написать одну задачу на всех языках и потом сравнить результат, и преимущество в несколько миллисекунд и в мегабайт памяти для них это сотни или тысячи освобожденных серверов.
Лично на Go начал с его появления, и сейчас на нем уже делают 90% проектов. Остальные 10% это локальные win old school приложения... а тут уже лет 15 жестко сижу на Delphi, за 15-20 минут могу все что угодно написать :) это единственный жирный минус Go, это работа с граф.интерфейсом. Не спорю многие говорят что он создан для других задач, но хочется все делать на одно языке :) ну есть же php2exe и подобное :))))
Ахахахаха
Просто приходит поц-мелкая сошка, говорит что го это модно, стильно, молодёжно, а манагерам пох, главное что манки стучат по клавишам и дают какой-то выхлоп. Сравниваю они, ога, это только во влажных фантазиях такое.
Ну учить гугловский го ради одной софтины не очень воодушевляет
ммм, а зачем тебе собственно его учить? ты что, учишь все языки, на которых написаны приложения, которыми ты пользуешься?И да, я тоже далеко не фанат Go. Есть в этом языке некоторые вещи (обсуждение которых выходит за рамки данной темы), из-за которых я вряд-ли когда-нибудь займусь изучением этого языка. Но данная утилита - работает, и работает достаточно хорошо. Да, есть нюансы, из-за которых она врядли когда-нибудь станет массовой (основной нюанс - сложность для простого юзера), но по моему опыту - это тот инструмент, на котором можно остановиться при решении задач синхронизации. И этот инструмент достаточно гибкий, чтобы можно было его рекомендовать для абсолютного большинства таких задач. А на чем оно написано - абсолютно неважно, пока оно не требует рута. У меня оно под своим юзером запущено и имеет доступ только туда, куда я разрешил.
Go - это так-то successor и плюсов и пуфона. Что в этих двух замечательного?
А вот и инициатора покоя подвезли! Ждем замечательного релиза на C++/C/Python от robot228. Или только и умеем коменты строчить и Статью 228 УК РФ в нике ставить? Любим носик припудрить?
Моя реакция пока читаю первый абзац:
УРРРРРРРРААААААААААА!!!!!! Наконец-то!!!
>>Код Syncthing написан на языке GoFFFFFFFFUUUUUUUUUUUUUUUUU- :_(
Нет, не в этот раз, видать. :(
Ждём пока напишут на Си и без ООМов.
> Ждём пока напишут на Си и без ООМов.Ну-ну, удачи.
Я в отличии от местных анонимов на зарплате Си-проект поддерживаю (сам почти не пишу, но в код часто приходится лазить), а в свободное время на Go кодирую, так что реальное представление об обоих имею. Так вот, команда Си-кодеров (читай программистов, тут же не Грязношвабр), которые смогут подобное своять, обойдётся дороже, чем команда гоферов + отправка 2GB планки опертивки всем желающим (чтобы OOM не ловили).
"команда гоферов" ага, давным давно было, помню https://ru.wikipedia.org/wiki/Gopher
Ну в этом-то и проблема как раз, что го ассоциируется с дешевым говнокодом.
Эт типа, не пробовал, но осуждаю ?Честно говоря, я тоже Го не доверял поначалу, но когда разобрался, что к чему, то скажу, что у него очень много плюсов по сравнению с другими. Нативный скомпилированный код практически для всех платформ, статическая компиляция, позволяющая не париться с зависимостями ну и много чего другого вкусного...
На связи двух устройств нужно на каждом устройстве указать ID другого устройства. А если устройств 1000, как это вообще должно выглядеть? Нужно на каждое устройство установить Syncthing узнать ID устройства, записать в тетрадочку, и повторить с каждым устройством, потом вернуться к первому и добавить ID всех устройств, после повторить с каждым??? А если появится 1001 устройство??Гораздо логичнее указать ID условного хоста и пароль/ключ, как это сделать в BittorrentSync. Добавление нового устройства никак не касается остальных.
И не нашел работает ли Syncthing за NAT`ом.
Можно добавлять устройства как рекомендателей.
Этакий режим доверия когда добавленное устройство тоже может join'ить в сеть другие и между ними настраивается синк.
Вместо "записать в тетрадочку" можно шарить QR код (тот же ID но QR) между всеми участниками
это еще не все ))))
а теперь, когда синхронизировано 1001 устройство, попробуйте из синхронизации исключить пару (ну вышли из вашей группы доверия два человека)
или просто попробуйте проконтролировать куда ваши данные перетекают
>И не нашел работает ли Syncthing за NAT'ом.Да. Работает. Через relay'и.
Да, можно свой relay. Да, трафик на relay не расшифровывается.
Для массового добавления есть есть вариант рекомендующего хоста и api. ID добавляемых всё равно надо знать.
Обычный btsync который теперь resilio sync умеет гораздо больше и проще.И вы наверное не в курсе но (шок!) этот бтсунк написан нашими программистами и не за 5(!!!) лет
Судя по странице продука (Resilio Sync), там половина в pro версии только платной.
Или ошибаюсь?
Вы не ошибаетесь.
Но там платная версия стоит на 5 аккаунтов (семейная версия) около 50$ (там очень часто скидки есть или купоны поискать в интернете).
Я себе так и купил, просили за нее вроде около 900-100$, я им написал письмо, попросил скидку, они отказали, я нашел быстро в нете какие то их купоны на скидку, использовал и купил за 50% от стоимости (около 50-60$ вышло). Оно того стоит.
Ну плати дальше ... Молодец!
>умеет гораздо большеНу если вы из той породы, кому нечего ничего скрывать, то флаг в руки...
>написан нашими программистами
А вот это кстати очень пугает, только по одному оформлению конфига понятно с какой скоростью его пилят
>и не за 5(!!!) лет
Вообщето битторрент синк появился раньше синксинга
Помню эту дикую боль при настройке, я тогда себе мозг вывихнул, пытаясь понять, как же её настроить…
Ну если проблемы с настройко такого легкого софта, то что вы тут вообще делаете? Большенство тут анонсируемого софта - просто смерть мозгу походу.
Тебе лишь бы обосрать человека. А в отличии от этого куска непонятно чего, его проприетарный аналог, который есть и под линукс, bitsync, настраивается черезвычайно просто. Что мешало авторам Syncthing содрать не только концепцию, но и вменяемый интерфейс? Яйца? А?
Ищем замену Resilio ибо цены на серверную версию неприлично выросли, иначе бы продолжали сидеть на нем - шикарный продукт. Из всего просмотренного ближе к нашему функционалу пока Syncthing, но первое что пугает - огромная партянка xml конфига.
я уже пару лет пользуюсь syncthing и ни разу еще не лазил в его xml config - все настраиваю через web-интерфейс.
У каждого свои задачи, у нас клиентов несколько сотен, все конфиги генерятся автоматом через API и уплывают на клиента, потом рестарт и подъехали новые папки.
Зарабатывать на кем-то бесплатно написаном софте и даже не приложить усилий к запиливанию конфига. Шикарно. Хочу больше денег, хочу меньше (в идеале -вообще ничего) делать.
Интехраторы, сэр.
Я помню, как в нашу контору пытались впарить winmerge, notepad++ с допиленной подсветкой синтаксиса (отмечу справедливости ради, да) + ещё что-то свое на коленке на делфях.
Да ты ж мой хороший, во всем уже разобрался - кто к чему и что приложил и кто и на чем заработал *рукалицо*
ммм, так а в чем проблема xml генерировать автоматом? тем более, когда клиент за это платит...
Что-то, я смотрю, вместо простой софтины-синхронизатора наворотили какой-то ад, зачем - непонятно совершенно
Что по твоему "простая софтина-синхронизатор"? Прокидывать файлы между двумя устройствами? Вообще я смотрю на эту штуку, и чем больше смотрю, тем больше оно мне нравится. Я шарю файлы при помощи гуглодрайва, и паранойя не позволяет мне просто зашвырнуть туда всё или почти всё, с тем чтобы по поводу каждого файла который мне вдруг понадобился не искать резко ssh консольку, чтобы добраться до домашнего компа, чтобы скачать нерасшаренный файлик.Руки дойдут обязательно посмотрю, что за штука. Если там есть возможность http ссылку на файл сгенерировать, которую можно через вконтактик переслать, то это вообще вин. Особенно если можно ограничить время жизни этой ссылки или количество переходов по ней.
> Если там есть возможность http ссылку на файл сгенерировать, которую можно через вконтактик переслать, то это вообще вин.Не, такого нет, и врядли будет. Это тебе что-то типа OpenCloud скорее всего нужно.
Пользуюсь уже полтора года, настроена синхронизация между nas, ноутом и компом. Полет нормальный. Все работает в юзерспейсе, т.к. на компах несколько пользователей, для каждого пользователя настроена отдельная синхронизация (2 пользователя - 2 инстанса syncthing), стартует через автозапуск DE, сервисом делать неудобно. Забавляет что тут обращают внимание на язык Go, какая разница на чем написано, я лично недоволен софтом который регулярно падает с SegFault, а такого очень много среди открытых редакторов видео.
Уже давно отказался от дропбокса из за вопроса приватности на котором было 10 гигов в пользу синктинг и не жалею. В первый раз настраивал методом тыка. Все - класс! Только иногда из за одного файла стает вся синхронизация (вроде пофиксили т.к. давненько не замечал)
заткнувшаяся на одном/нескольких файлах синхронизация, хоть и вывешивает матюком что нет синхронизации, но продолжает корректно отрабатывать другие файлы базы.
>для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств.Есть куда расти.