Децентралізоване сховище LF переведено на відкриту ліцензію

Доступний випуск LF 1.1.0, децентралізованого сховища даних, що реплікується, у форматі ключ/значення. Проект розвивається компанією ZeroTier, яка розробляє віртуальний Ethernet-комутатор, що дозволяє об'єднати розміщені у різних провайдерів хости та віртуальні машини в одній віртуальній локальній мережі, учасники якої обмінюються даними в режимі P2P. Код проекту написано мовою Сі. Новий випуск примітний переходом на вільну ліцензію MPL 2.0 (Mozilla Public License).

Раніше код LF був доступний під ліцензією BSL (Business Source License), яка не є вільною через дискримінацію окремих категорій користувачів. Ліцензія BSL була запропонована співзасновниками MySQL як альтернатива моделі Open Core. Суть BSL в тому, що код розширеної функціональності спочатку доступний для внесення змін, але протягом якогось часу може застосовуватися безкоштовно лише за умови дотримання додаткових умов, для обходу яких потрібно придбання комерційної ліцензії.

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

Для підключення до мережі нового вузла не потрібне отримання окремих повноважень - будь-хто може запустити свій вузол. Модель даних у LF побудована на основі орієнтованого ациклічного графа (DAG), що спрощує синхронізацію та дозволяє застосовувати різні стратегії вирішення конфліктів та забезпечення безпеки. На відміну від систем на основі розподілених хеш-таблиць (DHT), архітектура IF спочатку розрахована на використання у ненадійних мережах, постійна доступність вузлів у яких не гарантується. Як області застосування LF згадується створення максимально живучих систем зберігання, в яких зберігається відносно невеликі обсяги критично важливих даних, які рідко змінюються. Наприклад, LF підходить для сховищ ключів, сертифікатів, параметрів ідентифікації, конфігураційних файлів, хешів і доменних імен.

Для захисту від перевантаження та зловживань застосовується обмеження інтенсивності операцій запису в загальне сховище, реалізоване на основі доказу виконання роботи (proof of work) — щоб отримати можливість збереження даних учасник мережі зберігання повинен виконати певне завдання, яке легко перевіряється, але потребує великих ресурсів при обчисленні (аналогічно організації розширення систем на основі блокчейну та CRDT). Обчислені значення також застосовуються як ознака під час вирішення конфліктів.

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

Основні особливості LF:

  • Простота розгортання свого сховища та підключення до існуючих публічних мереж зберігання.
  • Відсутність єдиної точки відмови та можливість залучення на підтримку сховища всіх бажаючих.
  • Висока швидкість доступу до всіх даних та можливість звернення до даних, що залишаються на своєму вузлі, навіть після порушення мережевої зв'язності.
  • Універсальна модель безпеки, що дозволяє комбінувати різні механізми вирішення конфліктів (локальна евристика, вага на основі досконалої роботи, врахування рівня довіри інших вузлів, сертифікати).
  • Гнучкий API для запиту даних, який дозволяє вказати кілька вкладених ключів або діапазонів значень. Можливість прив'язки кількох значень одного ключа.
  • Усі дані зберігаються у зашифрованому вигляді, включаючи ключі, і верифіціруются. Система може використовуватися для організації зберігання конфіденційних даних вузлах, що не заслуговують на довіру. Записи, ключі яких невідомі, неможливо визначити методом перебору (не знаючи ключ неможливо отримати пов'язані з нею дані).

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

Джерело: opennet.ru

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