Про распрделеленную флибусту
Oct. 3rd, 2024 11:25 amВообще по-моему близким к идеалу протоколом для синхронизации многочисленных личных и семейных электронных библиотек является NNTP.
Пишешь список групп (категорий и жанров) которые тебе интересны, твой сервер стучится к соседскому и спрашивает "а вот GROUP такая-то у тебя есть?" Тот отвечает "IHAVE и список идентифкаторов произведений (в оригинальном NNTP - статей, здесь кни)". Наш сервер "О, SENDME вот это, вот это и вот это (а остальное у меня уже есть)" При этом есть и cancel messages, и понятие supercedes.
У fb2 правда аналог понятия supercedes встроенный. Там есть version.
Но вообще с заменой книги на "улучшенную и исправленную" надо быть осторожным. В распределенной системе наверняка заведутся копирасты, заменяющие текст на ссылку "купите вот здесь" и цензоры, по разным оображениям вырезаюищие те или иные куски.
Ну и вообще в качестве IHAVE вполне может выступать уже существующая система OPDS-каталогов. Нужно только к своей библиотеке приделать робота, который будет шариться по списку OPDS-каталогов и скачивать всё, что по его мнению может хозяина заинтересовать.
Но в распределенной системе существенно актуальной будет задача поиска информации. Это при наличии такого центрального хаба, как флибуста было хорошо. Все заливали книги на флибусту, а потом все скачивали с торрентов ежемесячные обновления. Это гарантировало что при относительно разумных затратах места и траффика у всех будет всё.
А вот как быть в распределенной системе? Держать весь каталог библиотеки в DHT? Как-то многовато по-моему будет. Особенно если учесть что для каждой книги придется держать довольно длинный список узлов, где она доступна. Или достаточно держать список групп? Жанров и категорий не так много. А там если тебе захотелось редкую книгу ну будешь перебирать сотни и тысячи серверов с данной группой. пока не найдешь такого, где она есть.
Потому что если попытаться организовать более-менее постоянный бэкбон (как было в юзнете), то скорее всего по нему начнут наносить удары. Как по распространителям нежелательной (не важно по соображениям копирайта или соображениям цензуры) информации.