Как стать автором
Обновить

Комментарии 40

Меня, как-то очень заинтересовал этот проект, было много идей, но смущало то, что попавшую в сеть информацию невозможно удалить, даже при всем своем большом желании. А это сильно напрягало.
Или я просто не разобрался со всем функционалом и удаление/редактирование своих файлов возможно?

IPFS это content addressed storage (cas), то есть "редактирование" в принципе невозможно. Удаление это другой вопрос, в принципе, удаление возможно, так как кэш блоков данных иногда очищается на каждом узле, но если кто-то успел за-pin-ить ваш файл, то уже невозможно.

Все, что попало в интернет остаётся там навсегда :)
Прошу прощения за глупый вопрос, но… что в этой ФС межпланетного?

Ну, например, скорость отклика центрального гейтвея gateway.ipfs.io, видимо, сервера перегружены, ощущение, что ждёшь файл с сервера на Луне или на Марсе.

Если нужного блока нет в кеше шлюза ему приходится его запрашивать в сети это даёт задержку. Так-же клиент не доверяет судя по всему даже своему кешу и перепроверяет хеш каждого блока перед передачей и чем глубже дерево блоков тем больше блоков перепроверять. Клиент плохо адаптирован к рандомному запросу частей файла. Это даёт большую нагрузку на сервера и как они справляются я не представляю.

Я хотел картиночку наверху статьи захостить на их сервисе Ipfs.pics. Тот мне показал красного рака и сказал что сервера перегружены а это было ночью.

В общем клиент ещё надо допиливать чтоб работал быстрее и качественнее.

Это всё понятно. Но пока нет возможности включить свой шлюз в список публичных и доверенных, чтобы он мог принять на себя посильную часть нагрузки. Всем нужен только https://ipfs.io, а сами они не хотят делиться нагрузкой.

Сеть строится на принципе не доверяй никому. Они просто не могут добавить чужие узлы в доверенные так как пользователь получающий данные из шлюза не имеет возможность проверить соответствие данных мультихешу.

Но никто не запрещает выставить свой шлюз наружу.

Не вышло бы ситуации, что ради надежности сильно жертвуют комфортом простых юзеров. Свой гейтвей это решение отличное от умолчания, а значит сильно не для всех.

Я думаю шлюз в интернет больше для демонстрации работы сети а не для полноценного пользования IPFS сетью. Для полноценного использования на обоих концах должен быть установлен клиент со своим локальным шлюзом. Иначе это просто бесплатный хостинг с особенностями который может быть прикрыт РКН.

Что то шлюз не работает
http://gateway.ipfs.io
Вообще хочется попробовать использовать шлюз для прикрепления контента к простенькому сайту. То есть сайт простой http на простом сервере, но подтягивает (фото, медиа, видео из IPFS) тяжелые файлы лежат в IPFS. Можно это как то сделать без шлюза? или свой шлюз на сервере как то настроить

С gateway.ipfs.io сделали перенаправление на ipfs.io для файлов в ipfs.
CF вроде позволяет быстро свой шлюз подключить но платно.
Без своего и глобального шлюза надо проверять есть ли у пользователя локальный шлюз и загружать через него.

Спасибо! Что то я запутался немного вот в этом. - Так IPFS Desktop не имеет своего встроенного шлюза?
правильно я понимаю, что IPFS-шлюз можно настроить самому если белый IP публичный есть? или даже так не настроить бзе стороннего сервиса? (а может и с серым IP даже можно?)
Вообще нужно следующий сценарий:
Есть простенький сайт на PHP типа блог-форумчик, который тянет на любом дешевом хостинге.
Нужно: на хостинге установлен сам сайт с блогом и комментариями, но весь тяжелый контент (видео, фото, аудио) он тянет из IPFS желательно не через шлюз.
Через шлюз я попробовал - работает. Но это могу делать только я сам вручную. (сам загрузил, сам сгенерировал ссылку, потом сам вставил ссылку в сайт).
Хочется как то автоматизировать это, и чтобы и пользователи могли так загружать контент и чтобы сайт сам брал не через шлюз, а прямо из IPFS напрямую.
Есть ли какой то инструмент в IPFS, который можно внедрить в сайт, чтобы он сам брал загруженные файлы (из комментариев или при добавлении контента), и сам загружал в IPFS, генерировал ссылку и вставлял её в нужное место в сайте.
Пусть даже проще - просто хотя бы есть плагин/инструмент в IPFS способный вытягивать файлы по прямым ссылкам из IPFS не через шлюз? (уж загружать в IPFS я как-нибудь научу пользователей, или сам буду вручную это делать).

Я в принципе могу забирать загруженное медиа тяжелое с сайта, через IPFS Desktop импортировать в IPFS (лежать они будут у меня закрепленные). Но вот как сделать, чтобы сервер хостинга забирал файлы из IPFS по прямой ссылке?
Может ли мой IPFS Desktop на сером IP сделать шлюзом как то для хостинга?
3. Еще более интересно - можно ли как то файлы из IPFS подключить как сетевой диск, это часто нужно некоторым web приложениям.

IPFS Desktop это графическая оболочка(а точнее браузер) над Kubo которая отображает ipfs-webui.

У Kubo в комплекте идёт шлюз который становится доступен после запуска. Но настроен он на локальный IP (127.0.0.1). Его можно перенастроить на любой IP (0.0.0.0).

