LINUX.ORG.RU
ФорумTalks

ipfs — кто-нибудь разбирался?

 , , ,


1

6

В продолжение ушедшей в архив темы ipfs — распределённая файловая система на идеях Git и BitTorrent

Пощупал тут, ipfs стала с виду вполне рабочей, автоматической, быстрой.

Но я не соображу, в ней реально делать зеркалирование? Чтобы файл с заданным идентификатором можно было находить в сети гарантированно через какое-то время даже после отрубания машины, с которой он был выложен?

Вот, например, прицепился я к сети. Выложил фотку http://gateway.ipfs.io/ipfs/QmTUeRKutKfbTRmoXsgRTv4r9zKJyFVrX3NVLQctRmoa1v , ушёл из сети. Фотка сейчас доступна с чужого гейта. Но, я полагаю, живёт она там в кеше только какое-то время. А меня интересует именно долгосрочное хранение файловых архивов, чтобы до них по фиксированным идентификаторм можно было достучаться и со временем.

Это реализуемо?

★★★★★

Последнее исправление: KRoN73 (всего исправлений: 1)

А меня интересует именно долгосрочное хранение файловых архивов, чтобы до них по фиксированным идентификаторм можно было достучаться и со временем. Это реализуемо?

Дисковое пространство — ограниченный ресурс, так что здесь нужно что-то наподобие биткоина. Я слышал про storj, но, возможно, есть и другие.

quantum-troll ★★★★★
()
Последнее исправление: quantum-troll (всего исправлений: 1)

Но я не соображу, в ней реально делать зеркалирование? Чтобы файл с заданным идентификатором можно было находить в сети гарантированно через какое-то время даже после отрубания машины, с которой он был выложен?

ну какбе в оригинальной теме ipfs — распределённая файловая система на идеях Git и BitTorrent (комментарий)

для зерколированиея есть Freenet и FileCoin который позволяет за биткойны хранить в ipfs

novoxudonoser
()
Ответ на: комментарий от quantum-troll

Дисковое пространство — ограниченный ресурс, так что здесь нужно что-то наподобие биткоина

Это отдельная история и тоже полезная. Но в моём случае — не обязательная :) Я всё о своей работе с распределёнными форумами/блогами/wiki. Нужно где-то отказоустойчиво, бесплатно и легко переносимо между энтузиастами хранить сотни гигов файлов. Сабж кажется интересным в этом смысле.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

В чем сильное отличие от Tahoe с точки зрения юзера?

Я ни с сабжем (потому и спрашиваю), ни с Tahoe плотно не работал, так что точно не скажу. Навскидку — в сабже глобальная сеть без принудительной регистрации участников. Как в торрентах. Tahoe требует ручного связывания нод.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от novoxudonoser

ну какбе в оригинальной теме
«IPFS - это сеть в первую очередь для предоставления доступа к данным (как в BitTorrent), а не для их хранения»

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

для зерколированиея есть Freenet и FileCoin который позволяет за биткойны хранить в ipfs

FreeNet требует прикладного софта (мне нужно, чтобы простой пользователь всё мог делать через браузер) и крайне тормозной. FileCoin ещё не готов.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

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

Syncthing используй тогда.

quantum-troll ★★★★★
()
Ответ на: комментарий от quantum-troll

Syncthing используй тогда

1. Он не обеспечивает гейтование из Web'а и, вообще, отдачу файлов по адресам, только закачивание/синхронизацию
2. Он требует отдельного клиента
3. Он не позволяет (в отличие от BTSync) раздавать произвольным участникам. Только тем, кого подключат в сеть

А так — активно его использую с тех пор, как BTSync скопытился. Плачу, колюсь, но ем кактус :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Тут явно что-то лишнее

IPFS заявляется как платформа. В первую очередь — протокол. Делают сразу две реализации, на Go и NodeJS. Нужна скорость — Go (да и просто ставить удобно, одной командой go get -u github.com/ipfs/go-ipfs/cmd/ipfs — и готово, бинарник собран и готов к работе, в этом плане архитектура Go мне очень импонирует). Нужен расширенный функционал (всякие блоги и т.п.) — то оно сразу на NodeJS может работать.

Подход грамотный, только энтузиастов маловато, ИМХО.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

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

тогда вам и торрента хватит, но судя по описанию IPFS тоже подойдёт

novoxudonoser
()
Ответ на: комментарий от KRoN73

FreeNet требует прикладного софта (мне нужно, чтобы простой пользователь всё мог делать через браузер) и крайне тормозной. FileCoin ещё не готов.

ну так с IPFS тоже прикладной софт нужен, хотя на гитхабе написано что они будут через в том числе

files accessible via HTTP at http://ipfs.io/<path>

novoxudonoser
()
Ответ на: комментарий от novoxudonoser

тогда вам и торрента хватит

Не годится. Нельзя просто взять и открыть доступ к только что залитому файлу. Только через создание/раздачу torrent-файла. Это же убивает возможность динамического обновления.

но судя по описанию IPFS тоже подойдёт

Только я пока так и не понял, как сохранять ID файла при сменах машин с хранилищем. В торрентах, как раз, всё понятно. Есть сидеры — есть доступ. А тут — непонятно.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от novoxudonoser

ну так с IPFS тоже прикладной софт нужен

