Достъпен е LF 1.1.0, децентрализирано реплицирано хранилище на данни във формат ключ/стойност. Проектът се развива от ZeroTier, компания, която разработва виртуален Ethernet комутатор, позволяващ свързването на хостове и виртуални машини, разположени при различни доставчици, в една виртуална локална мрежа, участниците в която обменят данни в режим P2P. Кодът на проекта е написан на езика C. Новата версия е забележима с преминаването към свободна лицензия 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
