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. При этом файл подписи можно положить рядом, чтобы не мешал читалкам. Тогда если при синхронизации приехали изменения к существующему файлу, можно посмотреть, кто под ними подписался, и, в зависимости от этого, либо сразу включить в основной архив, или оставить до ревизии владельцем данной копии, который, может быть, потом и своей подписью под этими изменениями подпишется. Новые книги, ранее в библиотеке отсутствовавшие, можно принимать и без подписи.
Re: Gopher или новое - хорошо забытое старое?
Date: 2007-06-09 09:45 am (UTC)Я сейчас рассматриваю другую задачу - предположим, что у каждого есть локальная копия библиотеки. Но в этой библиотеке регулярно находятся и исправляются опечатки, появляются новые поступления и так далее. Хочется сделать, чтобы эти улучшения распространялись по всем локальным копиям.
Проблема больше похожа на задачу дистрибуции security updates к софту, чем на поиск информации в интернете.
Разница в том, что у софта есть мейнтейнер, который утверждает изменения, и для каждой софтины (а то и для всего дистрибутива) есть централизованная точка, откуда исправленная версия начинает распространяться. В ситуации с библиотеками хотелось бы этого избежать.
В некоторых случаях мейнтейнером может выступать автор. Вспомним высказывание Дивова на приснопамятном круглом столе - что его больше всего раздражает, что выложили кривой скан его книги, а его не уведомили об этом и не предложили выдать более правильный текст. Но только в некоторых. Могут быть авторы, которые не хотят чтобы полные копии их текстов циркулировали в сети. А лично я считаю, что права отозвать единожды опубликованную информацию у автора не должно быть. Слово не воробей - вылетит не поймаешь.
Re: Gopher или новое - хорошо забытое старое?
Date: 2007-06-09 12:12 pm (UTC)Вот этого и мне больше всего хочется. Следить за новинками и исправлениями. Распространять собственные исправления (я иногда исправляю книги, которые читаю). Всё это без ежемесячной перекачки гигабайтов.
Может автор и не вправе отозвать опубликованную им самим информацию, но есть ещё и публикация без разрешения, и публикация искажённой информации с отказом от исправления (похоже на клевету, нет?).