IPFS | |
---|---|
![]() | |
Тип | сетевой протокол[вд], файловая система, hypermedia distribution protocol[вд] и сеть доставки контента |
Автор | Хуан Бенет (Juan Benet) |
Разработчики | Protocol Labs, сообщество |
Операционные системы | FreeBSD, Linux, macOS и Windows |
Последняя версия | |
Репозиторий | github.com/ipfs/kubo |
Состояние | активное |
Лицензия | лицензия MIT |
Сайт | ipfs.tech (англ.) |
![]() |
IPFS (от англ. InterPlanetary File System — межпланетная файловая система) — контентно-адресуемый, одноранговый гипермедийный протокол связи. Узлы IPFS-сети формируют распределённую файловую систему[англ.]. IPFS является проектом с открытым исходным кодом, разработанным Protocol Labs при содействии open-source сообщества.[2] Первоначально он был разработан Хуаном Бенетом (Juan Benet).[3]
IPFS представляет собой одноранговую распределённую файловую систему, которая соединяет все вычислительные устройства единой системой файлов. В некотором смысле IPFS схожа со всемирной паутиной. IPFS можно представить как единый BitTorrent-рой, обменивающийся файлами единого Git-репозитория. Иными словами, IPFS обеспечивает контентно-адресуемую модель блочного хранилища[англ.] с контентно-адресуемыми гиперссылками и высокую пропускную способность.
Это формирует обобщённый древовидный направленный граф.
IPFS сочетает в себе распределённую хеш-таблицу, децентрализованный обмен блоками, а также самосертифицирующееся пространство имён. При этом IPFS не имеет точек отказа, и узлы не обязаны доверять друг другу.[4]
Доступ к файловой системе может быть получен различными способами:
Локальный файл может быть добавлен в файловую систему IPFS, что делает его доступным всему миру. Файлы идентифицируются по своим мультихешам[5][6], что упрощает кэширование. Они распространяются через протокол, основанный на протоколе BitTorrent. Пользователи, просматривающие контент, помогают в доставке контента для других пользователей сети. IPFS имеет сервис имён под названием IPNS, глобальное пространство имён на основе открытых ключей, совместимое с другими пространствами имён и имеющее возможность интегрировать DNS, .onion, .bit и другие в IPNS.[7]
На апрель 2016 года IPFS находится на уровне альфа-версии[8]. Основная реализация выполнена на языке Go, частично реализована версия на JavaScript, начата разработка версии на Python[9] и Rust.