Перейти к содержанию

IPFS: различия между версиями

Материал из Malw.lol Wiki
UnWikipedian (обсуждение | вклад)
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
IPFS — распределённая, нецензурная файловая система с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные шлюзы<ref>[https://ipfs.github.io/public-gateway-checker/ Чекер доступности шлюзов]</ref>, полное название — InterPlanetary File System. Представляет собой что-то среднее между торрентом и облаком, а точнее является децентрализованным облаком, информация в котором распределена между узлами, а не между серверами. Из-за своих преимуществ популярна среди разработчиков обходов блокировок.
'''IPFS (InterPlanetary File System)''' — распределённая файловая система без цензуры с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные шлюзы<ref>[https://ipfs.github.io/public-gateway-checker/ Чекер доступности шлюзов]</ref> . Представляет собой что-то среднее между торрентом и облаком, а точнее является децентрализованным облаком, информация в котором распределена между узлами, а не между серверами.


== Ключевые особенности ==
= Ключевые особенности =
Облака — Мега драйв, Гугл драйв и все прочие подвержены цензуре сверху, любая информация может быть удалена по запросу властей и владельцев компании, также она может быть потеряна, если случится краш серверов или остановка сервиса (как например в rghost, если кто помнит). В противоположность этому, вся информация, выложенная на IPFS, '''остаётся там навсегда''', рециркулируя по узлам сети<ref>[https://discuss.ipfs.tech/t/can-i-delete-my-content-from-the-network/301 Пояснение про постоянство информации от одного из специалистов]</ref>.
Облака — MEGA, Google Диск и все прочие подвержены цензуре, любая информация может быть удалена. Она также может быть потеряна, если случится поломка серверов или остановка сервиса. В противоположность этому, вся информация, выложенная на IPFS, '''остаётся там навсегда''', рециркулируя по узлам сети<ref>[https://discuss.ipfs.tech/t/can-i-delete-my-content-from-the-network/301 Пояснение про постоянство информации от одного из специалистов]</ref>.


Однако тот, кто выложил информацию на IPFS, может понести ответственность по законам собственной страны: файлы, хотя и обезличенные, сами по себе никак не шифруются. Поэтому, хотя и есть техническая возможность, хранить на ipfs запрещёнку в незащищённом виде крайне не рекомендуется, как и в обычных облаках здесь, скажу вам по секрету, помогут только запароленные архивы. И уж тем более не стоит хранить на IPFS список всех паролей.
Однако тот, кто выложил информацию на IPFS, может понести ответственность: файлы, хотя и обезличенные, сами по себе никак не шифруются. Поэтому, хотя и есть техническая возможность, хранить на IPFS запрещённую информацию крайне не рекомендуется, как и в обычных облаках. И уж тем более не стоит хранить на IPFS список паролей.


Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud и [[Антизапрет]]ом, одним из популярных средств обхода блокировок на IPFS. После этого Антизапрет сменил шлюз на тот, что предоставляют непосредственно разработчики IPFS — ipfs.io, и это решило проблему. Тем не менее, с точки зрения сохранности загруженных данных, более надёжного хранилища не существует, что способно помочь во многих ситуациях.
Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud. С точки зрения сохранности загруженных данных, более надёжного хранилища не существует, что способно помочь во многих ситуациях.


Некоторые проекты, такие как [[Tor Portable]], вынужденно мигрировали на IPFS из-за обилия необоснованной цензуры на других площадках: Гитхаб, хотя и имеет очень хорошее облачное хранилище с огромным количеством полезного софта, злоупотребляет использованием ботомодерации, часто совершающей ошибки. Это помимо того, что у Гитхаба есть чётко определённая тематика — свадебные фото и порно на него не выкладывают.
Другая интересная особенность IPFS: он предоставляет прямые ссылки на скачивания файлов, в отличие от популярных облачных сервисов. Это делает IPFS популярным среди разработчиков, ведь он позволяет читать файлы программам, что широко используется в браузерных расширениях.


Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации [[ZeroOmega]] в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях.
Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится. Это обеспечивает постоянство всей информации, которая содержится в базе данных.


Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится; вот пример такого файла<ref>[https://ipfs.io/ipfs/bafybeiejkem2yl6qbdfl5oeypcm3p4z2nvvqrbzwjtcf622f3x3zygagoa/ Пример файла в IPFS]</ref>. Это обеспечивает постоянство всей информации, которая содержится в базе данных.
[https://ipfs.io/ipfs/bafybeiejkem2yl6qbdfl5oeypcm3p4z2nvvqrbzwjtcf622f3x3zygagoa/ Пример ссылки на файл в IPFS]


Для изменения файлов используется не менее сложная система — IPNS (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (что иронично: ведь суть IPFS это хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (тот, впрочем, может длиться достаточно долго, например 30 лет).
Для изменения файлов используется не менее сложная система — '''IPNS''' (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (может длиться достаточно долго, например 30 лет).


Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo<ref>[https://github.com/ipfs/kubo Программа kubo]</ref> (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент<ref>[https://github.com/ipfs/ipfs-desktop Графический клиент IPFS]</ref>, способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности.
Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы [https://github.com/ipfs/kubo kubo] (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и [https://github.com/ipfs/ipfs-desktop графический клиент], способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности.
 
== Пример использования ==


= Пример использования =
# Пройдите регистрацию на сайте https://web3.storage/. Бесплатный лимит в нём — 5 гигабайт, но стоит помнить, что это всего лишь консоль, предоставляющая быстрый доступ.
# Пройдите регистрацию на сайте https://web3.storage/. Бесплатный лимит в нём — 5 гигабайт, но стоит помнить, что это всего лишь консоль, предоставляющая быстрый доступ.
# Через https://console.web3.storage/ загрузите файл и получите его CID (bafy...). Если вам нужно загрузить несколько файлов, выбирайте загрузку директории (среди вариантов File, Directory, CAR выбираете второй). Файл будет доступен по ссылке вида https://ipfs.io/ipfs/ВашCID/НазваниеФайла, директория — то же самое, но без названия файла в конце.
# Через https://console.web3.storage/ загрузите файл и получите его CID (bafy...). Если вам нужно загрузить несколько файлов, выбирайте загрузку директории (среди вариантов File, Directory, CAR выбираете второй). Файл будет доступен по ссылке вида <code><nowiki>https://ipfs.io/ipfs/ВашCID/НазваниеФайла</nowiki></code>, директория — то же самое, но без названия файла в конце.
# Для создания IPNS ссылки используйте IPNS Record Inspector & Creator<ref>[https://ipns.ipfs.network IPNS Record Inspector & Creator]</ref> и выберите create record. Сайт на момент написания статьи является очень свежей разработкой (начало 2025 года), его создатели<ref>[https://github.com/ipshipyard/ipns-inspector Создатели IPNS Inspector]</ref> замечательные люди. Сгенерируйте private key, обязательно сохраните его и никому не показывайте — он будет использоваться для обновления IPNS ссылки, являясь вашим паролем от неё. После его создания одновременно будет подобран публичный IPNS Name.
# Для создания IPNS ссылки используйте [https://ipns.ipfs.network/ IPNS Record Inspector & Creator] и выберите create record. Сайт на момент написания статьи является очень свежей разработкой (начало 2025 года), его [https://github.com/ipshipyard/ipns-inspector создатели] замечательные люди. Сгенерируйте private key, обязательно сохраните его и никому не показывайте — он будет использоваться для обновления IPNS ссылки, являясь вашим паролем от неё. После его создания одновременно будет подобран публичный IPNS Name.
# В значении Value добавьте CID от нужного IPFS файла, а значение Validity, обозначающее срок действия IPNS ссылки, я предпочитаю завышать — сам сайт предлагает выдать ему срок, равный максимум одному году в миллисекундах, но если вы вставите туда 946684800000, то это будет ровно 30 лет с учётом високосных годов.
# В значении Value добавьте CID от нужного IPFS файла, а значение Validity, обозначающее срок действия IPNS ссылки, лучше завышать — сам сайт предлагает выдать ему срок, равный максимум одному году в миллисекундах, но если вы вставите туда 946684800000, то это будет ровно 30 лет.
# В inspect record вставьте созданный вами ранее IPNS Name, составляющий тело вашей ссылки; он должен выдать вам корректные данные о ссылке, создали ли вы её или обновили. IPNS ссылка будет иметь вид https://ipfs.io/ipns/ВашIPNSname/НазваниеФайла и способна перенаправлять на различные файлы внутри IPFS, не давая данным устаревать: вы можете сменить CID, а IPNS ссылка останется той же самой.
# В inspect record вставьте созданный вами ранее IPNS Name, составляющий тело вашей ссылки; он должен выдать вам корректные данные о ссылке, создали ли вы её или обновили. IPNS ссылка будет иметь вид <code><nowiki>https://ipfs.io/ipns/ВашIPNSname/НазваниеФайла</nowiki></code> и способна перенаправлять на различные файлы внутри IPFS, не давая данным устаревать: вы можете сменить CID, а IPNS ссылка останется той же самой.
# Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились.
# Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились.


Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется обширная документация<ref>[https://docs.ipfs.tech Документация IPFS]</ref>. Самое сложное, что можно делать внутри IPFS по моему мнению — хостить целые сайты<ref>[https://ipfs.io/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze Зеркало Википедии внутри IPFS]</ref>. Удачи.
Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется [https://docs.ipfs.tech/ обширная документация]. Самое сложное, что можно делать внутри IPFS — хостить целые сайты<ref>[https://ipfs.io/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze Зеркало Википедии внутри IPFS]</ref>.


== Примечания ==
== Примечания ==

Версия от 23:26, 19 апреля 2025

IPFS (InterPlanetary File System) — распределённая файловая система без цензуры с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные шлюзы[1] . Представляет собой что-то среднее между торрентом и облаком, а точнее является децентрализованным облаком, информация в котором распределена между узлами, а не между серверами.

Ключевые особенности

Облака — MEGA, Google Диск и все прочие подвержены цензуре, любая информация может быть удалена. Она также может быть потеряна, если случится поломка серверов или остановка сервиса. В противоположность этому, вся информация, выложенная на IPFS, остаётся там навсегда, рециркулируя по узлам сети[2].

Однако тот, кто выложил информацию на IPFS, может понести ответственность: файлы, хотя и обезличенные, сами по себе никак не шифруются. Поэтому, хотя и есть техническая возможность, хранить на IPFS запрещённую информацию крайне не рекомендуется, как и в обычных облаках. И уж тем более не стоит хранить на IPFS список паролей.

Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud. С точки зрения сохранности загруженных данных, более надёжного хранилища не существует, что способно помочь во многих ситуациях.

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

Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится. Это обеспечивает постоянство всей информации, которая содержится в базе данных.

Пример ссылки на файл в IPFS

Для изменения файлов используется не менее сложная система — IPNS (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (может длиться достаточно долго, например 30 лет).

Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент, способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности.

Пример использования

  1. Пройдите регистрацию на сайте https://web3.storage/. Бесплатный лимит в нём — 5 гигабайт, но стоит помнить, что это всего лишь консоль, предоставляющая быстрый доступ.
  2. Через https://console.web3.storage/ загрузите файл и получите его CID (bafy...). Если вам нужно загрузить несколько файлов, выбирайте загрузку директории (среди вариантов File, Directory, CAR выбираете второй). Файл будет доступен по ссылке вида https://ipfs.io/ipfs/ВашCID/НазваниеФайла, директория — то же самое, но без названия файла в конце.
  3. Для создания IPNS ссылки используйте IPNS Record Inspector & Creator и выберите create record. Сайт на момент написания статьи является очень свежей разработкой (начало 2025 года), его создатели замечательные люди. Сгенерируйте private key, обязательно сохраните его и никому не показывайте — он будет использоваться для обновления IPNS ссылки, являясь вашим паролем от неё. После его создания одновременно будет подобран публичный IPNS Name.
  4. В значении Value добавьте CID от нужного IPFS файла, а значение Validity, обозначающее срок действия IPNS ссылки, лучше завышать — сам сайт предлагает выдать ему срок, равный максимум одному году в миллисекундах, но если вы вставите туда 946684800000, то это будет ровно 30 лет.
  5. В inspect record вставьте созданный вами ранее IPNS Name, составляющий тело вашей ссылки; он должен выдать вам корректные данные о ссылке, создали ли вы её или обновили. IPNS ссылка будет иметь вид https://ipfs.io/ipns/ВашIPNSname/НазваниеФайла и способна перенаправлять на различные файлы внутри IPFS, не давая данным устаревать: вы можете сменить CID, а IPNS ссылка останется той же самой.
  6. Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились.

Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется обширная документация. Самое сложное, что можно делать внутри IPFS — хостить целые сайты[3].

Примечания