Пусть даже проще - просто хотя бы есть плагин/инструмент в IPFS способный вытягивать файлы по прямым ссылкам из IPFS не через шлюз?

Есть Kubo RPC API которое позволяет в том числе и загружать файлы в IPFS.

Я грешным делом надеялся прочитать про систему хранения, построенную на базе deep space network и протоколов связи, рассчитанных на большие задержки.
Не вы один )
Ну в теории при наличии подходящего транспортного протокола эта фс может обеспечить распространение данных между человеческими колониями у разных звезд с половиной световой скорости.
Независимость от источника. Даные могут быть получены с любого узла имеющего нужные блоки.
НЛО прилетело и опубликовало эту надпись здесь
Нет с блокчейном тут мало общего. В блокчейне всё жёстко связанно хешами и подписями и нужно хранить его полностью. Здесь наоборот каждый блок не зависим и из них составляется разветвлённая структура составляющая файл или каталог. Для поиска источника блока в сети используется DHT. Подпись позволяет првязать блок к хешу публичного ключа чтоб появилась возможность публиковать изменения. В этом есть схожесть с .onion сайтами.
НЛО прилетело и опубликовало эту надпись здесь
И как это использовать?
zeronet например завершенный продукт, все очевидно и юзабельно. WebTorrent и CacheP2P интегрируются в броузер и уже работают. А это?
Или применение этой системе найдется только когда станут массовыми межпланетные перелеты? :)
Так-же как и BitTorrent. Устанавливаем клиент. Шарим нужные файлы. Передаём мультихеш или ссылку другу или публикуем в интернете. Теоритически можно сделать идекс файлов сети на каком нибудь узле и тогда будет возможен поиск.
eMule?
Я давно не заглядывал в сеть Edonkey2000 в ней самостоятельной еденицей всё-таки считается файл а не блок. Сделали ли в ней возможность публикации каталога не знаю.
Кстати в ed2k ссылке есть возможность вставить WebSeed так что IPFS может послужить дополнитеным источником и для этой сети.
И чем оно лучше торрента? Про ссылки на файлы а не абстрактный инфохеш уже упомянули, с осликом сравнив.
Реквестирую рассказ про ipns и версии файлов.
Дедупликация. Каждый уникальный блок хранится в кеше в единственном экземпляре и может быть источником для нескольких разных файлов или разных раздачь если брать аналогию с торрентами. Возможно что загрузив в сеть файл или каталог обнаружится что для некоторых блоков уже имеются дополнительные источники.

Есть уже эксперементальный загрузчик TAR файлов в сеть который делит tar на файлы. Файлы из архива при этом становятся доступны из сети отдельно но tar можно собрать по хэшу может собрать только та же утилита.

Не рекомендую эксперементировать с большими TAR файлами так как сейчас клиент их полностью грузит в память перед хешированием. В исходниках это уже исправили и я скомпилировал себе новый клиент.
Про IPNS

На сколько я себе представляю это должно выглядеть так. По мультихешу публичного ключа находится публичный ключь и мультихеш подписанный этим ключём. Далее уже используется второй мультихеш.

Версии файлов.

Если выгрузить из сети большой файл и изменить его часть то поменяют хеш те блоки в которых прошли изменения. При загрузке файл изменит корневой хеш но некорые блоки файла могут быть с тем же что и у старой версии и они могут быть источниками друг для друга.

Для редактирования каталогов нет необходимости выгружать их из сети. Клиент предоставляет необходимые инструменты.
Решается проблема вида «Загружено: 92.8%. Времени осталось: ∞. Сидов: 0.»
Если я всё правильно понял, даже если полностью файла найти не удаётся, ipfs ищет любые кусочки, ассоциированные с ним, скачивает их и собирает требуемый файл (уже как bittorrent). Что может быть очень полезно при изоляции сегмента сети.

В bittorrent оно так же решено через DHT.

BitTorrent DHT работает аналогично трекеру. Ты ему хеш он тебе источники. Была попытка создавать многофайловые торренты в которых для каждого файла был дополнительный ифохеш но проблема остаётся в том что инфохеш зависит не только от содержимого файла но и от его имени. То есть если этот же файл будет в другой раздаче под другим именем его не найти. Ну до уровня файла ещё можно придумать костыли так чтобы сеть их поддерживала а до уровня блока уже надо делать глобальное обновление протокола.

Shareaza в создаваемые ей торренты добавляет sha1, ed2k, tth хеши для каждого файла что позволяет их скачать из других сетей. Но умеет качать торрент из других p2p сетей только она и то только для однофайлового торрента.
но проблема остаётся в том что инфохеш зависит не только от содержимого файла но и от его имени.

Вот это ужасно раздражает. Например у меня все хранится как проект_-_альбом_год/проект_-_название_трека, тогда как частенько бывает альбом/название_трэка,

Кстати, кому интересна тема IPFS, могут ознакомиться с моей статьёй и проектом https://habrahabr.ru/post/310554/

Ваша статья уже есть в списке источников.

Webseed можно указать как в торрент-файле так и в магните. В магните для торрента он в параметре ws.
Пример:
magnet:?xt=urn:btih:aaaaaaa...&ws=http://127.0.0.1:8080/ipfs/[мультихеш]

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории