Где IPFS хранит все данные?

Я пытаюсь реализовать и понять работу IPFS и сделать несколько непонятных вещей.

Вещи, которые я пробовал:
Реализован IPFS в моей системе и сохраненные файлы на нем. Даже если я удалю файлы из своей системы и закрою демона ipfs, я все равно могу получить доступ к файлам с другого компьютера через IPFS.
Я заметил там папку .ipfs в моем домашнем каталоге, которая содержит часть блоков данных, которые я добавляю в IPFS.

Вопросы:
1. Являются ли блоки, хранящиеся локально в моей системе?
2. Где еще хранятся данные? На других пэрах, с которыми я связан? Потому что я все еще могу получить доступ к файлу, если я закрою своего демона ipfs.
3. Если это верно, и данные хранятся в нескольких местах, возможность потерять мои данные по-прежнему существует, если все сверстники отключены от сети?
4. Каждый ли сайт в сети хранит весь файл или только часть файла?
5. Если копия данных распределяется по сети p2p, это означает, что данные дублируются несколько раз? Как это эффективно с точки зрения хранения?
6. Мы храним данные, загруженные другими сверстниками?
7. Минимальные системные требования для запуска IPFS? Нам просто нужно обильное хранилище, не обязательно мощная система?

Спасибо, Advance!

Ответ 1

При загрузке что - то файл разбит на ОПЗ и хранятся в папке кэша (.ipfs).

Если вы попытаетесь просмотреть файл на другом узле сети (скажем, на главном шлюзе, ipfs.io), этот узел запрашивает файл и также кэширует его.

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

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

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

  • как работает мерзавец
  • децентрализованные хеш-таблицы
  • Kademlia
  • Меркл деревья
  • ...

Но последний должен дать вам представление о том, как механизм работает более или менее.

Теперь давайте ответим по пунктам

  1. да
  2. Все узлы, которые запрашивают ваш файл, кешируют его
  3. Вы теряете файл, когда уже невозможно восстановить файл из всех пиров, которые его часть кэшировали (включая себя)
  4. Можно получить только часть этого, представьте, что вы смотрите фильм, и вы останавливаетесь более или менее на половине... что это, вы кэшировали только половину его.
  5. Когда вы смотрите видео на YouTube, ваш браузер кеширует его (это означает репликацию!)... ipfs более эффективен с точки зрения трафика, скажем, вы выключаете браузер, а через 2 минуты вы хотите его посмотреть снова. Ipfs получает его из вашего кэша, YouTube заставляет вас загрузить его снова. Есть также интересный вопрос о хранении дельты (связанном с git) и о том, откуда вы его взяли (может быть внутри вашей локальной сети... это означает, что вы будете молниеносно), но я не буду углубляться в это.
  6. Если вы получаете данные, вы кешируете их так...
  7. Главный демон написан на го. Go эффективен, но не так много, как написание на C++, C, Rust... Кроме того, технология довольно молода, и со временем она улучшится. Чем больше места у вас есть, тем больше вы можете кешировать, мощность ЦП не так важна.

Если вы заинтересованы в способах хранения данных в режиме p2p, вот несколько ссылок на интересные проекты.