Skip to content

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 lookup99% < 1.7 сек
  • Запись/чтение значительно медленнее FTP/S3
  • Латентность растёт с увеличением размера файла
  • Chunking: блоки по 256 КБ, max block size 1 МиБ

Стоимость pinning-сервисов

СервисБесплатноПлатные планыS3 API
Filebase5 ГБ$20/мес (800 ГБ), $100/мес (4 ТБ)Да
Pinata1 ГБот $20/мес (до 25 ГБ/upload)Нет
web3.storage (Storacha)5 ГБ$10/мес (100 ГБ), $100/мес (2 ТБ)Нет
Lighthouse5 ГБРазовая оплата (perpetual)Нет

SDK

Rust

БиблиотекаОписаниеСтатус
rust-ipfsПолная реализация IPFS: blockstore, libp2p, DHT, pubsubАктивно поддерживается
iroh (n0)P2P на QUIC + relay + holepunching, iroh-blobs (BLAKE3)1.0 в H2 2025
ipfs-apiHTTP-клиент для 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 riskFilebase: 4 человека, $440K выручки -- высокий

Вердикт: IPFS через Filebase технически подходит (S3 API, любой размер файлов), но высокий vendor risk Filebase и отсутствие event notifications делают его менее привлекательным, чем Backblaze B2.

Источники