IPFS: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
== Ключевые особенности == | == Ключевые особенности == | ||
Облака — Мега драйв, Гугл драйв и все прочие подвержены цензуре сверху, любая информация может быть удалена по запросу властей и владельцев компании, также она может быть потеряна, если случится краш серверов или остановка сервиса (как например в 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: | Строка 10: | ||
Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации [[ZeroOmega]] в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях. | Другой интересной особенностью IPFS является тот факт, что во многих облаках файлы не хранятся собственно как файлы; они, скорее, представляют собой ссылки на скачивание этих самых файлов. Это было проверено экспериментальным путём — при использовании ссылки на файл конфигурации [[ZeroOmega]] в обычном облаке (Гугл драйв и Яндекс диск), расширение не могло прочитать его, так как имелась ссылка только на скачивание файла человеком, но не сам файл. В случае со ссылкой на IPFS расширение спокойно читает его. Именно этот фактор делает IPFS таким популярным среди разработчиков, так как позволяет читать файлы программам, что широко используется в браузерных расширениях. | ||
Для тех, кто впервые слышит об IPFS, его структура может показаться очень непривычной: файлы в системе обозначаются через CID (Content IDentifier), начинающийся на bafy. Каждый файл имеет только одно обозначение CID, навсегда остающееся неизменным, невозможно заменить один файл другим через обновление, что является нормой в других облаках. Даже после удаления файла (что имеет значение для консолей взаимодействия с сетью, но не для самой сети), его идентификатор, а значит и ссылка на него в шлюзах, никак не изменится; вот пример такого файла<ref>[https://ipfs.io/ipfs/bafybeiejkem2yl6qbdfl5oeypcm3p4z2nvvqrbzwjtcf622f3x3zygagoa/ Пример файла в IPFS]</ref>. Это обеспечивает постоянство всей информации, которая содержится в базе данных. Для изменения файлов используется не менее сложная система — 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 может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo<ref>[https://github.com/ipfs/kubo Программа kubo]</ref> (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент<ref>[https://github.com/ipfs/ipfs-desktop Графический клиент IPFS]</ref>, способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности. | Из-за такой громоздкой структуры в IPFS/IPNS может быть трудно разобраться новичкам. Тем же, кто напротив хочет разобраться больше всех остальных, стоит установить IPFS в виде официальной программы kubo<ref>[https://github.com/ipfs/kubo Программа kubo]</ref> (только командная строка), позволяющей открыть и поддерживать собственный узел, а также продвинуто взаимодействовать с сетью. Существует и графический клиент<ref>[https://github.com/ipfs/ipfs-desktop Графический клиент IPFS]</ref>, способный безлимитно загружать в IPFS файлы, но он имеет далеко не все возможности. |
Версия от 05:34, 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]. Удачи.