Skip to content

Идентификаторы содержимого (CID)

Уникальный отпечаток, который получает каждый файл IPFS.

Что такое CID?

Идентификатор содержимого (CID) — это самоописывающая метка, которая уникально идентифицирует фрагмент данных в IPFS. Он вычисляется из криптографического хеша содержимого файла в сочетании с метаданными об используемом алгоритме хеширования и формате кодирования.

bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

CID, начинающиеся с bafy (или bafk для небольшого одноблочного содержимого), используют CIDv1 — современный самоописывающий формат. Устаревшие CID, начинающиеся с Qm, используют CIDv0 (SHA-256 в кодировке base58) — они всё ещё действительны и разрешимы, но больше не являются форматом вывода по умолчанию для нового содержимого.

Ключевые свойства

  • Детерминированный — Один и тот же файл всегда даёт один и тот же CID. Загрузите одно и то же изображение дважды — получите одинаковый идентификатор.
  • Уникальный — Даже изменение одного байта даёт совершенно другой CID. Это делает CID защищённым от подделки.
  • Самоверифицирующий — Любой получатель файла может пересчитать хеш и подтвердить, что он совпадает с запрошенным CID.
  • Неизменяемый — CID всегда указывает на одно и то же содержимое. Вы не можете изменить, на что разрешается CID.

CID в IPFS.NINJA

Каждый загруженный файл возвращает CID в ответе API. Используйте его для:

  • Доступа к файлу через шлюз: ipfs.ninja/ipfs/<CID>
  • Получения метаданных файла: GET /file/<CID>
  • Ссылки на контент в блокчейне (NFT, смарт-контракты)
  • Обмена с другими — они могут проверить, что содержимое совпадает

CIDv0 и CIDv1

СвойствоCIDv0CIDv1
ПрефиксQm...bafy... (dag-pb, каталоги и многоблочные файлы), bafk... (raw, небольшое одноблочное содержимое), а также другие в зависимости от кодека
Хеш-функцияТолько SHA-256Несколько (SHA-256, Blake2b и др.)
КодированиеBase58 (смешанный регистр)Multibase — по умолчанию base32 (нижний регистр, безопасно для DNS)
СамоописывающийНетДа (включает информацию о кодеке и хеше)
Чанкер256 KiB, устаревшее значение по умолчанию1 MiB согласно IPIP-0499
Кодирование листьевОбёрнуто в dag-pbНеобработанные байты (raw-leaves=true)

Что генерирует IPFS.NINJA

Загрузки и закрепления, выполненные после 2026-07-13, по умолчанию возвращают CIDv1: base32-кодирование CIDv1, блоки по 1 MiB, raw-листья — профиль IPIP-0499 unixfs-v1-2025. Практические следствия:

  • Небольшие файлы (≤ 1 MiB) возвращаются как bafk... (raw, одноблочный CIDv1)
  • Файлы большего размера и каталоги возвращаются как bafy... (dag-pb CIDv1)
  • Файл, загруженный через нас, получает тот же CID, который вычислил бы для тех же байтов любой современный инструмент (Helia, последний Kubo, ipfs-car)

Обратная совместимость

Устаревшие CID Qm... из более ранних загрузок остаются полностью разрешимыми — шлюз, POST /pin, GET /file/:cid, резолверы IPNS и любая другая конечная точка бессрочно принимают оба формата. Если у вас есть CID Qm... из более ранней загрузки, ничто из построенного вами не перестаёт работать.