Die Version LF 1.1.0, ein dezentrales replizierbares Datenspeicherformat im Schlüssel/Wert-Stil, ist jetzt verfügbar. Das Projekt wird von ZeroTier entwickelt, einem Unternehmen, das einen virtuellen Ethernet-Switch baut, der es ermöglicht, Hosts und virtuelle Maschinen, die sich bei verschiedenen Anbietern befinden, in einem einzigen virtuellen Netzwerk zu verbinden, in dem die Teilnehmer P2P-Daten austauschen. Der Code des Projekts ist in C geschrieben. Das neue Release zeichnet sich durch den Wechsel zur freien Lizenz MPL 2.0 (Mozilla Public License) aus.
Zuvor war der Code von LF unter der Lizenz BSL (Business Source License) verfügbar, die aufgrund der Diskriminierung bestimmter Benutzergruppen nicht als frei angesehen wird. Die Lizenz BSL wurde von den Mitbegründern von MySQL als Alternative zum Open-Core-Modell vorgeschlagen. Der Kern der BSL ist, dass der Code für erweiterte Funktionen ursprünglich für Änderungen zugänglich ist, aber für eine gewisse Zeit kostenlos nur unter zusätzlichen Bedingungen verwendet werden kann, was den Erwerb einer kommerziellen Lizenz erforderlich macht.
LF ist ein vollständig dezentralisiertes System, das die Bereitstellung eines einheitlichen Datenspeichers im Schlüssel-Wert-Format über eine beliebige Anzahl von Knoten ermöglicht. Auf allen Knoten werden die Daten synchron gehalten, und alle Änderungen werden vollständig zwischen allen Knoten repliziert. Alle Knoten in LF sind gleichwertig. Die Abwesenheit einzelner Knoten, die die Funktion des Speichers koordinieren, beseitigt den Einzelpunkt des Versagens, und die vollständige Kopie der Daten auf jedem Knoten verhindert den Verlust von Informationen bei einem Ausfall oder der Abschaltung einzelner Knoten.
Für die Verbindung zum Netzwerk eines neuen Knotens ist keine spezielle Berechtigung erforderlich – jeder kann seinen eigenen Knoten starten. Das Datenmodell in LF basiert auf einem gerichteten azyklischen Graphen (DAG), der die Synchronisation vereinfacht und verschiedene Strategien zur Konfliktlösung und zur Gewährleistung der Sicherheit ermöglicht. Im Gegensatz zu Systemen, die auf verteilten Hash-Tabellen (DHT) basieren, ist die Architektur von IF ursprünglich für die Nutzung in unzuverlässigen Netzwerken konzipiert, in denen die ständige Verfügbarkeit von Knoten nicht garantiert ist. Anwendungsgebiete von LF umfassen die Schaffung von extrem robusten Speichersystemen, die relativ kleine Mengen kritischer Daten enthalten, die selten verändert werden. Zum Beispiel eignet sich LF für Schlüsselverwahrung, Zertifikate, Identifikationsparameter, Konfigurationsdateien, Hashes und von Domainnamen.
Um Überlastung und Missbrauch zu vermeiden, wird eine Begrenzung der Schreiboperationen im gemeinsamen Speicher implementiert, die auf dem Proof-of-Work-Prinzip basiert. Um Daten speichern zu können, muss ein Teilnehmer des Speichernetzwerks eine bestimmte, leicht überprüfbare Aufgabe ausführen, die jedoch hohe Rechenressourcen erfordert (ähnlich der Erweiterung von Systemen basierend auf Blockchain und CRDT). Die berechneten Werte werden auch als Indikator zur Konfliktlösung verwendet.
Alternativ kann im Netzwerk eine Zertifizierungsstelle betrieben werden, die den Teilnehmern kryptografische Zertifikate ausstellt, die das Hinzufügen von Einträgen ohne Bestätigung durch Arbeitsnachweis ermöglichen und Priorität bei der Konfliktlösung gewähren. standardmäßig ist der Speicher ohne Einschränkungen für alle Teilnehmer zugänglich, es können jedoch optional auf der Basis eines Zertifikatsystems abgeschottete private Speicher geschaffen werden, an denen nur von dem Netzwerkbesitzer validierte Knoten teilnehmen können.
Hauptmerkmale von LF:
- Die einfache Bereitstellung Ihres Speichers und die Anbindung an bestehende öffentliche Speichernetzwerke.
- Keine zentrale Ausfallstelle und die Möglichkeit, alle Interessierten in die Wartung des Speichers einzubeziehen.
- Hohe Zugriffsgeschwindigkeit auf alle Daten und die Möglichkeit, auf Daten zuzugreifen, die auf Ihrem Knoten verbleiben, selbst bei gestörten Netzwerkverbindungen.
- Ein universelles Sicherheitsmodell, das die Kombination verschiedener Konfliktlösungsmechanismen ermöglicht (lokale Heuristik, gewichtete Arbeitsleistung, Berücksichtigung des Vertrauensniveaus anderer Knoten, Zertifikate).
- Ein flexibles API zur Datenabfrage, das die Angabe mehrerer verschachtelter Schlüssel oder Wertebereiche erlaubt. Die Möglichkeit, mehrere Werte einem Schlüssel zuzuordnen.
- Alle Daten werden in verschlüsselter Form gespeichert, einschließlich der Schlüssel, und verifiziert. Das System kann zur Organisation der Speicherung vertraulicher Daten auf nicht vertrauenswürdigen Knoten verwendet werden. Datensätze, deren Schlüssel unbekannt sind, können nicht durch Brute-Force bestimmt werden (ohne den Schlüssel können keine damit verbundenen Daten abgerufen werden).
Die Einschränkungen umfassen die Ausrichtung auf die Speicherung kleiner, selten veränderter Daten, das Fehlen von Sperren und garantierter Datenkonsistenz, hohe Anforderungen an CPU, RAM, Speicherplatz und Bandbreite sowie eine kontinuierliche Vergrößerung des Speichervolumens über die Zeit.
Quelle: opennet.ru
