Випуск глобальної децентралізованої файлової системи IPFS 0.6

Опубліковано випуск децентралізованої файлової системи IPFS 0.6 (InterPlanetary File System), що створює глобальне версіоноване сховище файлів, розгорнуте у формі P2P-мережі, утвореної із систем учасників. IPFS комбінує ідеї, раніше реалізовані в таких системах, як Git, BitTorrent, Kademlia, SFS і Web, і нагадує єдиний «рій» BitTorrent (бенкети, що беруть участь у роздачі), що обмінюється Git-об'єктами. IPFS відрізняється адресацією за вмістом, а не місцем розташування та довільними іменами. Код еталонної реалізації написаний мовою Go та поширюється під ліцензіями Apache 2.0 та MIT.

Нова версія примітна включенням за замовчуванням транспорту на базі протоколу QUIC, який є надбудовою над протоколом UDP, що підтримує мультиплексування декількох з'єднань і забезпечує методи шифрування, еквівалентні TLS/SSL. В IPFS сокет для прийому UDP-з'єднань автоматично запускається на тій же адресі та мережному порту, що й обробник транспорту на базі TCP. QUIC застосовується як для вхідних, так і вихідних з'єднань, при цьому при підключенні до нових вузлів у разі недоступності QUIC здійснюється відкат використання TCP.

Другим важливим нововведенням стала підтримка захищеного транспорту ШУМУ, заснованого на протоколі шум та розвивається в рамках libp2pмодульного мережевого стека для P2P-додатків. Після початкового узгодження з'єднання весь наступний обмін даними між учасниками шифрується та захищається від підслуховування.
NOISE прийшов на зміну транспорту SECIO, але як пріоритетний метод шифрування з'єднань між вузлами поки продовжує застосовуватися TLS 1.3. NOISE досить простий у реалізації та позиціонується як універсальний крос-платформний транспорт, який може бути реалізований різними мовами програмування.

У новому випуску також надано можливість додавання власних сторінок «404 Not Found» та додано опціональну підтримку методу кодування Base36, який є оптимальним для буквено-цифрових даних без відмінностей у регістрі символів, таких як імена доменів (при використанні Base32 ключі Ed25519 IPNS на два байти перевищують ліміт на розмір піддомену, а при Base36 вміщуються в ліміт). Крім того, до налаштувань додано опцію
«вдивляючись«, яка визначає список вузлів для підключення, підтримки з'єднання та перепідключення з метою визначення «липких» зв'язків між бенкетами, що часто використовуються.

Нагадаємо, що IPFS посилання для доступу до файлу безпосередньо пов'язана з його вмістом і включає криптографічний хеш вмісту. Адреса файлу неможливо довільно перейменувати, вона може змінитися лише після зміни вмісту. Аналогічно неможливо змінити файл без зміни адреси (старий варіант залишиться на колишній адресі, а новий буде доступний через іншу адресу, оскільки хеш від вмісту файлу зміниться). Враховуючи те, що ідентифікатор файлу змінюється при кожній зміні, щоб щоразу не передавати нові посилання, надаються сервіси для прив'язки постійних адрес, що враховують різні версії файлу (IPNS), або закріплення псевдоніму за аналогією з традиційними ФС та DNS (МФС (Mutable File System) та DNSLink).

За аналогією з BitTorrent, дані безпосередньо зберігаються на системах учасників, які обмінюються інформацією в режимі P2P, без прив'язки до централізованих вузлів. При необхідності отримати файл з певним вмістом система знаходить учасників, які мають цей файл і віддає його з їх систем частинами в кілька потоків. Після завантаження файлу на свою систему учасник автоматично стає однією з точок його роздачі. Для визначення учасників мережі на вузлах яких присутній цікавий контент використовується розподілена хеш таблиця (DHT). Для доступу до глобальної FS IPFS може використовуватися протокол HTTP або монтуватися віртуальна FS /ipfs за допомогою модуля FUSE.

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

Випуск глобальної децентралізованої файлової системи IPFS 0.6

Джерело: opennet.ru

Додати коментар або відгук