LINUX.ORG.RU

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

 , , ,


2

7

Идёт разработка распределённой файловой системы, опирающейся на уже проверенные технологии: BitTorrent, Git, Kademlia, также добавляя недостающую свою: «BitSwap».

Автор замахивается на «новую основу для веба», на основе продвинутых технологий, появившихся уже после HTTP.

IPFS состоит из следующих уровней:

  • Уровень имён — там, где пользователи могут выбирать глобальные имена. Описывается привязка к DNS при помощи записей TXT.
  • Уровень файлов — файловая система с изменяемыми файлами и снимками, как в Git. Большие файлы должны поддерживаться.
  • Уровень объектов — неизменяемые объекты, которые могут или храниться в распределённой хеш-таблице (если маленькие), или скачиваться как в торрентах.
  • Уровень обмена данными — здесь работает новый протокол BitSwap. Управляет справедливым распределением ресурсов.
  • Уровень маршрутизации — как узлам добираться друг до друга, в том числе в отсутствие прямой видимости.
  • Сетевой уровень — по каким протоколам узлам связываться между собой.
  • Уровень подлинности узлов (identity) — чтобы нельзя было «штамповать» слишком много узлов (или узлы с заданным номером), нарушая целостность сети.

На GitHub'е есть сразу две пока что неполные реализации: на NodeJS и на Go. Разработка архитектуры ведётся в отдельном репозитории.

>>> Подробности



Проверено: fallout4all ()

А на ЯП реализации будут?

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

Мне не нужна пока. Ну или не настолько нужна, чтобы тратить на это время.

mittorn ★★★★★ ()

А почему не на основе Freenet? Там все эти уровни уже реализованы, за исключением уровней файлов и имён. Собственно, размышления на тему о том, что неплохо было бы сделать на основе фринета файловую систему, давно уже были, только никто не взялся.

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

IPFS - это сеть в первую очередь для предоставления доступа к данным (как в BitTorrent), а не для их хранения. Ты не «закачиваешь» туда данные, как во Freenet.

Для хранения данных они также разрабатывают FileCoin - смесь Bitcoin и Freenet - зарабатываешь виртуальные монетки путём хранения чужих backup'ов - тратишь их, чтобы сеть хранила твои backup'ы (или размениваешь на что-нибудь).

Может быть, аналог FileCoin/Freenet может быть «поднят» поверх IPFS, где IPFS будет отвечать за распространение и сетевую доступность, а «верхний уровень» - за политику того, кто и сколько должен хранить какие данные.

В IPFS все данные хранятся в чьём-то кеше, где их можно прикрепить (pinning). Схемы хранения данных на основе IPFS можно реализовывать, управляя прикреплением в соответствии с какой-либо политикой.

vi0 ()

джва года этого ждал, ну наконец-то кто-то запилил.

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

Про «запилил» пока рано говорить. Сейчас оно вообще сеть не умеет пока.

ipfs - global versioned p2p merkledag file system

Basic commands:

    add <path>    Add an object to ipfs.
    cat <ref>     Show ipfs object data.
    ls <ref>      List links from an object.
    refs <ref>    List link hashes from an object.

Tool commands:

    config        Manage configuration.
    version       Show ipfs version information.
    commands      List all available commands.

Advanced Commands:

    mount         Mount an ipfs read-only mountpoint.
vi0 ()

Ждём появления Храма Дайвера в Глубине. =)

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

Для хранения данных они также разрабатывают FileCoin - смесь Bitcoin и Freenet - зарабатываешь виртуальные монетки путём хранения чужих backup'ов - тратишь их, чтобы сеть хранила твои backup'ы (или размениваешь на что-нибудь).

Крутая вещь, давно такое хочу. А оно будет PoW или PoS?

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

Ждём появления Храма Дайвера в Глубине. =)

Это скорее сеть Tahoe-LAFS внутри I2P.

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

Как раз хотел спросить чем она от Tahoe-LAFS отличается.

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

Проблема Tahoe-LAFS в том, что она никак не монетизирует такой ограниченный ресурс, как дисковое пространство. Filecoin исправит эту проблему, тем самым, возможно, сделав P2P-файлохранилища популярными.

quantum-troll ★★★★★ ()

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

ncrmnt ★★★★★ ()

ФС, которая предназначена для работы по сети без поддержки сети на недоязыках программирования.
Тут не надо форкать или переписывать - закапывать и писать снова.

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

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

А че, до сих пор нет ни одной распределенной ФС? (не на фринете, а вообще)

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

