Ответ 1
При загрузке что - то файл разбит на ОПЗ и хранятся в папке кэша (.ipfs).
Если вы попытаетесь просмотреть файл на другом узле сети (скажем, на главном шлюзе, ipfs.io), этот узел запрашивает файл и также кэширует его.
Если вы затем выключите своего демона, вы все равно сможете увидеть файл на шлюзе, вероятно, потому что шлюз или какой-либо другой одноранговый узел в сети по-прежнему кэширует его.
Когда одноранговый узел хочет загрузить файл, но ему не хватает памяти (он больше не может кэшироваться), самые старые используемые файлы забываются, чтобы освободить место.
... На самом деле, это более сложно, чтобы иметь более широкий охват, я указываю вам проверить:
- как работает мерзавец
- децентрализованные хеш-таблицы
- Kademlia
- Меркл деревья
- ...
Но последний должен дать вам представление о том, как механизм работает более или менее.
Теперь давайте ответим по пунктам
- да
- Все узлы, которые запрашивают ваш файл, кешируют его
- Вы теряете файл, когда уже невозможно восстановить файл из всех пиров, которые его часть кэшировали (включая себя)
- Можно получить только часть этого, представьте, что вы смотрите фильм, и вы останавливаетесь более или менее на половине... что это, вы кэшировали только половину его.
- Когда вы смотрите видео на YouTube, ваш браузер кеширует его (это означает репликацию!)... ipfs более эффективен с точки зрения трафика, скажем, вы выключаете браузер, а через 2 минуты вы хотите его посмотреть снова. Ipfs получает его из вашего кэша, YouTube заставляет вас загрузить его снова. Есть также интересный вопрос о хранении дельты (связанном с git) и о том, откуда вы его взяли (может быть внутри вашей локальной сети... это означает, что вы будете молниеносно), но я не буду углубляться в это.
- Если вы получаете данные, вы кешируете их так...
- Главный демон написан на го. Go эффективен, но не так много, как написание на C++, C, Rust... Кроме того, технология довольно молода, и со временем она улучшится. Чем больше места у вас есть, тем больше вы можете кешировать, мощность ЦП не так важна.
Если вы заинтересованы в способах хранения данных в режиме p2p, вот несколько ссылок на интересные проекты.
- https://filecoin.io/
- https://storj.io/
- https://maidsafe.net/
- https://www.ethereum.org/ и связанный с ним уровень хранения
- https://ethersphere.github.io/swarm-home/