Esitleme automaatse failide sünkroonimise süsteemi Syncthing 1.16, kus sünkroonitud andmed ei laadita pilvetingimustesse, vaid replitseeritakse otse kasutaja süsteemide vahel nende samal ajal veebis olemisel, kasutades projekti arendatud protokolli BEP (Block Exchange Protocol). Syncthingi kood on kirjutatud Go keeles ja see levitatakse avatud MPL litsentsi järgi. Valmis kogumid on ette valmistatud Linuxile, Androidile, Windowsile, macOS-ile, FreeBSD-le, Dragonfly BSD-le, NetBSD-le, OpenBSD-le ja Solaris'ele.
Lisaks andmete sünkroonimise probleemide lahendamisele mitme seadme vahel sama kasutaja jaoks on Syncthing'i abil võimalik luua suured detsentraliseeritud võrgud koos jagatud andmete hoidmiseks, mis on jaotatud osalejate süsteemide vahel. Pakutakse paindlikke ligipääsu kontrolli ja erandite loomise tööriistu sünkroonimiseks. Võimalik on määrata hostid, mis saavad ainult andmeid, st nende hostide andmete muutmine ei kajastu muudes süsteemides hoitavates andmeeksemplarides. Toetatakse mitmeid failiversioneerimise režiime, kus säilitatakse eelnevad muudetud andmete versioonid.
Sünkroonimisel jaguneb fail loogiliselt plokkideks, mis on ülekande ajal kasutaja süsteemide vahel ühesugused. Uude seadmesse sünkroonimisel, kui mitmes seadmes on identsed plokid, toimub plokkide kopeerimine erinevatest sõlmedest, sarnaselt BitTorreni süsteemile. Mida rohkem seadmeid osaleb sünkroonimises, seda kiiremini uute andmete replitseerimine toimub eraldamise tõttu. Muudetud failide sünkroonimise protsessis edastatakse üle võrgu ainult muudetud andmeplokid, ja uuendamise või juurdepääsulubade muutmise korral sünkroonitakse ainult metaandmed.
Andmeedastuse kanalid luuakse TLS-i abil, kõik sõlmed autentivad üksteist sertifikaatide ja seadmete identifikaatorite põhjal, üldiselt kasutatakse terviklikkuse kontrollimiseks SHA-256. Sünkroonimissõlmede määramiseks kohalikus võrgus võib kasutada UPnP protokolli, mille puhul ei ole käsitsi sisestamine vajalik. IP-aadresse sünkroonitavaid seadmeid. Süsteemi seadistamiseks ja jälgimiseks on ette nähtud sisseehitatud veebiliides, CLI-klient ja GUI Syncthing-GTK, kus pakutakse täiendavaid tööriistu sünkroonimise sõlmede ja hoidlate haldamiseks. Sõlmede leidmise hõlbustamiseks arendab Syncthing koordineerimise serverit.
Uues versioonis on rakendatud eksperimenteerimist failide krüpteerimise toetuse osas, mis võimaldab kasutada Syncthing'it koos serveritega usaldusväärsed, näiteks andmete sünkroonimiseks mitte ainult oma seadmete, vaid ka väliste kasutajate kontrolli alt väljas olevate serveritega. Lisaks on uusversioonis rakendatud dialoog käskluse kinnitamiseks enne muudatuste tühistamist või katalooge üle kirjutamist. Probleemid CPU liigse koormuse osas dialoogides, kus on animeeritud edusamme, on lahendatud. Kohe pärast seda vabastati värskendus 1.16.1, mis lahendas probleemi Debian paketi puhul.


Allikas: opennet.ru
