IPFS: различия между версиями
мНет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
IPFS — распределённая, нецензурная файловая система с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные [https://ipfs.github.io/public-gateway-checker/ | IPFS — распределённая, нецензурная файловая система с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные шлюзы<ref>[https://ipfs.github.io/public-gateway-checker/ Чекер доступности шлюзов]</ref>, полное название — InterPlanetary File System. Представляет собой что-то среднее между торрентом и облаком, а точнее является децентрализованным облаком, информация в котором распределена между узлами, а не между серверами. Из-за своих преимуществ популярна среди разработчиков обходов блокировок. | ||
== Ключевые особенности == | == Ключевые особенности == | ||
Облака — Мега драйв, Гугл драйв и все прочие подвержены цензуре сверху, любая информация может быть удалена по запросу властей и владельцев компании, также она может быть потеряна, если случится краш серверов или остановка сервиса (как например в rghost, если кто помнит). В противоположность этому, вся информация, выложенная на IPFS, '''остаётся там навсегда''', рециркулируя по узлам сети<ref>https://discuss.ipfs.tech/t/can-i-delete-my-content-from-the-network/301</ref>. Однако тот, кто выложил информацию на IPFS, может понести ответственность по законам собственной страны: файлы, хотя и обезличенные, сами по себе никак не шифруются. И уж тем более не стоит хранить на IPFS список всех паролей. Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud и [[Антизапрет]]ом, одним из популярных средств обхода блокировок на IPFS. После этого Антизапрет сменил шлюз на тот, что предоставляют непосредственно разработчики IPFS — ipfs.io, и это решило проблему. Поэтому, хотя и есть техническая возможность, хранить на ipfs запрещёнку в незащищённом виде крайне не рекомендуется, как и в обычных облаках здесь, скажу вам по секрету, помогут только запароленные архивы. Но в пограничных ситуациях нет более надёжного хранилища. | Облака — Мега драйв, Гугл драйв и все прочие подвержены цензуре сверху, любая информация может быть удалена по запросу властей и владельцев компании, также она может быть потеряна, если случится краш серверов или остановка сервиса (как например в rghost, если кто помнит). В противоположность этому, вся информация, выложенная на IPFS, '''остаётся там навсегда''', рециркулируя по узлам сети<ref>[https://discuss.ipfs.tech/t/can-i-delete-my-content-from-the-network/301 Пояснение про постоянство информации от одного из специалистов]</ref>. Однако тот, кто выложил информацию на IPFS, может понести ответственность по законам собственной страны: файлы, хотя и обезличенные, сами по себе никак не шифруются. И уж тем более не стоит хранить на IPFS список всех паролей. Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud и [[Антизапрет]]ом, одним из популярных средств обхода блокировок на IPFS. После этого Антизапрет сменил шлюз на тот, что предоставляют непосредственно разработчики IPFS — ipfs.io, и это решило проблему. Поэтому, хотя и есть техническая возможность, хранить на ipfs запрещёнку в незащищённом виде крайне не рекомендуется, как и в обычных облаках здесь, скажу вам по секрету, помогут только запароленные архивы. Но в пограничных ситуациях нет более надёжного хранилища. | ||
Некоторые проекты, такие как [[Tor Portable]], вынужденно мигрировали на IPFS из-за обилия необоснованной цензуры на других площадках: Гитхаб, хотя и имеет очень хорошее облачное хранилище с огромным количеством полезного софта, злоупотребляет использованием ботомодерации, часто совершающей ошибки. Это помимо того, что у Гитхаба есть чётко определённая тематика — свадебные фото и порно на него не выкладывают. | Некоторые проекты, такие как [[Tor Portable]], вынужденно мигрировали на IPFS из-за обилия необоснованной цензуры на других площадках: Гитхаб, хотя и имеет очень хорошее облачное хранилище с огромным количеством полезного софта, злоупотребляет использованием ботомодерации, часто совершающей ошибки. Это помимо того, что у Гитхаба есть чётко определённая тематика — свадебные фото и порно на него не выкладывают. | ||
Строка 8: | Строка 8: | ||
Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации [[ZeroOmega]] в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях. | Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации [[ZeroOmega]] в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях. | ||
Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится; вот пример такого [https://ipfs.io/ipfs/bafybeiejkem2yl6qbdfl5oeypcm3p4z2nvvqrbzwjtcf622f3x3zygagoa/ файла]. Это обеспечивает постоянство всей информации, которая содержится в базе данных. Для изменения файлов используется не менее сложная система — IPNS (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (что иронично: ведь суть IPFS это хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (тот, впрочем, может длиться достаточно долго, например 30 лет). | Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится; вот пример такого файла<ref>[https://ipfs.io/ipfs/bafybeiejkem2yl6qbdfl5oeypcm3p4z2nvvqrbzwjtcf622f3x3zygagoa/ Пример файла в IPFS]</ref>. Это обеспечивает постоянство всей информации, которая содержится в базе данных. Для изменения файлов используется не менее сложная система — IPNS (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (что иронично: ведь суть IPFS это хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (тот, впрочем, может длиться достаточно долго, например 30 лет). | ||
Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, [https://github.com/ipfs/kubo | Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo<ref>[https://github.com/ipfs/kubo Программа kubo]</ref> (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент<ref>[https://github.com/ipfs/ipfs-desktop Графический клиент IPFS]</ref>, способный безлимитно загружать в 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 выбираете второй). Файл будет доступен по ссылке вида https://ipfs.io/ipfs/ВашCID/НазваниеФайла, директория — то же самое, но без названия файла в конце. | ||
# Для создания IPNS ссылки используйте [https://ipns.ipfs.network IPNS Record Inspector & Creator] и выберите create record. Сайт на момент написания статьи является очень свежей разработкой (начало 2025 года), [https://github.com/ipshipyard/ipns-inspector | # Для создания 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. | ||
# В значении 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 ссылка будет иметь вид https://ipfs.io/ipns/ВашIPNSname/НазваниеФайла и способна перенаправлять на различные файлы внутри IPFS, не давая данным устаревать: вы можете сменить CID, а IPNS ссылка останется той же самой. | ||
# Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились. | # Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились. | ||
Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется обширная [https://docs.ipfs.tech | Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется обширная документация<ref>[https://docs.ipfs.tech Документация IPFS]</ref>. Самое сложное, что можно делать внутри IPFS по моему мнению — хостить целые сайты<ref>[https://ipfs.io/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze Зеркало Википедии внутри IPFS]</ref>. Удачи. | ||
== Примечания == | == Примечания == |
Версия от 05:30, 18 апреля 2025
IPFS — распределённая, нецензурная файловая система с бессрочным хранением данных и открытым исходным кодом, доступ к которой осуществляется через специализированные шлюзы[1], полное название — InterPlanetary File System. Представляет собой что-то среднее между торрентом и облаком, а точнее является децентрализованным облаком, информация в котором распределена между узлами, а не между серверами. Из-за своих преимуществ популярна среди разработчиков обходов блокировок.
Ключевые особенности
Облака — Мега драйв, Гугл драйв и все прочие подвержены цензуре сверху, любая информация может быть удалена по запросу властей и владельцев компании, также она может быть потеряна, если случится краш серверов или остановка сервиса (как например в rghost, если кто помнит). В противоположность этому, вся информация, выложенная на IPFS, остаётся там навсегда, рециркулируя по узлам сети[2]. Однако тот, кто выложил информацию на IPFS, может понести ответственность по законам собственной страны: файлы, хотя и обезличенные, сами по себе никак не шифруются. И уж тем более не стоит хранить на IPFS список всех паролей. Исключением из правила невмешательства являются шлюзы; они могут налагать собственные ограничения, например чтобы компенсировать нагрузку на себя, как было с Pinata.cloud и Антизапретом, одним из популярных средств обхода блокировок на IPFS. После этого Антизапрет сменил шлюз на тот, что предоставляют непосредственно разработчики IPFS — ipfs.io, и это решило проблему. Поэтому, хотя и есть техническая возможность, хранить на ipfs запрещёнку в незащищённом виде крайне не рекомендуется, как и в обычных облаках здесь, скажу вам по секрету, помогут только запароленные архивы. Но в пограничных ситуациях нет более надёжного хранилища.
Некоторые проекты, такие как Tor Portable, вынужденно мигрировали на IPFS из-за обилия необоснованной цензуры на других площадках: Гитхаб, хотя и имеет очень хорошее облачное хранилище с огромным количеством полезного софта, злоупотребляет использованием ботомодерации, часто совершающей ошибки. Это помимо того, что у Гитхаба есть чётко определённая тематика — свадебные фото и порно на него не выкладывают.
Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации ZeroOmega в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях.
Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится; вот пример такого файла[3]. Это обеспечивает постоянство всей информации, которая содержится в базе данных. Для изменения файлов используется не менее сложная система — IPNS (InterPlanetary Naming System), смысл которой заключается в том, чтобы вернуть отнятую возможность обновлять файлы, не изменяя при этом саму суть IPFS (что иронично: ведь суть IPFS это хранить все файлы неизменными). В отличие от IPFS, ссылки IPNS, указывающие на файлы в сети, не являются вечными, имея период валидности, который пользователь назначает самостоятельно (тот, впрочем, может длиться достаточно долго, например 30 лет).
Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo[4] (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент[5], способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности.
Пример использования
- Пройдите регистрацию на сайте https://web3.storage/. Бесплатный лимит в нём — 5 гигабайт, но стоит помнить, что это всего лишь консоль, предоставляющая быстрый доступ.
- Через https://console.web3.storage/ загрузите файл и получите его CID (bafy...). Если вам нужно загрузить несколько файлов, выбирайте загрузку директории (среди вариантов File, Directory, CAR выбираете второй). Файл будет доступен по ссылке вида https://ipfs.io/ipfs/ВашCID/НазваниеФайла, директория — то же самое, но без названия файла в конце.
- Для создания IPNS ссылки используйте IPNS Record Inspector & Creator[6] и выберите create record. Сайт на момент написания статьи является очень свежей разработкой (начало 2025 года), его создатели[7] замечательные люди. Сгенерируйте private key, обязательно сохраните его и никому не показывайте — он будет использоваться для обновления IPNS ссылки, являясь вашим паролем от неё. После его создания одновременно будет подобран публичный IPNS Name.
- В значении Value добавьте CID от нужного IPFS файла, а значение Validity, обозначающее срок действия IPNS ссылки, я предпочитаю завышать — сам сайт предлагает выдать ему срок, равный максимум одному году в миллисекундах, но если вы вставите туда 946684800000, то это будет ровно 30 лет с учётом високосных годов.
- В inspect record вставьте созданный вами ранее IPNS Name, составляющий тело вашей ссылки; он должен выдать вам корректные данные о ссылке, создали ли вы её или обновили. IPNS ссылка будет иметь вид https://ipfs.io/ipns/ВашIPNSname/НазваниеФайла и способна перенаправлять на различные файлы внутри IPFS, не давая данным устаревать: вы можете сменить CID, а IPNS ссылка останется той же самой.
- Для обновления содержимого IPNS ссылки повторно пройдите её создание через create record, с тем условием, что теперь вы не генерируете приватный ключ, а импортируете старый. Вам нужно поменять CID от IPFS файла, а также убедиться через inspect record, что изменения применились.
Всё готово. Остальное изучение IPFS вам стоит пройти самостоятельно под различные сценарии его использования, благо на него имеется обширная документация[8]. Самое сложное, что можно делать внутри IPFS по моему мнению — хостить целые сайты[9]. Удачи.