Доступен выпуск 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:
|