Як працює IPFS і де насправді зберігаються ваші NFT

Як працює IPFS і де насправді зберігаються ваші NFT

IPFS — міжпланетна файлова система, в якій NFT-маркетплейси Tezos зберігають контент. Чому міжпланетна? Жартують, що, судячи зі швидкості завантаження, дані зберігаються на Марсі.

А якщо серйозно, то IPFS — інфраструктурна основа web3, що увібрала технології BitTorrent та блокчейн-протоколів. Пояснюємо простими словами як вона працює і в чому її переваги та недоліки.

Коротко про IPFS та її роль у Tezos

IPFS (InterPlanetary File System) — це протокол для децентралізованого зберігання та доступу до даних. Мережа розподіляє записані файли між нодами, і за запиту доступу до файлу будує маршрут до найближчої ноди, щоб забезпечити максимальну швидкість завантаження. Якщо файл великий і складається з частин, IPFS працює як BitTorrent і дозволяє завантажувати різні фрагменти одного файлу з різних нод.

IPFS безкоштовна та децентралізована, тому NFT-маркетплейси часто використовують її для зберігання NFT. На будь-якому маркетплейсі Tezos можна знайти посилання на контент в IPFS-дзеркалі, а в метаданих NFT — прямі IPFS-посилання на контент. Наприклад, Objkt.com надає відразу все: пряме IPFS-посилання, об’єкт на зеркалі Objkt.com (CDN) та IPFS-посилання на метадані.

А ще Tezos підтримує IPFS-посилання на метадані всередині контрактів — подивіться TZIP-16.

Головна візуальна відмінність HTTP та IPFS

Інтернет — це мережа для обміну даними між учасниками. Однак мало просто з’єднати два комп’ютери кабелем — потрібен ще протокол: правила маршрутизації запитів, шифрування трафіку, передачі даних та інших операцій.

Для різних типів даних та завдань використовуються різні протоколи. Наприклад, IP потрібен для доступу до хоста за його фізичною адресою в мережі, TCP і UDP для передачі даних між хостами, DNS для пошуку IP-адрес за іменами хостів.

Найвідоміший інтернет-протокол — це HTTP, HyperText Transfer Protocol. Він потрібний для доставки запитів та отримання відповідей між клієнтом та сервером. Грубо кажучи, коли ви набираєте в браузері адресу сайту, браузер спочатку шукає фізичну адресу сервера-хоста, на якому зберігається сайт, а потім передає йому HTTP-запит на отримання даних за вказаною адресою.

IPFS замість пошуку даних на адресу хоста шукає їх за адресами самих файлів. Тобто замість “ipfs://WEBSITE.COM/image.jpg” буде просто “ipfs://image”. IPFS сама знайде хости, які мають шукані файли.

Різний формат посилань — головна візуальна відмінність HTTP від ​​IPFS. При цьому відкривати IPFS-посилання можуть лише деякі браузери на кшталт Brave і Opera. У Chrome та інших потрібно встановлювати спеціальні розширення.

Як IPFS зберігає та шукає дані

Мережа IPFS складається з тисяч нод, які зберігають та реплікують дані подібно до того, як це роблять блокчейн-протоколи. Точну кількість нод і обсяг даних, що зберігаються на них, порахувати не можна, але команда Protocol.ai припускає, що зараз є 200 000 нод і 125 ТБ трафіку на тиждень.

IPFS-протокол надає кожному завантаженому файлу унікальний хеш-ідентифікатор — CID. Саме він знаходиться в кінці посилання, на зразок цього:

ipfs://QmXR7gHjhYnRBY2kyvSPE1skHr28GXpe6xfVWBst5NrLVv

Якщо двічі завантажити в IPFS один і той же файл, то копія отримає такий же CID, але, швидше за все, потрапить на іншу ноду. Якщо ж файл змінити, новий варіант отримає новий CID і буде існувати в IPFS одночасно зі старим.

При завантаженні файлів більше 256 КБ ноди розбивають їх на фрагменти, кожен із яких отримує свій CID. При цьому ноди на базі CID створюють орієнтований ациклічний граф Меркла (Merkle DAG), з допомогою якого описують зв’язок між фрагментами і фінальним файлом. Грубо кажучи, він виглядає як інструкція «Щоб отримати оригінальну картинку А, потрібно об’єднати фрагменти А1, А2 та А3».

За допомогою графів Меркла IPFS може:

  • зберігати та хостити великі проєкти на кшталт веб-сайтів та веб-додатків без ризику втратити фрагменти;
  • оновлювати окремі фрагменти файлів, зберігати історію змін та оновлювати графи замість того, щоб перезаписувати весь крупний файл;
  • зберігати різні фрагменти на різних нодах і без проблем збирати їх в оригінальний файл.

Щоб знаходити файли з їхнього CID, IPFS використовує аналог DNS — розподілену таблицю хешів чи DHT. Ноди записують в цю таблицю інформацію про те, які файли чи фрагменти вони зберігають. Якщо користувач шукає картинку з CID А, то в таблиці хешей він знайде список нод, у яких можна запросити цей файл. Пошук та завантаження файлів із фрагментів працює аналогічно: по CID великого файлу знаходиться відповідний граф Меркла, а з графа Меркла — список CID фрагментів та адреси потрібних нод.

Як користуватися IPFS

Щоб відкривати IPFS-посилання та отримувати контент, потрібно встановити відповідний браузер або розширення.

Щоб самостійно щось завантажити в IPFS, потрібно встановити клієнта IPFS Desktop і запустити свою ноду.

Детальні інструкції та програмне забезпечення є на сайті IPFS Tech.

Три переваги та один недолік IPFS

Перша перевага — незмінність даних. Записані файли не можна змінити, а видалити їх можна лише за згодою нод, які зберігають усі копії.

Друга перевага — IPFS безкоштовна для запису файлів. Однак якщо файл довго не вимагати, ноди можуть його видалити через непотрібність. Деякі сервіси пропонують гарантоване зберігання даних в IPFS за тарифом $0,1-0,2 за 1 ГБ.

Третя перевага — децентралізація та відсутність цензури. Як і у випадку з блокчейн-протоколами, вимкнення кількох нод не вплине на роботу протоколу загалом.

Проте є і недолік. Якщо в блокчейн-протоколах всі ноди зберігають однакові копії блокчейна, то IPFS у кожної ноди свій набір файлів. Наприклад, якщо вашу картинку зберігають чотири ноди, і всі вони вирішують почистити файли, що не використовуються, то ви більше не зможете отримати до неї доступ.

Підписуйтесь на соціальні мережі Tezos Ukraine, щоб нічого не пропустити:

  1. Telegram-канал
  2. Facebook.
  3. Twitter російською та українською мовами
  4. Twitter англійською мовою
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

наступний

Tezza: AI для найприбутковішого фармінгу та арбітражу

Читайте схожі пости

Altme — гаманець для зберігання цифрових активів, документів та карт лояльності

Altme — гаманець для зберігання цифрових активів, документів та карт лояльності

Що таке мультисіг і навіщо він потрібний? Пояснюємо простими словами

Що таке мультисіг і навіщо він потрібний? Пояснюємо простими словами

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Читайте блог і не пропускайте новини про TezosЧитати блог

Спільнота