Спасибо Адриану Санду , Панайотису Велисаракосу и Тиму Севериену за любезную помощь в рецензировании этой статьи.
Межпланетная файловая система (IPFS) — это революционная модель, которая может изменить способ использования Интернета. В отличие от типичной модели сервер-клиент, к которой мы привыкли, IPFS — это нечто большее, чем BitTorrent. Это привлекает ваше внимание? Тогда читайте дальше!
Проблемы с современной сетью
Протокол передачи гипертекста (HTTP) является основой всемирной паутины. Мы используем HTTP для доступа к большей части Интернета. Любой веб-сайт, который мы посещаем, обычно через HTTP. По сути, это менталитет сервер-клиент, когда наш компьютер отправляет запросы на сервер, на котором размещен веб-сайт, а сервер отправляет обратно ответы.
HTTP, тем не менее, естественно подходит для более узкого подмножества сервисов. Естественно, что крупные сервисы становятся своего рода структурой большой части Интернета, но такая централизованная среда может быть опасной. Если бы какая-либо из крупных хостинговых компаний и / или поставщиков услуг, таких как Google, Microsoft, Amazon, Dropbox, Rackspace и т. П., Внезапно потерпела неудачу, результаты для Интернета были бы катастрофическими в краткосрочной перспективе. И в этом заключается проблема (по крайней мере, один из них).
В дополнение к происходящему естественному процессу централизации существует еще одна проблема надежности современной сети. Большинство веб-сайтов и приложений размещаются на одном сервере, или на избыточном массиве серверов с балансировкой нагрузки, или в любом другом случае. Если владелец этих серверов или руководство центра обработки данных, или даже стихийное бедствие, заберет эти машины, продолжит ли приложение работать? Резервные копии и избыточность могут быть реализованы организациями, располагающими достаточными ресурсами, но даже те, которые не могут остановить компанию, которая просто решает закрыть свой веб-сайт или приложение.
Опора на хозяев
Если и когда сервер, на котором размещается сайт, выходит из строя, мы теперь полагаемся на то, что хостинговая компания будет иметь отказоустойчивые сейфы, резервные системы, резервные копии и т. Д. Они должны признать, что ваша служба отключена, и помочь вам в ее восстановлении. Если это аппаратная проблема, у них должны быть альтернативные системы, на которые они могут перенести ваши настройки. У них должны быть резервные сетевые системы, и они должны хранить как минимум резервную копию ваших данных, независимо от того, рекламируют они это или нет, в случае потери данных, которая является их ошибкой.
Что если они этого не сделают?
Опора на администраторов сайта
Теперь администраторы сайта получают стимул поддерживать работу службы и резервное копирование данных. Если вы когда-либо были заядлым пользователем приложения, которое было внезапно удалено, вам знакомо это чувство.
Движение к открытому исходному коду чрезвычайно помогает, позволяя взлететь нескольким форкам проекта и позволяя сохранять более статичные объекты, например документацию, в разных местах и в разных форматах. Но факт остается фактом, что большая часть Интернета контролируется такими людьми, как вы или я, обслуживающими серверы.
Некоторые внештатные разработчики даже управляют хостингом и обслуживанием сайтов своих небольших клиентов. Что если они забудут оплатить счет? Разозлиться на клиента и заблокировать его на своем сайте? Получить удар по грузовику? Да, у владельца сайта могут быть легальные варианты в любом из этих случаев, но поможет ли это вам, когда ваш сайт полностью недоступен?
Опора на пользователей
Еще одна проблема — это проблема пользователей любого веб-приложения. Контент часто должен иметь критическую массу пользователей или посетителей, чтобы даже заслужить хостинг. Часто приложения с низким трафиком или статические сайты закрываются просто потому, что они не являются экономически эффективными для запуска. Кроме того, обратная проблема также очень реальна. Пользователи современного Интернета все еще объединяются. Facebook — единственная социальная сеть — где-то в поле зрения каждого пятого человека на Земле упоминается как активный пользователь . Есть бесчисленное множество компаний, которые полностью зависят от существования Facebook. Что, если он закроется завтра?
Конечно, завтра Facebook не закроется, как и большинство приложений, которые вы любите и используете. Но некоторые могут. И чем больше пользователей обращалось к ним до того, как это произойдет, тем больший ущерб будет причинен повседневным рабочим процессам или даже личным и бизнес-финансам, в зависимости от того, какие приложения вы используете и для чего.
Ответ IPFS
Итак, вы можете спросить, как IPFS решает эти проблемы? IPFS — это относительно новая попытка решить некоторые из этих проблем с помощью распределенных файловых систем. Проект IPFS по-прежнему довольно мало документации и, возможно, является первым из многих различных решений.
Узлы IPFS
Прежде всего, вы должны понимать несколько вещей об IPFS. IPFS децентрализована. Без типичного сервера, предоставляющего веб-страницы для каждого клиента, который попадает на домен веб-сайта, необходимо представить себе другую инфраструктуру. Каждая машина, на которой работает IPFS, будет узлом
как часть роя
.
Рассмотрим, как в данный момент работают торренты. Вы выбираете файл для загрузки, и когда вы используете для этого торрент-приложение, вы, по сути, отправляете запрос на все компьютеры, подключенные к той же торрент-сети, что и у вас, и если у любого из них есть файл, который у вас есть ». По запросу и возможности загрузки в данный момент они начинают отправлять кусочки этого на ваш компьютер. Это сжатая версия.
Так как же работают узлы IPFS? Каждая машина, на которой работает IPFS, может выбирать, какие файлы они хотят обслуживать своим узлом.
Хеширование и IPNS
Каждый файл, который существует в IPFS, будет иметь уникальный хеш для его представления, и любое незначительное изменение приведет к созданию нового хеша. Эти хэши — то, как контент может быть просмотрен. Клиент запрашивает у системы хэш, и любой узел, имеющий доступное содержимое, может предоставить его одноранговым узлам. «Рой» предоставляет возможность, подобную торренту, в которой одноранговые узлы могут обслуживать друг друга.
Эта система позволит быстро и точно доставлять контент клиентам, независимо от их близости к исходному узлу контента. Кроме того, поскольку используются хеши, оба конца обмена могут быть проверены на правильность содержимого, так как один бит неуместен, что приведет к другому хешу.
Межпланетную систему именования (IPNS) можно использовать для назначения имени изменчивому (изменяемому) контенту, так что ваш узел публикует часть контента, имеет прикрепленное к нему имя, а затем может повторно публиковать изменения с тем же имя. Это, конечно, может привести к потере доступного контента, поэтому, по мнению разработчиков, объекты IPNS могут когда-нибудь функционировать больше как журнал фиксации Git, позволяя клиенту выполнять итерации по версиям опубликованного контента.
Преимущества децентрализации
Итак, вы слышали все о централизации и децентрализации. Но каковы практические преимущества того факта, что IPFS децентрализована?
Надежность и настойчивость
Контент, обслуживаемый в сети IPFS, будет существовать, по сути, навсегда, если люди этого захотят. Нет ни одного слабого звена, сервера или точки отказа. При использовании больших файлов может быть выгодно иметь несколько одноранговых узлов в качестве вариантов для выбора IPFS для получения файла. Но реальная выгода состоит в том, чтобы иметь эти множественные варианты для начала. Если один узел, на котором он работает, выйдет из строя, будут другие.
Защищено от атак типа DDoS
Просто по своей природе распределенный одноранговый контент не может быть подвержен атакам в стиле «прямой отказ в обслуживании». Эти атаки в первую очередь связаны с бомбардировкой хост-серверов с целью отключения веб-сайтов или служб. Однако, если один и тот же контент подается вам от нескольких пиров, эффективная атака DDoS должна найти и нацелить их всех .
Ранее просмотренный контент доступен в автономном режиме
При наличии системы кеширования с IPFS вполне возможно, что довольно много вашего регулярно просматриваемого контента будет по умолчанию доступно в автономном режиме. Разумеется, любой динамический контент может быть устаревшим, но ранее просмотренные ресурсы статического контента могут быть у вас под рукой, независимо от того, находились ли вы в зоне действия вашего Wi-Fi или нет.
Как все изменится?
С IPFS в качестве основного игрока все определенно изменится. Хотя узлы IPNS могут быть сопоставлены с HTTP-адресами в настоящее время, они не обязательно должны быть вечными. Веб-браузеры могут измениться или быть полностью удалены. Скорее всего, учитывая переход, вы просто начнете использовать несколько протоколов для доступа к контенту (вместо ввода http://
Эти браузеры также должны быть оснащены автоматическим способом замены любого локально кэшированного контента, если узел, с которым браузер пытается связаться, имеет контент, который был изменен, и представляет новый хэш.
Браузеры или другие клиенты могут быть единственным необходимым программным обеспечением. Помните, что IPFS одноранговая, поэтому ваша установка IPFS просто обращается к другим.
Вы также можете задаться вопросом, что происходит с веб-сайтами, размещающими динамический контент Ответ здесь гораздо менее ясен. Хотя обновление статического контента и повторная публикация в IPFS могут не быть такой проблемой, динамические веб-сайты, управляемые базой данных, будут значительно сложнее. Задача, стоящая перед разработчиками и сторонниками системы, будет заключаться в создании не только жизнеспособных , но и практических альтернатив, охватывающих эти варианты использования, поскольку огромная часть Интернета сегодня управляется динамическим содержимым базы данных. IPNS предоставляет некоторые потенциальные решения здесь, как и другие сервисы, которые разрабатываются, но готовое решение для производства еще впереди.
Будущее с IPFS
IPFS определенно еще не отполированная, хорошо смазанная машина. Это более увлекательный прототип того, как может выглядеть сеть в ближайшие годы. Чем больше людей проверяет, вносит свой вклад и работает над его улучшением, тем больше у него шансов изменить способ подачи контента в Интернете в целом. Так что примите участие!
Загрузите один из готовых двоичных файлов или исходных файлов здесь или ознакомьтесь с документацией , чтобы получить немного больше информации по этому вопросу и начать работу сегодня!