IPFS -- InterPlanetary File System
Исследование проведено: 2026-02-22 Источник: https://docs.ipfs.tech/
Что такое IPFS
IPFS (InterPlanetary File System) -- P2P-протокол для обмена данными с адресацией по содержимому (content-addressing). Каждый файл получает уникальный CID (Content Identifier) -- криптографический хеш содержимого. IPFS -- это транспортный протокол, а не хранилище: данные существуют только пока хотя бы одна нода их хранит (pin).
Сайт: https://ipfs.techДокументация: https://docs.ipfs.techGitHub: https://github.com/ipfs
Ключевые концепции
Content-addressing (CID)
- CIDv0: начинается с
Qm, base58btc, кодек dag-pb, SHA2-256 - CIDv1:
<multibase><multicodec><multihash>-- гибкий формат - Файлы организованы как Merkle DAG в формате DAG-PB (Protobuf + UnixFS)
- Дедупликация из коробки: одинаковые файлы = один CID
DHT (Distributed Hash Table)
- Kademlia DHT (Amino) для маршрутизации контента
- 99% поисковых запросов < 1.7 секунды
- Хранит маппинг CID → IP-адреса пиров
Bitswap
- Протокол обмена блоками между пирами
- Want-lists: узлы запрашивают нужные CID
- Cross-file торговля блоками (в отличие от BitTorrent)
IPNS (InterPlanetary Name System)
- Мутабельные указатели на CID
- Имя IPNS = хеш публичного ключа
- Владелец приватного ключа обновляет указатель на новый CID
- Записи кэшируются на время TTL
Модель персистентности
IPFS НЕ гарантирует постоянного хранения данных.
- Garbage collection: по умолчанию каждый час, при заполнении 90% хранилища
- Pinning -- команда хранить конкретные данные бессрочно (исключить из GC)
- Локальный pinning: на собственном узле
- Удалённый pinning: на pinning-сервисе
Производительность
| Операция | Латентность |
|---|---|
| Локальный доступ (localhost) | ~21 мс (p95) |
| Доступ через сеть | ~194 мс (p95) |
| DHT lookup | 99% < 1.7 сек |
- Запись/чтение значительно медленнее FTP/S3
- Латентность растёт с увеличением размера файла
- Chunking: блоки по 256 КБ, max block size 1 МиБ
Стоимость pinning-сервисов
| Сервис | Бесплатно | Платные планы | S3 API |
|---|---|---|---|
| Filebase | 5 ГБ | $20/мес (800 ГБ), $100/мес (4 ТБ) | Да |
| Pinata | 1 ГБ | от $20/мес (до 25 ГБ/upload) | Нет |
| web3.storage (Storacha) | 5 ГБ | $10/мес (100 ГБ), $100/мес (2 ТБ) | Нет |
| Lighthouse | 5 ГБ | Разовая оплата (perpetual) | Нет |
SDK
Rust
| Библиотека | Описание | Статус |
|---|---|---|
| rust-ipfs | Полная реализация IPFS: blockstore, libp2p, DHT, pubsub | Активно поддерживается |
| iroh (n0) | P2P на QUIC + relay + holepunching, iroh-blobs (BLAKE3) | 1.0 в H2 2025 |
| ipfs-api | HTTP-клиент для Kubo RPC API | Стабильный |
TypeScript / Node.js
| Библиотека | Описание | Статус |
|---|---|---|
| Helia | Официальная модульная реализация, ESM + TypeScript | Активно развивается |
| kubo-rpc-client | Клиент для Kubo HTTP RPC API | Стабильный |
| js-IPFS | Устаревшая реализация | DEPRECATED |
Ограничения
- Нет гарантий хранения -- данные исчезают без pinning
- Иммутабельность CID -- изменение файла = новый CID
- IPNS медленный -- разрешение имени = секунды
- Нет контроля доступа -- всё публично, нужно шифрование на уровне приложения
- NAT traversal -- узлы за NAT требуют relay/holepunching
- Kubo RPC API даёт admin-доступ к узлу (риск безопасности при экспозиции)
Iroh (n0) -- особый интерес для Kontinuum
Rust-библиотека, эволюционировавшая из IPFS-имплементации:
- Построена на QUIC (Quinn) -- шифрование, мультиплексирование
- Адресация по публичному ключу (как в Kontinuum)
- Встроенный holepunching + relay fallback
- iroh-blobs -- content-addressed blob transfer на BLAKE3
- iroh-gossip -- pub-sub overlay сети
Применимость к Kontinuum
| Критерий | Оценка |
|---|---|
| Латентность записи | Секунды (через pinning service) |
| Латентность чтения | Мс -- секунды (через dedicated gateway) |
| Малые файлы | Любой размер |
| S3 API | Через Filebase |
| Стоимость | $20-100/мес за 800 ГБ -- 4 ТБ |
| Миграция | Минимальная (Filebase = S3 API) |
| Event Notifications | Нет |
| Vendor risk | Filebase: 4 человека, $440K выручки -- высокий |
Вердикт: IPFS через Filebase технически подходит (S3 API, любой размер файлов), но высокий vendor risk Filebase и отсутствие event notifications делают его менее привлекательным, чем Backblaze B2.