Гейты для пользователя совсем прозрачны.
http://gateway.ipfs.io/ipfs/QmTUeRKutKfbTRmoXsgRTv4r9zKJyFVrX3NVLQctRmoa1v
И это даже не мой гейт, и сервер мой может быть уже недоступен. То, что для простого юзера и нужно.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Нужна скорость — Go (да и просто ставить удобно, одной командой go get -u github.com/ipfs/go-ipfs/cmd/ipfs — и готово

Такое ощущение, что каждый современный язык программирования начинает свой путь с того, что изобретает гребаный пакетный менеджер с преферансом и поэтессами. pip, luarocks, cpan, ruby gems и еще много много всякого треша, который за собой тянет как минимум gcc на таргет машину, чтобы собрать бинарники.

При этом при обновлении самой системы через пакетный менеджер все это доморощенное хозяйство, которое в лучшем случае ставится в изолированное окружение или в ~, а в худшем в /usr/local или вообще в /usr традиционно отваливается.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

При этом при обновлении самой системы ...

В случае Go не отвалится, если ставится в локальную инфраструктуру (по дефолту). Как и в случае того же Composer на PHP. Про pip ничего не скажу, ставится обычно глобально, но у меня, вроде, не отваливалось. С gem — там да, часто при штатном обновлении всё разваливается, особенно на Redmine. cpan уже мёртв, как и PEAR. luarocks не видел...

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от novoxudonoser

Вот меня тоже заинтересовало. Смущает только непонятный статус с сидерами. Как кооперироваться с народом, чтобы одни и те же файлы были гарантированно доступны с разных машин под одними ID.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Да пофиг куда ставится, если там в составе бинарные модули, изменившийся ABI гарантирует развал или феерические баги. Опять же, тянуть тулы для разработчика (даже один только build-essential) на продакшн систему - это не очень секурно (кул-хакиру проще будет собрать эксплоит для повышения привилегий)

Параноики в плане секьюрити кладут частенько узлы в DMZ, и разрешают им доступ в интернет только тогда, когда лезут обновлять на них ПО.

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

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от quantum-troll

ipfs + syncthing тогда.

Вопрос синхронизации не стоит, хоть rsync, хоть rar-архивы на дискетах. Просто у другого самостоятельно расшарившего файлы и ключи будут другие. Насколько я понимаю. Хотя надо проверить, вдруг там хеш контента?

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Мне почему-то видится использование системного пакетного менеджера - единственным адекватным подходом

Абсолютно нерешаемая задача. Даже в Gentoo не смогли адекватно обеспечить поддержку PEAR и CPAN. А в других дистрах и того хуже. Не говоря уже про другие платформы.

Никакой пакетный менеджер не способен обеспечить потребный уровень гибкости и мультиплатфоренности.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Ну, питон слишком крут, чтобы его не использовать не только в линуксах.

Shadow ★★★★★
()
Ответ на: комментарий от KRoN73

Абсолютно нерешаемая задача. Даже в Gentoo не смогли адекватно обеспечить поддержку PEAR и CPAN. А в других дистрах и того хуже. Не говоря уже про другие платформы.

Тогда это скорее проблема PEAR и CPAN. В deb вменяемо перепаковвывают из cpan, насколько мне известно, но это лишний гемор мейнтейнерам, у которых и так по три тома заклинаний на баше на все случаи жизни.

Никакой пакетный менеджер не способен обеспечить потребный уровень гибкости и мультиплатфоренности.

Спорный вопрос, даже более того скажу - холиварный.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)

Отлично! Расшарил топикстартовую белку с другой ноды и под другим именем — ID получился такой же.

Теперь надо подумать, как удобнее расшаривать сразу большие каталоги с архивами.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Тогда это скорее проблема PEAR и CPAN

Ну, вот, смотри. В Golang git-зависимости можно указывать прямо в сорцах. И этим в первую очередь пользутся. Что, guthub будет решать проблемы пакетных менеджеров? Пакетные менеджеры должны уметь парсить golang исходники?

А как быть с тем же Composer, у которого уйма зависимостей, которые могут быть условными. И репозитории пакетов где могут быть как удалёнными, так и локальными в зависимости от настроек конкретного приожения.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от novoxudonoser

мне вот интересно как они гейт сделали, просто банально раздают через свой сервер, или web-rtc

Походу, прямая закачка по ссылке — это чистый http, браузер же иначе и не может. Вот когда на странице через JS грузить — может, там WEB-RTC и можно в теории задействовать. Но не нашёл упоминаний о такой возможности сейчас. Хотя было бы круто.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

В генте есть g-sorcery - фреймворк для генераторов оверлеев из таких вот реп и две готовые реализации для elpa и pypi

deadNightTiger ★★★★★
()
21 октября 2015 г.

Тут вот такая штука появилась http://ipfs.pics/, похоже проект шевелится.

ІМХО без своей валюты не взлетит, в Storj и Sia уже крутится определенное количество денег, а это и разработчики и маркетинг.

GoNaX ★★★
()
Ответ на: комментарий от GoNaX

без своей валюты не взлетит, в Storj и Sia уже крутится определенное количество денег

Это разные сущность. Storj и Sia — распределённое хранилище. IPFS — протокол распределённого обмена. Т.е. в принципе, ничто не мешает со временем реализовать раздачу данных той же Sia через IPFS.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от GoNaX

Ну, да. Можно сказать, что и у HTTP с HDD цель одна, просто зашли с разных сторон :)

KRoN73 ★★★★★
() автор топика

А не поделитесь докой, что мне после установки ipfs надо сделать, что бы раздавать дисковое пространство с моего сервера?

tierpunk
()
Ответ на: комментарий от tierpunk

В IPFS не раздаётся пространство в лоб. Можно сделать add для указанного файла и получить его хеш. Этот хеш можно отсылать другим для получения файла по кешу или добавлять к http-адресам гейтов, через которые файл будет отдаваться в браузер традиционно.

Тут другая проблема. Нельзя взять и расшарить каталог с файлами прямо в обычной ФС. Только затягиванием в свою базу данных. Из-за этого только и не применяю сейчас в реальных проектах. Одно дело «расшарить» сотню гигабайт файлов. Другое дело — продублировать их в параллельной системе.

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.