Lo storage LF decentralizzato è stato trasferito a una licenza aperta

È ora disponibile LF 1.1.0, un archivio dati chiave/valore decentralizzato e replicato. Il progetto è stato sviluppato da ZeroTier, che sta sviluppando uno switch Ethernet virtuale che consente di combinare host e macchine virtuali situati presso diversi provider in un'unica rete locale virtuale, i cui partecipanti si scambiano dati in modalità P2P. Il codice del progetto è scritto in linguaggio C. La nuova versione si distingue per il passaggio alla licenza gratuita MPL 2.0 (Mozilla Public License).

Precedentemente il codice LF era disponibile sotto una BSL (Business Source License), che non è gratuita a causa della discriminazione di alcune categorie di utenti. La licenza BSL è stata proposta dai cofondatori di MySQL come alternativa al modello Open Core. L'essenza di BSL è che il codice delle funzionalità avanzate è inizialmente disponibile per la modifica, ma per qualche tempo può essere utilizzato gratuitamente solo se vengono soddisfatte condizioni aggiuntive, che richiedono l'acquisto di una licenza commerciale per aggirarlo.

LF è un sistema completamente decentralizzato e consente di distribuire un singolo archivio dati in un formato chiave-valore su un numero arbitrario di nodi. I dati vengono mantenuti sincronizzati su tutti i nodi e tutte le modifiche vengono completamente replicate su tutti i nodi. Tutti i nodi in LF sono uguali tra loro. L'assenza di nodi separati che coordinano il funzionamento dello storage consente di eliminare un singolo punto di guasto e la presenza di una copia completa dei dati su ciascun nodo elimina la perdita di informazioni quando i singoli nodi falliscono o vengono disconnessi.

Per connettere un nuovo nodo alla rete, non è necessario ottenere autorizzazioni separate: chiunque può avviare il proprio nodo. Il modello dati di LF è costruito attorno a un grafico aciclico diretto (DAG), che semplifica la sincronizzazione e consente una varietà di strategie di risoluzione dei conflitti e di sicurezza. A differenza dei sistemi DHT (Distributed Hash Table), l'architettura IF è inizialmente progettata per l'uso in reti inaffidabili dove la disponibilità costante dei nodi non è garantita. Tra gli ambiti di applicazione di LF viene menzionata la creazione di sistemi di storage più longevi, in cui vengono archiviati volumi relativamente piccoli di dati critici che raramente cambiano. Ad esempio, LF è adatto per archivi di chiavi, certificati, parametri di identità, file di configurazione, hash e nomi di dominio.

Per proteggersi da sovraccarichi e abusi, viene applicato un limite all'intensità delle operazioni di scrittura sullo spazio di archiviazione condiviso, implementato sulla base di una prova di lavoro - per poter salvare i dati, un partecipante alla rete di archiviazione deve completare un certo compito, che è facilmente verificabile, ma richiede grandi risorse computazionali (simile all’organizzazione dell’espansione di sistemi basati su blockchain e CRDT). I valori calcolati vengono utilizzati anche come segno durante la risoluzione dei conflitti.

In alternativa, è possibile avviare sulla rete un'autorità di certificazione per emettere certificati crittografici ai partecipanti, dando il diritto di aggiungere record senza conferma del lavoro e dando priorità nella risoluzione dei conflitti. Per impostazione predefinita, lo spazio di archiviazione è disponibile senza restrizioni per la connessione di eventuali partecipanti, ma facoltativamente, sulla base di un sistema di certificazione, possono essere creati archivi privati ​​recintati, in cui possono diventare partecipanti solo i nodi certificati dal proprietario della rete.

Caratteristiche principali di LF:

  • Facile distribuzione del proprio storage e connessione alle reti di storage pubbliche esistenti.
  • Non esiste un singolo punto di errore e la capacità di coinvolgere tutti nella manutenzione dello spazio di archiviazione.
  • Accesso ad alta velocità a tutti i dati e possibilità di accedere ai dati rimanenti sul proprio nodo, anche dopo un'interruzione della connettività di rete.
  • Un modello di sicurezza universale che consente di combinare vari meccanismi di risoluzione dei conflitti (euristica locale, peso basato sul lavoro completato, tenendo conto del livello di fiducia di altri nodi, certificati).
  • Un'API flessibile per eseguire query sui dati che consente di specificare più chiavi nidificate o intervalli di valori. Possibilità di associare più valori a una chiave.
  • Tutti i dati vengono archiviati in forma crittografata, comprese le chiavi, e verificati. Il sistema può essere utilizzato per organizzare l'archiviazione di dati riservati su nodi non affidabili. I record di cui non si conoscono le chiavi non possono essere determinati con la forza bruta (senza conoscere la chiave è impossibile ottenere i dati ad essa associati).

Le limitazioni includono l'attenzione all'archiviazione di dati piccoli e che cambiano raramente, l'assenza di blocchi e la coerenza garantita dei dati, requisiti elevati di CPU, memoria, spazio su disco e larghezza di banda e un aumento costante delle dimensioni di archiviazione nel tempo.

Fonte: opennet.ru

Aggiungi un commento