Проблема freenet в том, что он нифига не ФС и файло сгинет само и неизвестно когда.

Давно нужна распределенная пользовательская ФС. «Интернет файлов» нужен. У большей части известных мне пользователей места на дисках свободно по пол терабайта и все простаивает без дела. Поставил софтинку в фон что бы рулила хранимым так что бы юзер не видел проблем и вот, наступит счастье.

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

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

Основная проблема: после любого изменения в торренте, его надо перегенерировать. Следовательно нужны костыли: lighthttpd (чтобы раздавать эти торрент файлы), torrent-tracker, поддержка stun-серверов/dyndns, rss-клиент чтобы мониторить изменения списка torrent-файлов (магнет-ссылок). Ммм, вроде бы все. Идея, как и реализация давно продумана разными людьми, я больше чем уверен. Только никто не брался делать такого франкинштейна, ибо это не тру.

Тут столько много открытых вопросов с безопасностью...что если на них не дать четкого ответа сразу, нормальные люди, просто не станут это тестировать (читай качать бинарники).

gh0stwizard ★★★★★ ()

Что народ только не наделает, лишь бы полочку хорошую не покупать.

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

Для хранения данных они также разрабатывают FileCoin

Тупиковая затея, инфляция приведет к коллапсу сети. Койны должны «протухать» со временем, как freigeld например. Лучше обойтись без них вообще. Давать емкость сети в пропорции 1/10, ну и придумать как учитывать стабильность раздачи. Захотел положить в сеть 1G, должен вначале принять на хранение 10G. У меня была идея, собственно я сейчас над ней иногда работаю, создать сеть хранения файла. Одного, но безумно большого. Каждая нода - кэш этого файла, ни одна нода не может сохранить его целиком. Ну и дальше на что фантазии хватит.

A-234 ★★★★★ ()

Ура товарисщи, осталось только пожелать чтобы сил хватило сделать реализацию рабочую или чтобы присоединилось достаточное количество народу чтобы сделать)

ixrws ★★ ()

Если аффторы продукта $X считают криптографические идентификаторы «идеей Git», то они школота и зафейлятся неминуемо.

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

Это не авторы ipfs, а переводчик и автор заметки на лоре. В оригинале явно написано: «IPFS uses ... cryptographic-hash content addressing». И git ими упомянут для IT-хомячков, «что бы понятно было». Хотя, все же, выбр Go и Node.js намекает на хипстерство авторов.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от i3draven

Давно нужна распределенная пользовательская ФС. «Интернет файлов» нужен. У большей части известных мне пользователей места на дисках свободно по пол терабайта и все простаивает без дела. Поставил софтинку в фон что бы рулила хранимым так что бы юзер не видел проблем и вот, наступит счастье.

А че, такого еще нету о_О?

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

Основная проблема: после любого изменения в торренте, его надо перегенерировать. Следовательно нужны костыли: lighthttpd (чтобы раздавать эти торрент файлы), torrent-tracker, поддержка stun-серверов/dyndns, rss-клиент чтобы мониторить изменения списка torrent-файлов (магнет-ссылок). Ммм, вроде бы все. Идея, как и реализация давно продумана разными людьми, я больше чем уверен. Только никто не брался делать такого франкинштейна, ибо это не тру.

Согласен, бред какой-то. (Это сабж так же устроен?оО)

Ну дак а что мешает сделать распределенную ФС нормальную?

pihter ★★ ()
Ответ на: комментарий от A-234

Захотел положить в сеть 1G, должен вначале принять на хранение 10G.

И зачем оно такое тогда может понадобиться?

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

Ещё оно (Tahoe-LAFS) плохо работает, когда сеть ненадёжна. Когда я об этом сообщал, оказалось, что всё это известно и уже год как лежит в Trac'е (но не в коде). Tahoe-LAFS тоже не на 100% реализован.

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

Распределенное хранение, ваш 1G ведь тоже в 10 экземплярах хранится.

A-234 ★★★★★ ()
Ответ на: комментарий от gh0stwizard

