IPFS

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
InterPlanetary File System
Ipfs-logo-1024-ice-text.png
Тип мережевий протокол[d]
Файлообмінна мережа і файлова система
Розробник Protocol Labs
Стабільний випуск 0.4.15 (12 травня 2018; 18 місяців тому (2018-05-12))
Версії 0.4.22 (14 серпня 2019)
Репозиторій github.com/ipfs/ipfs
Операційна система FreeBSD, Linux, macOS, Windows
Написано на Реалізація протоколу: Go (еталонна реалізація), JavaScript, C[1], Python
Клієнтські бібліотеки: Go, Java, JavaScript, Python, Scala, Haskell, Swift, Common Lisp, Rust, Ruby, PHP, C#, Erlang
Доступні мови Go, JavaScript, Python
Стан розробки Діючий
Ліцензія MIT
ipfs.io

IPFS (англ. InterPlanetary File System, міжпланетна файлова система) — протокол та система розповсюдження даних за змістом, яка побудована на концепції ідентифікування даних за хешом, тобто за ІД, який розраховується й відповідно залежить, від їхнього внутрішнього значення.[2] Це суттєво відрізняється від існуючої на поточний час системи адресації (ідентифікування об'єкту), коли об'єктові штучно надається ім'я, тобто його фактично ІД, яке взагалі не відбиває його ані внутрішню структуру (тип), ані зміст. Використовує одноранговий спосіб зберігання та обміну гіпермедіаданими в розподіленій файловій системі. IPFS започаткував Хуан Бенет (Juan Benet). На поточний час це проект із відкритим кодом, який підтримується спільнотою.[3][4]

Геш в IPFS логотипу Вікіпедії: QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D Логотип за цим хешем можна завантажити через HTTP з публічного шлюзу або через [недоступне посилання з травень 2019 локального IPFS клієнта][недоступне посилання з жовтня 2019]

Історія[ред. | ред. код]

В 2014 році протокол IPFS використовував блокчейн протокол[en] Bitcoin та його мережевою інфраструктурою для зберігання незмінних даних, прибирання дублікатів файлів по всій мережі та отримання адресної інформації для доступу до вузлів зберігання для пошуку файлів у мережі.[5][2]

На поточний час існують реалізації на Go[6] та JavaScript[7], реалізація на Python[8] в стадії розробки. Реалізація Go розглядається як еталонна реалізація[en] під час розробки формальних специфікацій.[9]

Опис[ред. | ред. код]

IPFS — це розповсюджена файлова система, яка прагне підключатись до всіх комп'ютерних пристроїв з встановленим IPFS для пошуку файлів. IPFS в чомусь схожий на Веб, десь можна розглядати як єдиний

У деяких випадках IPFS подібний до World Wide Web, але IPFS можна розглядати як єдиний BitTorrent рій, де відбувається обмін об'єктами в єдиному Git репозитарії. IPFS використовує високопродуктивну модель зберігання із адресацією блоків за їхнім вмістом. [10] Ця модель організації блоків даних фактично утворює спрямований ациклічний графдерево Меркла. IPFS поєднує розподілену хеш-таблицю з обміном блоками та самопідтвердженим простором назв. IPFS не має єдиної точки відмови, вузли не повинні довіряти один одному, самостійно перевіряють отримані блоки для захисту від підробок при передачі даних.[11] Розподілена система доставки контенту зберігає пропускну здатність та дозволяє запобігти DoS-атакам, на які уразливий HTTP.[5]

Доступ до даних надається через механізми FUSE або HTTP.[10] Локальні файли можуть бути доданими в IPFS і це зробить їх доступними на будь якому IPFS-вузлі. Файли ідентифікуються за своїми хешами.

IPFS має власну службу імен IPNS, глобальна простір імен побудований на основі відкритих ключів, які використовуються також для побудови довірчих ланцюгів. IPNS може відображатись на інші простори імен, такі як DNS, .onion, .bit [12]

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Agorise (23 October 2017). c-ipfs: IPFS implementation in C. Why C? Think Bitshares' Stealth backups, OpenWrt routers (decentralize the internet/meshnet!), Android TV, decentralized Media, decentralized websites, decent... Github.com. Процитовано 25 October 2017. 
  2. а б Finley, Kurt (June 20, 2016). The Inventors of the Internet Are Trying to Build a Truly Permanent Web. Wired. 
  3. The IPFS Project. Ipfs.io. Процитовано 11 September 2015. 
  4. IPFS README - Who designed it?. Github.io. Процитовано 11 September 2015. 
  5. а б IPFS Protocol Selects Ethereum Over Bitcoin, Prefers Ethereum Dev Community. Cointelegraph.com. Процитовано 25 October 2017. 
  6. ipfs/go-ipfs. GitHub (en). Процитовано 2017-02-13. 
  7. ipfs/js-ipfs. GitHub (en). Процитовано 2017-02-13. 
  8. ipfs/py-ipfs. GitHub (en). Процитовано 2017-02-13. 
  9. ipfs/specs. GitHub (en). Процитовано 2017-02-13. 
  10. а б Allison, Ian (13 October 2016). Juan Benet of IPFS talks about Filecoin. Ibtimes.co.uk. Процитовано 25 October 2017. 
  11. IPFS is the Distributed Web. Ipfs.io. Процитовано 27 March 2018. 
  12. IPFS README. Github.com. Процитовано 11 September 2015.