Saadaval on versioon LF 1.1.0, detsentraliseeritud replitseeriv andmesalvestuse süsteem võtme/väärtuse vormingus. Projekti arendab ettevõte ZeroTier, mis arendab virtuaalset Ethernet-lülitit, mis võimaldab siduda erinevates teenusepakkujates asuvaid servereid ja virtuaalmasinaid ühes virtuaalses lokaalses võrgus, mille liikmed vahetavad andmeid P2P-režiimis. Projekti kood on kirjutatud C keeles. Uus versioon paistab silma MPL 2.0 (Mozilla Avalik Litsents) vabale litsentsile ülemineku poolest.
Varem oli LF kood saadaval BSL (Business Source License) litsentsi all, mis ei ole tasuta, kuna see diskrimineerib teatud kasutajate kategooriaid. BSL litsentsi pakkusid MySQL kaasasutajad alternatiivina Open Core mudelile. BSL olemus on see, et laiendatud funktsionaalsuse kood on algselt muudetav, kuid mõnda aega võib seda tasuta kasutada ainult täiendavate tingimuste täitmisel, mille mööda hiilimiseks on vajalik osta kommertslitsents.
LF on täielikult detsentraliseeritud süsteem, mis võimaldab käivitada ühtse andmesalvestuse võtme-väärtuse formaadis mis tahes arvu sõlmede peal. Kõikides sõlmedes hoitakse andmeid sünkroonitud seisundis ning kõik muudatused replikitakse täielikult kõigi sõlmede vahel. Kõik sõlmed LF-is on omavahel võrdsed. Erakordselt koordineerivate sõlmede puudumine väldib ühte tõrkepunkti, ja igas sõlmes oleva täieliku andmekoopia olemasolu elimineerib teabe kadumise, kui mõned sõlmed ebaõnnestuvad või eemaldatakse.
Uue sõlme võrku ühendamiseks ei ole vaja eraldi volitusi — keegi saa käivitada oma sõlme. LF-i andmemudel on üles ehitatud suunatud tsükliteta graafile (DAG), mis lihtsustab sünkroniseerimist ja võimaldab rakendada erinevaid konflikti lahendamise ja turvalisuse tagamise strateegiaid. Erinevalt jaotatud räsitabelitel (DHT) põhinevatest süsteemidest on IF arhitektuur algselt kavandatud kasutamiseks ebausaldusväärsetes võrkudes, kus sõlmede pidev kättesaadavus ei ole tagatud. LF-i rakendusalad hõlmavad maksimaalselt vastupidavate andmesalvestussüsteemide loomist, kus hoitakse suhteliselt väikeseid kriitiliselt olulisi andmese, mis harva muutuvad. Näiteks sobib LF võtmete, sertifikaatide, identifitseerimisparameetrite, konfiguratsioonifailide, räsi jne hoidlate jaoks. domeeninimesid.
Kasutatakse kirjutamise intensiivsuse piiramist, et kaitsta ülekoormuse ja kuritarvitamise eest, rakendades proof of work põhimõtet — andmete salvestamiseks peab võrgus osaleja täitma kindla ülesande, mis on kergesti kontrollitav, kuid nõuab arvutamisel suures koguses ressursse (sarnaselt plokiahela ja CRDT süsteemide laienemise korraldusega). Arvutatud väärtusi kasutatakse ka konfliktide lahendamise tunnusena.
Alternatiivselt võib võrgus tööle panna autentimiskeskuse, mis väljastab osalejatele krüptograafilisi sertifikaate, mis annavad õiguse lisada kirjeid ilma töö kinnitamiseta ja tagavad prioriteedi konfliktide lahendamisel. Vaikimisi on salvestuspiiranguteta juurdepääsetav igasuguste osalejate ühendamiseks, kuid valikuliselt võivad sertifikaadipõhise süsteemi alusel luua eraldatud privaatsed salvestused, mille liikmed võivad olla vaid võrgu omaniku kinnitatud sõlmed.
LF peamised omadused:
- Lihtsus oma salvestuse seadistamisel ja olemasolevatesse avalikesse salvestusvõrkudesse ühendamisel.
- Üksiku rikke punkti puudumine ning kõigi soovijate kaasamise võimalus salvestuse haldamisse.
- Kiire juurdepääs kõigile andmetele ja võimalus ligipääseda andmetele, mis jäävad oma sõlme, isegi pärast võrguühenduse katkemist.
- Üksikasjalik turvamudel, mis võimaldab kombineerida erinevaid konflikti lahendamise mehhanisme (kohalik heuristika, tehtud töö põhjal kaalumine, teiste sõlmede usaldusväärsuse arvestamine, sertifikaadid).
- Paindlik API andmete pärimiseks, mis lubab määrata mitu külast või väärtuste vahemikku. Võimalus siduda mitu väärtust ühe külast.
- Kõik andmed on salvestatud krüpteeritud kujul, sealhulgas võtmed, ja need on kontrollitud. Süsteemi saab kasutada konfidentsiaalsete andmete salvestamiseks usaldamatutel sõlmedel. Kirjed, mille võtmed pole teada, ei saa genereerimise meetodi kaudu määrata (ilma võtmeta ei ole võimalik ligipääseda seotud andmetele).
Piirangutest tuleks märkida, et keskendutakse väikeste harva muutuva teabe säilitamisele, puuduvad lukustused ja garanteeritud andmete järjepidevus, samuti kõrged nõudmised CPU, mälu, kettaruumile ja ribalaiusele, samuti pidev salvestusruumi suuruse suurenemine ajas.
Allikas: opennet.ru