Торрентов как таковых, в виде файлов *.torrent там нет. BitTorrent (в ихней вариации «BitSwap») используется как транспортный уровень - для распределения информации от имеющих её к желающим, с учётом приоритетов и т.д. Эта информация - это ещё не сами файлы, а «объекты» (типа как git'овские blob, tree, commit), на основе которых работает файловая система.

vi0 ()
Ответ на: комментарий от A-234

Для хранения данных они также разрабатывают FileCoin

Тупиковая затея, инфляция приведет к коллапсу сети.

Возможно. Но если мои «койны» «протухнут», то и загруженные мной данные могут «протухнуть». Уравнивать 1 к 10 нужно не тупо объём, а скорее объём умноженный на дни хранения. В FileCoin так вроде и получается. При создании нового «койна» узел проверяет, по-честному ли N случайных кусков данных всё ещё хранятся на других узлах. Не подвёл - получаешь денежку.

А в простой схеме 10 к 1, возможно, трудно проверить на «честность». Также не совсем понятно что делать, если узел упал (а загруженная в сеть резервная копия как раз тогда и становится актуальной).

vi0 ()

Уже все наигрались с удаленными хранилищами у хостеров. Сейчас все играются с глобальными облаками. И наконец придут к единственно верному решению - лично разворачиваемые (приватные) отказоустойчивые хранилища на своем железе. Вот объединить пару домашних компов, сервачок на чердаке и рабочий комп и ноут в хранилище это дело. А глобальное распределение хранения - это блаж, опция.

У каждого человека (семьи или компании) должно быть свое вычислительное и storage пространства; распределенное, глобально доступное, но на подконтрольном железе. А вот уже на базе таких приватных хранилищ нужно делать глобальную сеть общедоступных данных: фильмы, музыка, книги.

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

Из доки фейл уже в том, что используется DHT. И альтернатив никаких.

Время покажет. Может придумают что-то лучшее :)

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

Там используется не только DHT. DHT только для маленьких данных.

  • В чём «фейл» DHT?
  • На чём ещё основывать peer-to-peer сети?
vi0 ()
Ответ на: комментарий от Deleted

И наконец придут к единственно верному решению - лично разворачиваемые (приватные) отказоустойчивые хранилища на своем железе

Своё железо (достаточной мощности) есть у довольно малой доли современных пользователей и это число сокращается. Много тебе даст «облако» на ноуте со 100Мб SSD или на планшете с 32Мб

А вот уже на базе таких приватных хранилищ нужно делать глобальную сеть общедоступных данных: фильмы, музыка, книги.

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

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

Своё железо (достаточной мощности) есть у довольно малой доли современных пользователей Много тебе даст «облако» на ноуте со 100Мб SSD или на планшете с 32Мб

Есть такое дело. Но надо ломать эту тенденцию. Наоборот, нужно иметь возможность таки использовать мощности, если они есть. И если сделать такую возможность доступной, будет положительная обратная связь.

Иначе - все скатится в сраное дерьмо.

Оптимистичный сценарий: появятся решения в виде 10TB красивой коробочки домой на антресоли, наряду с телеком и посудомойкой, как необходимый предмет в семье для функционирования множества e-часов, фотиков, смартов, планшетов и видеовизоров. Просто потому, что «это будет требоваться», как, например, зарядка или SD-карточка.

Пессимистичный сценарий: после централизации порогового количества информации, люди потеряют доступ к существующей информации (книгам, фильмам, фоткам) - и ограничится генерация значимой информации - из-за ограничений и давления хостеров, государств и коммерческих компаний.

Но тут на пути прогресса встают правообладатели.

Мы же платим 1% Михалкову, они еще не подавились? :(

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

Оптимистичный сценарий: появятся решения в виде 10TB красивой коробочки домой на антресоли

Это _очень_ оптимистичный сценарий :)

Мы же платим 1% Михалкову, они еще не подавились? :(

Ориентируйся на то, что они хотят получить вообще ВСЁ. Это пандемия такая.

KRoN73 ★★★★★ ()

И это - в мини новость? Тянет на революцию.

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

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

quantum-troll ★★★★★ ()

реализации: на NodeJS и на Go

reprimand: на недоязыках программирования
mittorn: А на ЯП реализации будут?

Думаю будет не лишним напомнить, что первая реализация BitTorrent была написана на Python'е

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

это они сейчас «надежны и доступны», а в перспективе - закрываются, запрещаются, блокируются. как только будет ясно, что значимая части всемирных данных держат в облаках 3-5 корпораций - сразу все заблочат и запретят под любым предлогом.

единственный выход: уже сейчас отказываться от больших облаков и строить частные хранилища и ресурсы (почта, вики и тп)

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

И это - в мини новость? Тянет на революцию.

Если бы оно было уже реализовано и запущено, была бы нормальная новость. Тут работа ближе к старту, чем к финишу.

vi0 ()

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

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

Но i2p до сих пор на яве и из-за этого я его не могу использовать на планшете и роутере. И не потому, что явы там нет (она как раз есть), а потому, что это большой оверхед и я кое-где вижу жалобы на OOM.

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