p2p сеть для книгообмена.
Jun. 8th, 2007 03:44 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я тут подумал, что требования к peer-to-peer протоколу для работы с электронными книгами сильно отличаются от требований к протоколу для разадчи multimedia, под которые заточены всякие ed2k и bittorrent.
Если музыка и фильмы это, как правило, немного больших файлов, и возможность распределения нагрузки по раздаче является существенной, то электронная библиотека - это много-много (десятки тысяяч) относительно маленьких файлов.
Причем начиная с того момента, как у человека образовалась эта библиотека, дальнейшиф траффик очень маленький - новинки, исправления опечаток и т.д.
С другой стороны, мультимедиа-файлы обычно редактированию конечным пользователем не поддаются. А вот опечатки в электронной книге может исправлять любой.
Соответвтвенно, для синхронизации изменений в электронных библиотеках (если предположить что на начальный момент участия в p2p сети каждый участник обзавелся копией библиотеки на момент вступления, например выкачав ежегодный снапшот из традиционных p2p),
гораздо больше подходят такие средства как rsync и unison.
Эти средства позволяют поддерживать в консистентном состоянии сколько угодно мирроров одной и той же коллекции книг с минимальным количеством траффика. При этом если любой пользователь исправит опечатку, это исправление расползется по всем хостам сети.
Кстати, если кому-то жалко места на диске, он вполне может синхронизировать у себя не всю библиотеку, а определенные жанры или определенных авторов. Для этого нужна только соответствующая структура каталогов.
Злесь, правда, есть такая тонкость, что необходима какая-то система учета доверия к пользователям. А то в сети заведутся обязательно гады, которые будут книги портить. Впрочем, формат FB2 легко защищается электронной подписью на базе xmldsig. При этом файл подписи можно положить рядом, чтобы не мешал читалкам. Тогда если при синхронизации приехали изменения к существующему файлу, можно посмотреть, кто под ними подписался, и, в зависимости от этого, либо сразу включить в основной архив, или оставить до ревизии владельцем данной копии, который, может быть, потом и своей подписью под этими изменениями подпишется. Новые книги, ранее в библиотеке отсутствовавшие, можно принимать и без подписи.
Если музыка и фильмы это, как правило, немного больших файлов, и возможность распределения нагрузки по раздаче является существенной, то электронная библиотека - это много-много (десятки тысяяч) относительно маленьких файлов.
Причем начиная с того момента, как у человека образовалась эта библиотека, дальнейшиф траффик очень маленький - новинки, исправления опечаток и т.д.
С другой стороны, мультимедиа-файлы обычно редактированию конечным пользователем не поддаются. А вот опечатки в электронной книге может исправлять любой.
Соответвтвенно, для синхронизации изменений в электронных библиотеках (если предположить что на начальный момент участия в p2p сети каждый участник обзавелся копией библиотеки на момент вступления, например выкачав ежегодный снапшот из традиционных p2p),
гораздо больше подходят такие средства как rsync и unison.
Эти средства позволяют поддерживать в консистентном состоянии сколько угодно мирроров одной и той же коллекции книг с минимальным количеством траффика. При этом если любой пользователь исправит опечатку, это исправление расползется по всем хостам сети.
Кстати, если кому-то жалко места на диске, он вполне может синхронизировать у себя не всю библиотеку, а определенные жанры или определенных авторов. Для этого нужна только соответствующая структура каталогов.
Злесь, правда, есть такая тонкость, что необходима какая-то система учета доверия к пользователям. А то в сети заведутся обязательно гады, которые будут книги портить. Впрочем, формат FB2 легко защищается электронной подписью на базе xmldsig. При этом файл подписи можно положить рядом, чтобы не мешал читалкам. Тогда если при синхронизации приехали изменения к существующему файлу, можно посмотреть, кто под ними подписался, и, в зависимости от этого, либо сразу включить в основной архив, или оставить до ревизии владельцем данной копии, который, может быть, потом и своей подписью под этими изменениями подпишется. Новые книги, ранее в библиотеке отсутствовавшие, можно принимать и без подписи.
no subject
Date: 2007-06-08 12:10 pm (UTC)Всякие pdf/djvu/chm больше похожи на multimedia
no subject
Date: 2007-06-08 12:11 pm (UTC)no subject
Date: 2007-06-08 12:19 pm (UTC)no subject
Date: 2007-06-08 12:23 pm (UTC)При этом, если 2 пользователя одновременно исправят 2 опечатки в одном файле - rsync изменения одного из них убьёт. Нужно интеллектуальное слияние, например, система контроля версий.
no subject
Date: 2007-06-08 12:23 pm (UTC)no subject
Date: 2007-06-08 12:23 pm (UTC)ЗЫ я вот думаю, что хорошо бы объеденить svn или подобную программу с генератором текстовых файлов из бинарных, чтоб в том же svn хранить бинарные файлы, но получать из него diff'ы в txt -- весьма удобно было бы хранить так в организациях doc, xls (используя Ваш catdoc), odf, ...
Или такое уже есть?
no subject
Date: 2007-06-08 12:26 pm (UTC)Нечто подобное реализовано в gentoo для конфигфайлов.
no subject
Date: 2007-06-08 12:29 pm (UTC)no subject
Date: 2007-06-08 12:31 pm (UTC)И репозитарии для управления всем этим.
no subject
Date: 2007-06-08 12:37 pm (UTC)no subject
Date: 2007-06-08 12:38 pm (UTC)no subject
Date: 2007-06-08 12:41 pm (UTC)Ыыыыыы. Не надо!
no subject
Date: 2007-06-08 12:42 pm (UTC)Из pdf можно выдернуть текст, но можно ли его будет безболезненно вставить обратно?
no subject
Date: 2007-06-08 12:54 pm (UTC)no subject
Date: 2007-06-08 12:57 pm (UTC)Понятно, что сети это не вредит никак, а вот ее участнику - очень даже. Я, пожалуй, не буду принимать участие.
no subject
Date: 2007-06-08 01:01 pm (UTC)Я тоже сразу про darcs вспомнил.
no subject
Date: 2007-06-08 01:47 pm (UTC)Хранение файловой базы на винте - шифрованное, траффик между системами - шифрованный. Тогда максимум, что смогут найти у тебя на винте, это непонятные шифрованные файлы.
Стандартное возражение, а сели тебе всунут в жопу паяльник, не катит в принципе.Если у тебя в жопе паяльник, то это означает, что наличие или отсутствие файлов на винте никакой роли уже не играет. С паяльником в жопе легко признаться в убийстве Кеннеди, в похищении трубки Сталина, в покушении на Путина, в производстве наркотиков и т.п.
* * *
У меня вообще есть парадоксальная мысль. Если всё равно могут прийти и трахнуть (за нелицензионный Линукс, за опечатку в налоговой накладной, за написание нелицензионного софта), то вообще не имеет смысла прятаться, шифроваться, покупать Винды, не воровать, быть честным и легальным. Всё равно засудят. Нужно или смириться в тем, что жизнь смертельна или искать нетехнических способов защиты (эмигрировать, повеситься, найти себе сильную крышу, переквалифицироваться в управдомы или бомжи и т.п.)
no subject
Date: 2007-06-08 01:49 pm (UTC)А вот насчет выделения "нескольких основных серверов" я решительно против. Каждый читатель (владелец библиотеки) должен решать сам за себя. Если он какому другому читателю доверяет, так это лично он лично ему доверяет.
no subject
Date: 2007-06-08 01:51 pm (UTC)А специфические аналоги diff для xml существуют.
no subject
Date: 2007-06-08 01:53 pm (UTC)no subject
Date: 2007-06-08 01:59 pm (UTC)С шифрованием-то все понятно, причем в идеале ты в принципе не должен иметь прямого доступа к свое шифрованной базе. В какой-то p2p сетке это уже было реализовано, не помню точно. Тогда и паяльник не страшен.
Просто у Витуса_Вагнера об этом не полслова. Он сконцентрирован на технических угрозах, причем угрозах для абстрактного сообщества, а не на социальных угрозах для персоны.
* * *
Парадоксальная мысль не столь уж парадоксальна и в какой-то степени верна. Надо понимать, что жизнь - опасна. И надо предпринимать разумные усилия по минимизации опасностей с _сохранением целевых функций_. В некоторых условиях такими разумными усилиями может оказаться переквалифицирование в управдомы, да. Смотря какие у тебя цели.
no subject
Date: 2007-06-08 02:04 pm (UTC)Первым делом про них и вспомнил. Вторым делом подумал, что на практике и для централизованых (вроде CVS) репозитариев своя ниша найдётся — в разных странах разное законодательство.
no subject
Date: 2007-06-08 02:04 pm (UTC)pdftotext'ом можно вытащить текст обоих документов и сравнить. Не уверен, правда, что без граблей обойдётся.
diff покажет место исправления - можно решить, справедливо ли оно. Оставить тот pdf, что больше нравится.
no subject
Date: 2007-06-08 02:15 pm (UTC)no subject
Date: 2007-06-08 02:20 pm (UTC)