Комментарии 57
Сообществом distributed.ru не раз писали в sci-hub о том, что было бы круто применить ipfs, но порой получали баны (:
Круто, что технология находит свое применение.
Кстати кто не в курсе с IPFS уже много кто эксперементирует, например на ней создан децентрализованный youtube — d.tube
Спасибо за ссылки! Мне только блокчейн кажется оверкилом для хранения хешей файлов, а вот OrbitDB — в самый раз. Насколько мне известно, были эксперименты по засовыванию метаданных библиотеки именно в эту базу.
Блокчейн с инфраструктурой сертификатов больше подошёл бы для Sci-Hub и открытой системы peer-review.
как подобные открытые штуки не засыпают тоннами спама/запрещённого прона и тд?
оно как-то модерируется?
А требования у библиотеки под стать ее монументальности :)
« Recommended at least 16GB RAM and Intel i5 or equivalent processor»
Думал поддержать проект и запустить как запустил у себя Тор ноду в докере, но к сожалению не выйдет.
Стойте, не уходите!1 Требования написаны исходя из оценки в 100 000+ файлов на узел. Меньше файлов на раздаче — меньше памяти. В требованиях Cloudflare сказано про 2GB RAM, а по факту люди сообщают, что IPFS и на Raspberry Pi Zero запускается с 1GB RAM. Правда, надо будет ограничить количество входящих соединений в конфиге IPFS.
Можно установить только консольную версию IPFS. Web-UI в ней всёравно будет доступен через ваш браузер.
Только я не понял как пользоваться этой библиотекой. Там просто навалены книжки в разных форматах и кодировках под хешами вместо имён. Или это куски книг?
Если очень хочется посмотреть что там не устанавливая клиент можно воспользоваться публичными шлюзами IPFS.
Только я не понял как пользоваться этой библиотекой.
Основной способ использования прямо сейчас — веб-зеркала/Telegram-боты для поиска внутри базы метаданных по автору, названию или описанию. Для найденных файлов зеркала дают прямые URLы через IPFS-gateway. Я специально не оставляю в статье никаких ссылок, так как периодически адреса меняются. Но гуглится всё достаточно просто.
Второй вариант — путь воина. Он заключается в развертывании собственного зеркала. Только для возможности сопряжения поднятого зеркала с IPFS нужно дождаться IPFS-хешей в дампах метаданных. Сами дампы регулярно выкладываются в общий доступ.
Дело не в DHT а в том что скрывается под хешем в DHT. BitTorrent в DHT публикует хеш от метаинформации всей раздачи info hash. Таким образом при изменении этой метаинформации меняется хеш и образуется отдельный рой который никак не связан со старым.
IPFS публикует в DHT хеш каждого блока. Блоки связаны друг с другом хешами и образуют деревья каталогов и файлов в листьях которых кусочки данных файлов. Это даёт возможность мощьной дедубликации.
Один и тот же файл с разными именами будет иметь одинаковый хеш и будет источником для разных деревьев.
Более того благодаря чанкеру rabin(он не используется по умолчанию) файл будет разделён на части более умным способом и два разных файла в которых есть одинаковые части могут быть источниками друг для друга.
Вдобавок к написанному, сложность настройки/использования нельзя недооценивать. Несовершенная технология с простым, удобным интерфейсом, качественной документацией и хорошим коммьюнити выживет с большим шансом, чем теоретически вылизанная технология без поддержки сообщества и с интерфейсом в виде перекомпиляции всей библиотеки (я утрирую, но тем не менее).
Ориентировочные размеры такие:
LibGen — 40TB, мета от 500MB до 10GB без индексов. Размер меты зависит от алгоритма сжатия и от того, как считать — в jsonах, инсертах в файле SQL дампа или в бинарном виде без схемы. Необходимые индексы в БД тоже сколько-то места занимают, от 50% до 200% размера БД.
Sci-Hub — 70TB, мета от 10 до 50GB. У БД Sci-Hub'a метаданных больше на порядок, так как в ней 87 миллионов записей против 2.7 миллионов LibGen'а.
Сами pdfки неплохо жмутся, 15%-20% размера можно срезать, если, например, включить сжатие zlibом на файловой системе.
Так под весь объем и не надо поднимать. В IPFS можно запинить столько файлов, сколько позволит диск и это все равно будет существенным вкладом. Более того, система из 10 человек, раздающих по 1GB, будет в целом устойчивее, чем 1 человек, раздающий все 10GB.
Про весь объем — это к студенческой мечте про поднять домашний сервер со всей библиотекой :) Хотя конечно, у меня есть личная библиотека на ~100 ГБ и интересные статьи в Mendeley.
но ведь если зеркала прикроют — сам хеш этот не особо полезен будет.
или не совсем так?
ps есть что-то толковое почитать по ipfs? много раз натыкался, интересно :)
Вот прям ровно наоборот все: в IPFS лежат файлы, в зеркале же хранятся хеши файлов. Пользователь находит в зеркале хеш нужного файла, идет с хешом в IPFS и получает себе сам файл.
Суть в том, что метаданные и хеши занимают маленькие объемы диска и каждый может быстро поднять базу с этой информацией, поэтому на одно прикрытое зеркало появится 10 новых. Без IPFS зеркала вынуждены самостоятельно таскать за собой все 100TB книг и статей вместо их хешей. Мало кто из энтузиастов может себе позволить содержать такие объемы дисков и обеспечивать соответствующий трафик, поэтому и зеркал существует не очень много. IPFS должен помочь изменить эту ситуацию. Кроме того, содержать только метаданные немного безопаснее, чем содержать ещё и файлы.
Почитать можно достаточно хорошую документацию и whitepaper
— Есть-ли какие-либо соображения и оценки возможности организации на СЕРВЕРАХ индексов мета-данных уровня ссылки/библиография?
Для книг готового ссылочного графа я не знаю. Для научных статей существует инициатива открытого цитирования в партнерстве с CrossRef. API CrossRef умеет отдавать ссылки статей друг на друга в рамках этой инициативы. Поэтому принципиальная возможность самостоятельно построить индексы по ссылкам есть.
— Возможно-ли исключение дубликатов содержания (например — шкурки DJVU/PDF к отсканированным оригиналам)?
Возможно всё, вопрос усилий. Дубликаты хорошо отсеиваются и по метаданным, по-крайней мере в случае LibGen.
Для исключения дубликатов по содержанию нужно уметь извлекать текстовый слой из файла. Для PDF с распознаными символами есть утилиты типа PDFBox/grobid. Для нераспознанных сканов необходимо сначала запускать OCR. Что есть для djvu — не знаю, но точно что-то есть.
Мне известны библиотеки, которые проделывали такую работу и заодно выделяли ключевую лексику из текстов, а потом успешно искали дубликаты по пересечению ключевиков. Есть ещё алгоритм шинглов, описанный iseg для Яндекса — это если предположить, что качество текстового слоя хромает и четкого дубликата не будет из-за ошибок распознавания.
Надежда на то, что где-то (может быть в LibGen) хоть как-то будет организовано.
Попробуйте Google Scholar. Находите что-нибудь, а потом на странице поисковой выдачи под строкой с найденным жмете Cited by X…
Так же работает ResearchGate.
Мне казалось, что первичен скан. <...>
Файлы могут получаться абсолютно разными, а вот текстовый слой будет почти одинаковым. Странно было бы, если бы текст сильно различался. На всякий случай, текстовый слой — это собственно само текстовое содержание PDFки, с откинутым форматированием и без графики.
Я вас понял. Наверняка можно решить задачу и сравниванием растров, это правда. Сказать какой метод будет точнее я не могу, у меня не было такого опыта. Но я бы все равно решал эту задачу через распознание текста и его последующее сравнение. Потому что в растре тоже может быть много мешающего шума, если говорить о дублях, которые появились из-за сканирования разными людьми на разном оборудовании разных копий книги. Извлечение текста этот шум уберет.
Еще учась в институте и познакомившись с админом тамошнего студенческого форума, где у нас в том числе был свой файловый архив с отсканенными учебниками, билетами и т.д. я прям загорелся идеей свободной литературы.
Тем интереснее вам будет наблюдать за звеньями одной цепи. Из этих файловых архивов российских университетов появились свободные библиотеки, которые, спустя десятилетия тихой работы множества людей, начали менять научный ландшафт в мире. Европа уже планирует перекрыть кислород безумию платного доступа. И у истоков инициативы европейских академий стоят те люди, которые во времена своей учебы узнали о Sci-Hub и LibGen, и совершенно точно пользовались ими. Вот так идея оказалась сильнее плохих традиций и перешагнула границы и время.
ipfs мне представляется как р2р файлообменная сеть типа edonkey, gnutella, bittorrent вместе взятые без недостатков каждой отдельной файлообменной сети с наличием глобального поиска файлов и многофайловых раздач.
ipfs мне представляется как р2р файлообменная сеть типа edonkey, gnutella, bittorrent вместе взятые без недостатков каждой отдельной файлообменной сети с наличием глобального поиска файлов и многофайловых раздач.
Увы, слишком идеалистичное представление.
IPFS — это только хранение файлов, поиск к IPFS не относится. Конкретно в случае LibGen метаданные для поиска живут в отдельно распространяемой БД, которая не связана с IPFS никак. Были попытки засунуть эту БД в OrbitDB, СУБД на основе IPFS. Чем всё закончилось я не знаю. Соответственно и поиск по этим метаданным — ответственность зеркал или тех, кто разворачивает дампы меты у себя. Импорт дампов и разворачивание зеркал пока является работой с открытой концовкой, никаких quickstart здесь нет. Разве что могу подсказать, что сами ссылки на дампы есть на archiveteam.
Про русский язык замечание принимаю, правда обещать пока ничего не буду. Я сейчас попробовал зайти на https://freeread.org/ipfs/ в Chrome, щелкнуть правой кнопкой на тексте и перевести всю страницу на русский язык. Получилось сносно, хотя достоверно оценить не могу, глаза у меня уже замылены наглухо всеми этими инструкциями.
Почему отдельных файлов. В IPFS вполне себе хранятся каталоги и скачиваются одним хешем. Там даже википедия есть: Википедия неуязвима для цензуры в сети IPFS.
я написал все это к тому что можно было бы внедрить поддержку ipfs в ishareaza как webseed, чтобы лучше скачивалось
И обычная Shareaza сейчас может пользоваться локальным IPFS шлюзом поскольку она умеет качать по HTTP протоколу изначально. Нужно только разрешить ей соединятся с локальными адресами и чтобы в магните была ссылка на него.
Например:
magnet:?xt=urn:bitprint:EITWOGBMBSED6Y7GOO3HOQS6EJ44OBG5.KSBWSY7XXXHOAQGAT5PH7SCNDPGVM4PD6KXA42Q&xt=urn:ed2khash:bcdfef48f42711399f147a99320b7a73&dn=Shareaza_2.7.10.2_Win32.exe&xl=6851032&xs=
http://127.0.0.1:8080/ipfs/QmZ4MnjXFf1ow3hif3TyVMNayRNu7skgwQ1Zso5T2VNXY7
Другое дело что Shareaza не знает что такое CID или Multihash не считает их и не передаёт в сеть G2.
Скажите пожалуйста, а как этой библиотекой пользоваться?
Вот поставил я себе:
1. расширение в браузере для ipfs
2. поднял локально ноду.
А как книжки то почитать? Вот прям на пальцах объясните плиз!
Крупнейшая свободная электронная библиотека выходит в межпланетное пространство